怎样写Robots文件?

搜索引擎三巨头打的不亦乐乎,但偶尔也合作一下。去年Google,雅虎,微软就合作,共同遵守统一的Sitemaps标准。前两天三巨头又同时宣布,共同遵守的robots.txt文件标准。Google雅虎,微软各自在自己的官方博客上发了一篇帖子,公布三家都支持的robots.txt文件及Meta标签的标准,以及一些各自特有的标准。下面做一个总结。

三家都支持的robots文件记录包括:

Disallow – 告诉蜘蛛不要抓取某些文件或目录。如下面代码将阻止蜘蛛抓取所有的网站文件:

User-agent: *
Disallow: /

Allow – 告诉蜘蛛应该抓取某些文件。Allow和Disallow配合使用,可以告诉蜘蛛某个目录下,大部分都不抓取,只抓取一部分。如下面代码将使蜘蛛不抓取ab目录下其他文件,而只抓取其中cd下的文件:

User-agent: *
Disallow: /ab/
Allow: /ab/cd

$通配符 – 匹配URL结尾的字符。如下面代码将允许蜘蛛访问以.htm为后缀的URL:

User-agent: *
Allow: .htm$

*通配符 – 告诉蜘蛛匹配任意一段字符。如下面一段代码将禁止蜘蛛抓取所有htm文件:

User-agent: *
Disallow: /*.htm

Sitemaps位置 – 告诉蜘蛛你的网站地图在哪里,格式为:

Sitemap: <sitemap_location>

三家都支持的Meta标签包括:

NOINDEX – 告诉蜘蛛不要索引某个网页。

NOFOLLOW – 告诉蜘蛛不要跟踪网页上的链接。

NOSNIPPET – 告诉蜘蛛不要在搜索结果中显示说明文字。

NOARCHIVE – 告诉蜘蛛不要显示快照。

NOODP – 告诉蜘蛛不要使用开放目录中的标题和说明。

上面这些记录或标签,现在三家都共同支持。其中通配符好像以前雅虎微软并不支持。百度现在也支持Disallow,Allow及两种通配符。Meta标签我没有找到百度是否支持的官方说明。

只有Google支持的Meta标签有:

UNAVAILABLE_AFTER – 告诉蜘蛛网页什么时候过期。在这个日期之后,不应该再出现在搜索结果中。

NOIMAGEINDEX – 告诉蜘蛛不要索引页面上的图片。

NOTRANSLATE – 告诉蜘蛛不要翻译页面内容。

雅虎还支持Meta标签:

Crawl-Delay – 允许蜘蛛延时抓取的频率。

NOYDIR – 和NOODP标签相似,但是指雅虎目录,而不是开放目录。

Robots-nocontent – 告诉蜘蛛被标注的部分html不是网页内容的一部分,或者换个角度,告诉蜘蛛哪些部分是页面的主要内容(想被检索的内容)。

MSN还支持Meta标签:

Crawl-Delay

另外提醒大家注意的是,robots.txt文件可以不存在,返回404错误,意味着允许蜘蛛抓取所有内容。但抓取robots.txt文件时却发生超时之类的错误,可能导致搜索引擎不收录网站,因为蜘蛛不知道robots.txt文件是否存在或者里面有什么内容,这与确认文件不存在是不一样的。

掌握robots文件用法和写法是SEO的基本功。遇到页面不被收录或收录骤降,robots文件也是第一个要检查的。

作者: Zac@SEO每天一贴
版权属于: 中新虚拟主机
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。

41 条评论 “怎样写Robots文件?

  1. 请教zac,象月光博客那样的博客在google搜索引擎中收录的页面显示的摘要文字都是订阅博客,千篇一律,而如果导航栏放在右侧的话,就不会出现这样的情况。象你的博客也是把导航栏放在右侧的,而收录中显示的摘要文字是正常的。

    问题:1)这样的布局对排名影响吗?
    2)应该更多的兼顾用户的浏览习惯,而不是搜索引擎看到的内容。是这样吗?

    一般人的浏览习惯是左侧内容优先入眼。

  2. 如果我想禁止蜘蛛爬我根目录的 wap.asp?act=Com&id=28
    wap.asp?act=Com&id=3
    类似这样的后缀 我该怎么写?
    User-agent: *
    Disallow: /wap.asp?act=Com&id=*

    这样?
    还是
    User-agent: *
    Disallow: /*.asp

    有点不太明白

  3. 不过我最近发现百度对Robots.txt看的比较重了,我有一个站有Robots.txt,第一天读取了,第二天百度蜘蛛又来了,还有一个站,没放Robots.txt第一天蜘蛛来返回404,连续二天都没有再来了,看看过二天返回什么情况。

  4. 请教Zac兄和各位看官:只允许google和百度抓取,而阻止其他所有蜘蛛抓取,如何写?这样行吗:):
    User-agent: Googlebot
    Disallow: /
    allow: /archive/
    allow: index.php
    allow: sitemap.php

    User-agent: Baiduspider
    Disallow: /
    allow: /archive/
    allow: index.php
    allow: sitemap.php

    User-agent: *
    Disallow: /

  5. http://www.sogosf.com 这个网站这样写,可以么?好像百度还可以抓啊,另外能屏蔽死链吗?怎么写啊,

    User-agent: *  
    Disallow: /template/Bhsj/
    Disallow: /arybest/
    Disallow: /Inc/
    Disallow: /Data/
    Disallow: /css/
    Disallow: /Images/
    Disallow: /FCKeditor/
    Disallow: /Template/Default/js/
    Disallow: /Template/Default/Images/

留个言呗:

您的邮箱不会被显示在页面上。标有*的是必填项。