看待robots的正确姿势!

 

robots写法

robots是站点与spider沟通的重要渠道,站点通过robots文件声明该网站中不想被搜索引擎收录的部分或者指定搜索引擎只收录特定的部分。请注意,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。


robots文件往往放置于根目录下,包含一条或更多的记录,这些记录通过空行分开(以CR,CR/NL, or NL作为结束符),每一条记录的格式如下所示: "<field>:<optional space><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的功能。


使用"*"and"$":Baiduspider支持使用通配符"*"和"$"来模糊匹配url。

"*" 匹配0或多个任意字符

"$" 匹配行结束符。


最后需要说明的是:百度会严格遵守robots的相关协议,请注意区分您不想被抓取或收录的目录的大小写,百度会对robots中所写的文件和您不想被抓取和收录的目录做精确匹配,否则robots协议无法生效。


robots需求用法对应表

上面说了那么多理论,有没有简单对照表格告诉我,怎样的需求场景下应该怎样撰写robots文件?有的:


除robots外其它禁止百度收录的方法

Meta robots标签是页面head部分标签的一种,也是一种用于禁止搜索引擎索引页面内容的指令。目前百度仅支持nofollow和noarchive


nofollow:禁止搜索引擎跟踪本页面上的链接

如果您不想搜索引擎追踪此网页上的链接,且不传递链接的权重,请将此元标记置入网页的<HEAD> 部分:<meta name="robots" content="nofollow">

如果您不想百度追踪某一条特定链接,百度还支持更精确的控制,请将此标记直接写在某条链接上:<a href="signin.php" rel="nofollow">signin</a>

要允许其他搜索引擎跟踪,但仅防止百度跟踪您网页的链接,请将此元标记置入网页的<HEAD> 部分:<meta name="Baiduspider" content="nofollow">


noarchive:禁止搜索引擎在搜索结果中显示网页快照

要防止所有搜索引擎显示您网站的快照,请将此元标记置入网页的<HEAD>部分:<meta name="robots" content="noarchive">

要允许其他搜索引擎显示快照,但仅防止百度显示,请使用以下标记:<meta name="Baiduspider" content="noarchive">

注:此标记只是禁止百度显示该网页的快照,百度会继续为网页建索引,并在搜索结果中显示网页摘要。


使用robots巧妙避免蜘蛛黑洞


对于百度搜索引擎来说,蜘蛛黑洞特指网站通过极低的成本制造出大量参数过多、内容类同但url不同的动态URL ,就像一个无限循环的“黑洞“,将spider困住。spider浪费了大量资源抓取的却是无效网页。


如很多网站都有筛选功能,通过筛选功能产生的网页经常会被搜索引擎大量抓取,而这其中很大一部分是检索价值低质的页面。如“500-1000之间价格的租房”,首先网站(包括现实中)上基本没有相关资源,其次站内用户和搜索引擎用户都没有这种检索习惯。这种网页被搜索引擎大量抓取,只能是占用网站宝贵的抓取配额,那么该如何避免这种情况呢?


我们以北京美团网为例,看看美团网是如何利用robots巧妙避免这种蜘蛛黑洞的:

对于普通的筛选结果页,使用了静态链接,如:

http://bj.meituan.com/category/zizhucan/weigongcun


同样是条件筛选结果页,当用户选择不同排序条件后,会生成带有不同参数的动态链接,而且即使是同一种排序条件(如:都是按销量降序排列),生成的参数也都是不同的。如:http://bj.meituan.com/category/zizhucan/weigongcun/hot?mtt=1.index%2Fpoi.0.0.i1afqhekhttp://bj.meituan.com/category/zizhucan/weigongcun/hot?mtt=1.index%2Fpoi.0.0.i1afqi5c


对于美团网来说,只让搜索引擎抓取筛选结果页就可以了,而各种带参数的结果排序页面则通过robots规则拒绝提供给搜索引擎。在robots.txt的文件用法中有这样一条规则:Disallow: /*?* ,即禁止搜索引擎访问网站中所有的动态页面。美团网恰是通过这种方式,对spider优先展示高质量页面、屏蔽了低质量页面,为spider提供了更友好的网站结构,避免了黑洞的形成。


您是我们第                                    位访客
会员登录
获取验证码
登录
登录
留言
回到顶部