为什么要使用robots.txt
我们曾介绍过使用robots.txt来控制搜索引擎抓取页面,同样地,我们也可以在页面文件中使用“noindex”或“nofollow”属性来控制搜索引擎Spider在网站内的爬行,那么,robots.txt对于网站是必需的么?
理论上说,robots.txt只是告诉搜索引擎的Spider网站内哪些内容不允许其索引与收录,它并不是网站的必不可少的组成部分,一个未配置robots.txt的网站只不过对搜索引擎Spider的爬行不作限制而矣。从这个角度看,不设置robots.txt对网站功能没有影响。
但另一方面,恰当地设置robots.txt,可以更好地维护Web 服务器,提高网站的综合性能。从这个角度,网站最好配置robots.txt。
Robots.txt带来的好处
几乎所有的搜索引擎Spider都遵循robots.txt给出的爬行规则,协议规定搜索引擎Spider进入某个网站的入口即是该网站的robots.txt,当然,前提是该网站存在此文件。对于没有配置robots.txt的网站,Spider将会被重定向至404
错误页面,相关研究表明,如果网站采用了自定义的404错误页面,那么Spider将会把其视作robots.txt——虽然其并非一个纯粹的文本文件——这将给Spider索引网站带来很大的困扰,影响搜索引擎对网站页面的收录。
robots.txt可以制止不必要的搜索引擎占用服务器的宝贵带宽,如email retrievers,这类搜索引擎对大多数网站是没有意义的;再如image
strippers,对于大多数非图形类网站来说其也没有太大意义,但却耗用大量带宽。
robots.txt可以制止搜索引擎对非公开页面的爬行与索引,如网站的后台程序、管理程序,事实上,对于某些在运行中产生临时页面的网站来说,如果未配置robots.txt,搜索引擎甚至会索引那些临时文件。
对于内容丰富、存在很多页面的网站来说,配置robots.txt的意义更为重大,因为很多时候其会遭遇到搜索引擎Spider给予网站的巨大压力:洪水般的Spider访问,如果不加控制,甚至会影响网站的正常访问。
同样地,如果网站内存在重复内容,使用robots.txt限制部分页面不被搜索引擎索引和收录,可以避免网站受到搜索引擎关于 duplicate
content的惩罚,保证网站的排名不受影响。
robots.txt带来的风险及解决
凡事有利必有弊,robots.txt同时也带来了一定的风险:其也给攻击者指明了网站的目录结构和私密数据所在的位置。虽然在Web服务器的安全措施配置得当的前提下这不是一个严重的问题,但毕竟降低了那些不怀好意者的攻击难度。
比如说,如果网站中的私密数据通过www.yourdomain.com/private/index.html 访问,那么,在robots.txt的设置可能如下:
User-agent: *
Disallow: /private/
这样,攻击者只需看一下robots.txt即可知你要隐藏的内容在哪里,在浏览器中输入www.yourdomain.com/private/
便可访问我们不欲公开的内容。对这种情况,一般采取如下的办法:
- 设置访问权限,对/private/中的内容实施密码保护,这样,攻击者便无从进入。
- 另一种办法是将缺省的目录主文件index.html更名为其他,比如说abc-protect.html,这样,该内容的地址即变成www.yourdomain.com/private/abc-protect.htm,同时,制作一个新的index.html文件,内容大致为“你没有权限访问此页”之类,这样,攻击者因不知实际的文件名而无法访问私密内容。
|