« 上一篇 SEO常识:不同HTTP返回码搜索引擎如何处理

一文看懂robots怎么写:蜘蛛协议robots.txt写法实例详解

robots。txt是SEO同行们在制定一个网站优化方案时需要首要考虑的一个问题,任何网站进行SEO优化前,你需要首先写一个非常规范的robots。txt。robots怎么写,这几乎是你制定SEO优化方案、提升你网站SEO表现最具性价比的工作,没有之一。


Robots协议

robots.txt是什么?

robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件(其实UTF-8也没任何问题),它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。

为什么一定要写好robots.txt?

有一条蜘蛛抓取网站的基本规律,或许绝大多数的SEO同仁们并不了解,SEO祥子分享于此,希望 可以帮助到更多同行:作为一个文本爬虫协议,搜索引擎每次发起对网站的抓取,它首先会试图抓取robots.txt,如查robots文件存在,它会试图理解遵循相应规则。对于绝大多数网站优化案例来讲,一个优秀的robots.txt至少可以在三个方面帮助你的网站:

1. 过滤无效蜘蛛程序。比如:对一个中文网站SEO而言,YAHOO并不能带给你什么流量。但是,雅虎蜘蛛却是较为活跃,站长可以在robots.txt里将其过滤禁止其抓取网站。这样可以节省你的带宽支出,并提升服务器性能。

2。 禁止 某个或某类蜘蛛的无效抓取。蜘蛛程序总是能通过你网页的链接、HTML代码的文件引用抓取到大量对搜索引擎排名没有任何价值的页面,那么SEO站长们可以将这些URL规则加入到Disallo清单里。这样做会带来两个好处:其一,如同上一条,减少蜘蛛程序的无效抓取,可以节省带宽和提升服务器性能;其二,绝大多数搜索引擎在抓取一个网站时,会有一个按天计划的“抓取预算”,比如百度站长资源平台将其称为“抓取频次”。我们减少搜索引擎的无效抓取,更充分的利用有限的抓取预算,让蜘蛛抓取到更多更有价值的页面。

3. 通过robots.txt申明SITEMAPS地址。虽然有专职团队或者人员进行SEO操作的网站,我们通常会通过各搜索引擎站长平台手动提交SITEMAP。但是,将SITEMAP地址申明在robots.txt中,它同时对所有搜索引擎生效,而且多一个提升网站地图的渠道,只可能更有益处。

读到这里,相信大多数读者已经知道了robots.txt的重要性。转入重点,祥子来举几个例子,详细说明robots怎么写才规范吧。

举例说明robots正确写法:

1. robots.txt文件必需小写。注意:搜索引擎是对大小写敏感的。和其他网址一样,robots.txt 文件的网址也区分大小写。

2. robots.txt 文件位置:robots.txt文件必须位于主机的顶级目录中,可通过适当的协议和端口号进行访问。如SEO祥子博客的robots文件访问路径为:http://www.gzymhcar.com/robots.txt 。

3. 用user-agent指定为某个爬虫限定规则。如:“user-agent: *”表示针对所有爬虫,“user-agent: GoogleBot”表示该行以下的爬虫抓取规则针对GoogleBot。

4. 用allow与disallow来指定某个URL规则是否充许抓取。如:“Disallow: /guestbook.html”表示禁止抓取以 “/guestbook.html”开头的所有网页,“Allow: /guestboot.html?first”表示允许抓取“/guestboot.html?first”。

关于SEo写得最多的allow与disallow,祥子在这里想强调几点,因为你可能很难在其它资源上找到这些详细的说明:

 1)disallow与allow后,必需以斜杠“/”开头。如:“allow: /seo/”。

 2)disallow或allow后所附带了某串字符串,并不是精确匹配,而且贪婪匹配模式。如:“disallow: /seo/”或“sallow: /seo”,它会匹配所有以“/seo/”或“/seo”开头的所有网页。

 3)allow的优先级,永远高于disallow。无论它的在robots.txt文件里写在什么位置,谁在前或在哪行写在后面,均遵循“允许”优先于“禁止”的原则。比如:你在robots.txt里有两行分别是:“allow: /seo”与“disallow: /seo”,无论两行的位置如何,抓取引擎会抓取以“http://www.gzymhcar.com/seo”开头的网页。

4)更精确的URL规则,永远高于更广泛的URL规则,而且优先级高于以上“allow”与“disallow”的优先级。再以上例稍加修改:你在robots.txt里有两行分别是:“allow: /seo/*.html”与“disallow: /seo/”,无论两行的位置如何,抓取引擎会抓取符合“/seo/*.html”规则的网页。举例:根据前述robots规则,“http://www.gzymhcar.com/seo/”为禁止,“http://www.gzymhcar.com/seo/153.html”为允许。

5)allow、disallow、user-agent均可使用通配符。如上条,星号“*”表示通配表示任何有效字符的 0 个或多个,这也是我们SEO在写robots.txt时最常用的,使用时请注意星号可以匹配0个字符。事实上,如果robots文件里通配网页规则时,如果星号“*”放在字符串尾,它跟没有放星号的效果是一样的,原因见以上第“2)”条。

 同时我们常用的robots。txt协议通配符还有:美金符号“$”表示以上面字符串结尾。

 关于通配符使用的几个写法实例:

 “allow: /*”等同于 “/”。结尾的通配符会被忽略。

 “disallow: /seo*”等同于 “/seo”。匹配所有以“/seo”开头的网页。

 “disallow: /*seoxiangzi”。匹配所有包含“seoxiangzi”的网页。详解:首先,“seoxiangzi”前使用了通配符星号,而星号可以代替0个或N个字符,表示seoxiangzi前可以是任何字符串;其实,robots.txt是含婪匹配模式,那么它后面也可以是0个或N个任意字符。所以可以理解为它匹配了所有包含“seoxiangzi”的网页。

 “disallow: /*seoxiangzi$”。注意,这一条与上条的唯一区别在于尾部加了个美元符号“$”。表示匹配所有以“seoxiangzi”结尾的网页。

 “disallow: /seoxiangzi$”。这种写法SEO用得较少。 表示精准匹配一条网址。

 “user-agent: Google*”。匹配所有谷歌蜘蛛。

 6) 关于robots.txt文件里的大小写:命令不区分大小写,匹配项区分。意思是:“user-agent”“allow”“disallow”“sitemap”这些命令是不区分大小写的;这些命令后的字符串内容,是区分大小写的。 举个例子:“allow: /SEO/153.html”与“allow: /seo/153.html”它匹配到的网页是不一样的。

最后,非常慎重的提醒各位SEO:如果你对robots.txt的写法没有十足把握,一定要在上线前使用百度Robots工具或谷歌robots工具先行验证。

原创码字不易,欢迎转载,请务必保留出处信息,否则必究:

本文出自SEO祥子博客,来源:http://www.gzymhcar.com/seo/154.html