《Robots.txt 协议标准》介绍

《Robots.txt 协议标准》介绍

作者:雅虎搜索日志小组

http://www.robotstxt.org/orig.html

近期有很多站长咨询,怎样正确设置"robots.txt"文件。为了解决广大站长朋友们的疑问,我们对《Robots.txt 协议标准》进行了翻译,希望此篇译文能够帮助大家对"robots.txt"文件有更深的了解。

Robots.txt 是存放在站点根目录下的一个纯文本文件。虽然它的设置很简单,但是作用却很强大。它可以指定搜索引擎蜘蛛只抓取指定的内容,或者是禁止搜索引擎蜘蛛抓取网站的部分或全部内容。

下面我们就来详细介绍一下它的使用方法:

Robots.txt 文件应该放在网站根目录下,并且该文件是可以通过互联网进行访问的。

例如:
如果您的网站地址是 http://www.yourdomain.com/
那么,该文件必须能够通过 http://www.yourdomain.com/robots.txt 打开并看到里面的内容。

格式:

User-agent:

用于描述搜索引擎蜘蛛的名字,在" Robots.txt "文件中,如果有多条User-agent记录说明有多个搜索引擎蜘蛛会受到该协议的限制,对该文件来说,至少要有一条User-agent记录。如果该项的值设为*,则该协议对任何搜索引擎蜘蛛均有效,在" Robots.txt "文件中,"User-agent:*"这样的记录只能有一条。

Disallow:

用于描述不希望被访问到的一个URL,这个URL可以是一条完整的路径,也可以是部分的,任何以Disallow开头的URL均不会被Robot访问到。

举例:
例一:"Disallow:/help"
是指/help.html 和/help/index.html都不允许搜索引擎蜘蛛抓取。
例二:"Disallow:/help/"
是指允许搜索引擎蜘蛛抓取/help.html,而不能抓取/help/index.html。
例三:Disallow记录为空

说明该网站的所有页面都允许被搜索引擎抓取,在"/robots.txt"文件中,至少要有一条Disallow记录。如果"/robots.txt"是一个空文件,则对于所有的搜索引擎蜘蛛,该网站都是开放的可以被抓取的。

#:
Robots.txt 协议中的注释符。

举例:
例一:通过"/robots.txt"禁止所有搜索引擎蜘蛛抓取"/bin/cgi/"目录,以及 "/tmp/"目录和 /foo.html 文件,设置方法如下:
User-agent: *
Disallow: /bin/cgi/
Disallow: /tmp/
Disallow: /foo.html

例二:通过"/robots.txt"只允许某个搜索引擎抓取,而禁止其他的搜索引擎抓取。
如:只允许名为"slurp"的搜索引擎蜘蛛抓取,而拒绝其他的搜索引擎蜘蛛抓取 "/cgi/" 目录下的内容,设置方法如下:
User-agent: *
Disallow: /cgi/

User-agent: slurp
Disallow:

例三:禁止任何搜索引擎抓取我的网站,设置方法如下:
User-agent: *
Disallow: /

例四:只禁止某个搜索引擎抓取我的网站
如:只禁止名为“slurp”的搜索引擎蜘蛛抓取,设置方法如下:
User-agent: slurp
Disallow: /

更多,请参考译文出处:http://www.robotstxt.org/wc/norobots.html

 

为什么要使用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文件,内容大致为“你没有权限访问此页”之类,这样,攻击者因不知实际的文件名而无法访问私密内容。

你可能感兴趣的:(《Robots.txt 协议标准》介绍)