在大部分情况下,网站开发完成后,在运营期间,都希望搜索引擎收录网站的内容越多越好,但是有的时候为了安全期间不希望搜索引擎收录网页内容,比如在外网部署的监控系统等;
以下列举了屏蔽主流搜索引擎爬虫(蜘蛛)抓取/索引/收录网页的几种思路。注意:是整站屏蔽,而且是尽可能的屏蔽掉所有主流搜索引擎的爬虫(蜘蛛)。
1、通过 robots.txt 文件屏蔽
可以说 robots.txt 文件是最重要的一种渠道(能和搜索引擎建立直接对话)。我通过分析我自己博客的服务器日志文件,给出以下建议(同时欢迎网友补充):
User-agent: Baiduspider
Disallow: /
User-agent: Googlebot
Disallow: /
User-agent: Googlebot-Mobile
Disallow: /
User-agent: Googlebot-Image
Disallow:/
User-agent: Mediapartners-Google
Disallow: /
User-agent: Adsbot-Google
Disallow: /
User-agent:Feedfetcher-Google
Disallow: /
User-agent: Yahoo! Slurp
Disallow: /
User-agent: Yahoo! Slurp China
Disallow: /
User-agent: Yahoo!-AdCrawler
Disallow: /
User-agent: YoudaoBot
Disallow: /
User-agent: Sosospider
Disallow: /
User-agent: Sogou spider
Disallow: /
User-agent: Sogou web spider
Disallow: /
User-agent: MSNBot
Disallow: /
User-agent: ia_archiver
Disallow: /
User-agent: Tomato Bot
Disallow: /
User-agent: *
Disallow: /
2、通过 meta tag 屏蔽
在所有的网页头部文件添加,添加如下语句:
<meta name="robots" content="noindex, nofollow">
3、通过服务器(如:Linux/nginx )配置文件设置
直接过滤 spider/robots 的IP 段。
小注:第1招和第2招只对“君子”有效,防止“小人”要用到第3招(“君子”和“小人”分别泛指指遵守与不遵守 robots.txt 协议的 spider/robots),所以网站上线之后要不断跟踪分析日志,筛选出这些 badbot 的ip,然后屏蔽之。
这里有一个badbot ip 数据库:http://www.spam-whackers.com/bad.bots.htm
4、通过搜索引擎提供的站长工具,删除网页快照
比如,有的时候百度不严格遵守 robots.txt 协议,可以通过百度提供的“网页投诉”入口删除网页快照。百度网页投诉中心:http://tousu.baidu.com/webmaster/add
如下图是我的一个网页投诉:

 

大概3天左右的时间过去,这个网页的百度快照也被删除,说明此种方法也能起效,当然这是不得而为之,属于亡羊补牢。
5、补充更新
可以通过检测 HTTP_USER_AGENT 是否为爬虫/蜘蛛访问,然后直接返回403 状态码屏蔽之。比如:由于api 权限与微博信息隐私保护原因,Xweibo 2.0 版本后禁止搜索引擎收录。