robots

<转自http://baike.baidu.com/view/1011742.htm>

目录

什么是robots.txt?
  1. robots.txt
  2. robots.txt在SEO中作用
  3. robots.txt文件的写法
robots.txt使用误区
  1. 误区一
  2. 误区二
  3. 误区三
robots.txt使用技巧
  1. 文件
  2. robots.txt文件的格式
  3. robots.txt文件字符编码
  4. robots.txt文件用法举例
什么是robots.txt?
  1. robots.txt
  2. robots.txt在SEO中作用
  3. robots.txt文件的写法
robots.txt使用误区
  1. 误区一
  2. 误区二
  3. 误区三
robots.txt使用技巧
  1. 文件
  2. robots.txt文件的格式
  3. robots.txt文件字符编码
  4. robots.txt文件用法举例
展开

<script type="text/javascript">bk.view.catalog().start("0");</script>

编辑本段什么是robots.txt?

robots.txt

robots.txt是 搜索引擎中访问网站的时候要查看的第一个文件。Robots.txt文件告诉 蜘蛛程序在服务器上什么文件是可以被查看的。   当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。   robots.txt必须放置在一个站点的 根目录下,而且文件名必须全部小写。   语法:最简单的 robots.txt 文件使用两条规则:   · User-Agent: 适用下列规则的漫游器   · Disallow: 要拦截的网页

robots.txt在SEO中作用

在进行网站优化的时候,经常会使用robots文件把一些内容不想让蜘蛛抓取,以前写过一篇网站优化robots.txt文件的运用 现在写这编文章在补充一点点知识!什么是robots.txt文件   搜索引擎通过一种爬虫spider程序(又称搜索蜘蛛、robot、搜索机器人等),自动搜集互联网上的网页并获取相关信息。   鉴于网络安全与隐私的考虑,搜索引擎遵循robots.txt协议。通过根目录中创建的纯文本文件robots.txt,网站可以声明不想被robots访问的部分。每个网站都可以自主控制网站是否愿意被搜索引擎收录,或者指定搜索引擎只收录指定的内容。当一个搜索引擎的爬虫访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果该文件不存在,那么爬虫就沿着链接抓取,如果存在,爬虫就会按照该文件中的内容来确定访问的范围。   robots.txt必须放置在一个站点的根目录下,而且文件名必须全部小写。robots.txt文件的格式   User-agent: 定义搜索引擎的类型   Disallow: 定义禁止搜索引擎收录的地址   Allow: 定义允许搜索引擎收录的地址   我们常用的搜索引擎类型有:   google蜘蛛:googlebot   百度蜘蛛:baiduspider   yahoo蜘蛛:slurp   alexa蜘蛛:ia_archiver   msn蜘蛛:msnbot   altavista蜘蛛:scooter   lycos蜘蛛:lycos_spider_(t-rex)   alltheweb蜘蛛:fast-webcrawler   inktomi蜘蛛: slurp

robots.txt文件的写法

User-agent: * 这里的*代表的所有的搜索引擎种类,*是一个通配符   Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录   Disallow: /require/ 这里定义是禁止爬寻require目录下面的目录   Disallow: /ABC/ 这里定义是禁止爬寻ABC整个目录    Disallow: /cgi-bin/*.htm 禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。   Disallow: /*?* 禁止访问网站中所有的动态页面   Disallow: /jpg$ 禁止抓取网页所有的.jpg格式的图片   Disallow:/ab/adc.html 禁止爬去ab文件夹下面的adc.html文件。   User-agent: * 这里的*代表的所有的搜索引擎种类,*是一个通配符   Allow: /cgi-bin/ 这里定义是允许爬寻cgi-bin目录下面的目录   Allow: /tmp 这里定义是允许爬寻tmp的整个目录   Allow: .htm$ 仅允许访问以".htm"为后缀的URL。   Allow: .gif$ 允许抓取网页和gif格式图片robots.txt文件用法举例   例1. 禁止所有搜索引擎访问网站的任何部分   User-agent: *   Disallow: /   实例分析:淘宝网的 Robots.txt文件   User-agent: Baiduspider   Disallow: /   很显然淘宝不允许百度的机器人访问其网站下其所有的目录。   例2. 允许所有的robot访问 (或者也可以建一个空文件 “/robots.txt” file)   User-agent: *   Allow:   例3. 禁止某个搜索引擎的访问   User-agent: BadBot   Disallow: /   例4. 允许某个搜索引擎的访问   User-agent: baiduspider   allow:/   例5.一个简单例子   在这个例子中,该网站有三个目录对搜索引擎的访问做了限制,即搜索引擎不会访问这三个目录。   需要注意的是对每一个目录必须分开声明,而不要写成 “Disallow: /cgi-bin/ /tmp/”。   User-agent:后的*具有特殊的含义,代表“any robot”,所以在该文件中不能有“Disallow: /tmp/*” or “Disallow:*.gif”这样的记录出现。   User-agent: *   Disallow: /cgi-bin/   Disallow: /tmp/   Disallow: /~joe/   Robot特殊参数:   允许 Googlebot:   如果您要拦截除 Googlebot 以外的所有漫游器不能访问您的网页,可以使用下列语法:   User-agent:   Disallow:/   User-agent:Googlebot   Disallow:   Googlebot 跟随指向它自己的行,而不是指向所有漫游器的行。   “Allow”扩展名:   Googlebot 可识别称为“Allow”的 robots.txt 标准扩展名。其他搜索引擎的漫游器可能无法识别此扩展名,因此请使用您感兴趣的其他搜索引擎进行查找。“Allow”行的作用原理完全与“Disallow”行一样。只需列出您要允许的目录或页面即可。   您也可以同时使用“Disallow”和“Allow”。例如,要拦截子目录中某个页面之外的其他所有页面,可以使用下列条目:   User-Agent:Googlebot   Disallow:/folder1/   Allow:/folder1/myfile.html   这些条目将拦截 folder1 目录内除 myfile.html 之外的所有页面。   如果您要拦截 Googlebot 并允许 Google 的另一个漫游器(如 Googlebot-Mobile),可使用”Allow”规则允许该漫游器的访问。例如:   User-agent:Googlebot   Disallow:/   User-agent:Googlebot-Mobile   Allow:   使用 * 号匹配字符序列:   您可使用星号 (*) 来匹配字符序列。例如,要拦截对所有以 private 开头的子目录的访问,可使用下列条目:   User-Agent:Googlebot   Disallow:/private*/   要拦截对所有包含问号 (?) 的网址的访问,可使用下列条目:   User-agent:*   Disallow:/*?*   使用 $ 匹配网址的结束字符   您可使用 $ 字符指定与网址的结束字符进行匹配。例如,要拦截以 .asp 结尾的网址,可使用下列条目:   User-Agent:Googlebot   Disallow:/*.asp$   您可将此模式匹配与 Allow 指令配合使用。例如,如果 ? 表示一个会话 ID,您可排除所有包含该 ID 的网址,确保 Googlebot 不会抓取重复的网页。但是,以 ? 结尾的网址可能是您要包含的网页版本。在此情况下,可对 robots.txt 文件进行如下设置:   User-agent:*   Allow:/*?$   Disallow:/*?   Disallow:/ *?   一行将拦截包含 ? 的网址(具体而言,它将拦截所有以您的域名开头、后接任意字符串,然后是问号 (?),而后又是任意字符串的网址)。   Allow: /*?$ 一行将允许包含任何以 ? 结尾的网址(具体而言,它将允许包含所有以您的域名开头、后接任意字符串,然后是问号 (?),问号之后没有任何字符的网址)。Robots Meta标签   Robots.txt文件主要是限制整个站点或者目录的搜索引擎访问情况,而Robots Meta标签则主要是针对一个个具体的页面。和其他的 META标签(如使用的语言、页面的描述、关键词等)一样,Robots Meta标签也是放在页面的中,专门用来告诉搜索引擎ROBOTS如何抓取该页的内容。   Robots Meta标签中没有大小写之分,name=”Robots”表示所有的搜索引擎,可以针对某个具体搜索引擎写为name=”BaiduSpider”。content部分有四个指令选项:index、noindex、follow、nofollow,指令间以“,”分隔。   index指令告诉搜索机器人抓取该页面;   follow指令表示搜索机器人可以沿着该页面上的链接继续抓取下去;   Robots Meta标签的缺省值是index和follow,只有inktomi除外,对于它,缺省值是index、nofollow。   需要注意的是:上述的robots.txt和Robots Meta标签限制搜索引擎机器人(ROBOTS)抓取站点内容的办法只是一种规则,需要搜索引擎机器人的配合才行,并不是每个ROBOTS都遵守的。   目前看来,绝大多数的搜索引擎机器人都遵守robots.txt的规则,而对于RobotsMETA标签,目前支持的并不多,但是正在逐渐增加,如著名搜索引擎GOOGLE就完全支持,而且GOOGLE还增加了一个指令“archive”,可以限制GOOGLE是否保留网页快照。

编辑本段robots.txt使用误区

误区一

我网站上所有的文件都需要被蜘蛛抓取,那我就没必要添加robots.txt文件了。反正如果该文件不存在,所有的搜索蜘蛛将默认能够访问网站上所有没有被口令保护的页面。   每当用户试图访问某个不存在的 URL时,服务器都会在日志中记录 404错误文件(无法找到文件)。每当搜索蜘蛛来寻找并不存在的robots.txt文件时,服务器也将在日志中记录一条404错误文件,所以你应该在网站中添加一个robots.txt。

误区二

在robots.txt文件中设置所有的文件都可以被搜索蜘蛛抓取,这样可以增加网站的收录率。   网站中的 脚本程序、样式表等文件即使被蜘蛛收录,也不会增加网站的收录率,还只会占用服务器存储空间。因此必须在robots.txt文件里设置不要让搜索蜘蛛索引脚本程序、样式表等文件,具体哪些文件需要排除,在robots.txt使用技巧一文中有详细介绍。

误区三

搜索蜘蛛抓取网页太浪费服务器资源,在robots.txt文件中设置所有的搜索蜘蛛都不能抓取全部的网页。   如果这样的话,会导致整个网站不能被 搜索引擎收录

编辑本段robots.txt使用技巧

文件

1. 每当用户试图访问某个不存在的URL时,服务器都会在日志中记录404错误(无法找到文件)。每当搜索蜘蛛来寻找并不存在的robots.txt文件时,服务器也将在日志中记录一条404错误,所以你应该在网站中添加一个robots.txt。   2. 网站管理员必须使蜘蛛程序远离某些服务器上的目录——保证服务器性能。比如:大多数网站服务器都有程序储存在“cgi-bin”目录下,因此在robots.txt文件中加入“Disallow: /cgi-bin”是个好主意,这样能够避免将所有程序文件被蜘蛛索引,可以节省服务器资源。一般网站中不需要蜘蛛抓取的文件有:后台管理文件、程序脚本、附件、 数据库文件、编码文件、样式表文件、模板文件、导航图片和背景图片等等。   下面是 VeryCMS里的robots.txt文件:   User-agent: *   Disallow: /admin/ 后台管理文件   Disallow: /require/ 程序文件   Disallow: /attachment/ 附件   Disallow: /images/ 图片   Disallow: /data/ 数据库文件   Disallow: /template/ 模板文件   Disallow: /css/ 样式表文件   Disallow: /lang/ 编码文件   Disallow: /script/ 脚本文件   3. 如果你的网站是 动态网页,并且你为这些动态网页创建了静态副本,以供搜索蜘蛛更容易抓取。那么你需要在robots.txt文件里设置避免动态网页被蜘蛛索引,以保证这些网页不会被视为含重复内容。   4. robots.txt文件里还可以直接包括在 sitemap文件的链接。就像这样:   Sitemap: http://www.***.com/sitemap.xml   (此处请填写XML地图的绝对路径,即完整URL,如果按习惯填写Sitemap: /sitemap.xml,提交后会提示:检测到无效的 Sitemap 网址;语法错误。   XML地图必须在网站根目录下才有效。)   目前对此表示支持的搜索引擎公司有 Google, Yahoo, Ask and MSN。而中文搜索引擎公司,显然不在这个圈子内。这样做的好处就是,站长不用到每个搜索引擎的 站长工具或者相似的站长部分,去提交自己的sitemap文件,搜索引擎的蜘蛛自己就会抓取robots.txt文件,读取其中的sitemap路径,接着抓取其中相链接的网页。   5. 合理使用robots.txt文件还能避免访问时出错。比如,不能让搜索者直接进入购物车页面。因为没有理由使购物车被收录,所以你可以在robots.txt文件里设置来阻止搜索者直接进入购物车页面。

robots.txt文件的格式

"robots.txt"文件包含一条或更多的记录,这些记录通过空行分开(以CR,CR/NL, or NL作为结束符),每一条记录的格式如下所示:   "<field>:<optionalspace><value><optionalspace>"。   在该文件中可以使用#进行注解,具体使用方法和UNIX中的惯例一样。该文件中的记录通常以一行或多行User-agent开始,后面加上若干Disallow和Allow行,详细情况如下:   User-agent:   该项的值用于描述搜索引擎 robot的名字。在"robots.txt"文件中,如果有多条User-agent记录说明有多个robot会受到"robots.txt"的限制,对该文件来说,至少要有一条User-agent记录。如果该项的值设为*,则对任何robot均有效,在"robots.txt"文件中,"User-agent:*"这样的记录只能有一条。如果在"robots.txt"文件中,加入"User-agent:SomeBot"和若干Disallow、Allow行,那么名为"SomeBot"只受到"User-agent:SomeBot"后面的Disallow和Allow行的限制。   Disallow:   该项的值用于描述不希望被访问的一组URL,这个值可以是一条完整的路径,也可以是路径的非空前缀,以Disallow项的值开头的URL不会被robot访问。例如"Disallow:/help"禁止robot访问/help.html、/helpabc.html、/help/index.html,而"Disallow:/help/"则允许robot访问/help.html、/helpabc.html,不能访问/help/index.html。"Disallow:"说明允许robot访问该网站的所有url,在"/robots.txt"文件中,至少要有一条Disallow记录。如果"/robots.txt"不存在或者为空文件,则对于所有的搜索引擎robot,该网站都是开放的。   Allow:   该项的值用于描述希望被访问的一组URL,与Disallow项相似,这个值可以是一条完整的路径,也可以是路径的前缀,以Allow项的值开头的URL是允许robot访问的。例如"Allow:/hibaidu"允许robot访问/hibaidu.htm、/hibaiducom.html、/hibaidu/com.html。一个网站的所有URL默认是Allow的,所以Allow通常与Disallow搭配使用,实现允许访问一部分网页同时禁止访问其它所有URL的功能。   需要特别注意的是Disallow与Allow行的顺序是有意义的,robot会根据第一个匹配成功的Allow或Disallow行确定是否访问某个URL。   使用"*"和"$":   Baiduspider支持使用通配符"*"和"$"来模糊匹配url。   "$" 匹配行结束符。   "*" 匹配0或多个任意字符。

robots.txt文件字符编码

robots.txt使用什么字符编码,并没有相关规定,都是各搜索引擎自已定义的。虽然google和其它搜索引擎建议大家使用 utf-8 字符编码格式的robots.txt,但几乎所有的搜索引擎都支持 ANSI 编码格式,而google自已对 utf-8 编码格式的robots.txt,会出现首字乱码。所以为了达到最大的兼容性,建议大家使用 ANSI 格式编码,或者使用 utf-8 编码格式,但需要空出首行。   还有一个建议就是robots.txt中最好不要出现中文,即使是注释也要使用英文。

robots.txt文件用法举例

例1.禁止所有搜索引擎访问网站的任何部分 User-agent: *
Disallow: /
例2.允许所有的robot访问
(或者也可以建一个空文件 "/robots.txt")
User-agent: *
Allow: /
另一种写法是
User-agent: *
Disallow:
例3. 仅禁止Baiduspider访问您的网站 User-agent: Baiduspider
Disallow: /
例4. 仅允许Baiduspider访问您的网站 User-agent: Baiduspider
Allow:
/
例5. 禁止spider访问特定目录
在这个例子中,该网站有三个目录对搜索引擎的访问做了限制,即robot不会访问这三个目录。需要注意的是对每一个目录必须分开声明,而不能写成 "Disallow: /cgi-bin/ /tmp/"。
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/
例6. 允许访问特定目录中的部分url User-agent: *
Allow: /cgi-bin/see
Allow: /tmp/hi
Allow: /~joe/look
例7. 使用"*"限制访问url
禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。
User-agent: *
Disallow: /cgi-bin/*.htm
例8. 使用"$"限制访问url
仅允许访问以".htm"为后缀的URL。
User-agent: *
Allow:/ .htm$
例9. 禁止访问网站中所有的动态页面 User-agent: *
Disallow: /*?*
例10. 禁止Baiduspider抓取网站上所有图片
仅允许抓取网页,禁止抓取任何图片。
User-agent: Baiduspider
Disallow: /.jpg$
Disallow: / .jpeg$
Disallow:/ .gif$
Disallow:/ .png$
Disallow: /.bmp$
例11. 仅允许Baiduspider抓取网页和。gif格式图片
允许抓取网页和gif格式图片,不允许抓取其他格式图片
User-agent: Baiduspider
Allow: .gif$
Disallow: /.jpg$
Disallow:/ .jpeg$
Disallow:/ .png$
Disallow: /.bmp$
例12. 仅禁止Baiduspider抓取。jpg格式图片 User-agent: /Baiduspider
Disallow:/ .jpg$
百度各个产品使用不同的user-agent:   
无线搜索 Baiduspider-mobile
图片搜索 Baiduspider-image
视频搜索 Baiduspider-video
新闻搜索 Baiduspider-news
百度搜藏 Baiduspider-favo
百度联盟 Baiduspider-cpro
商务搜索 Baiduspider-ads
网页以及其他搜索 Baiduspider

猜你喜欢

转载自yypiao.iteye.com/blog/1220444