第一种指令方式是robots meta tag,也就是robots meta 标签,在Google的官方文档中会以「漫游器中继标签」称之;另一种则是透过网络服务器创建的x-robots-tag HTTP标头。在两种方式中可以使用一样的指令,例如「noindex」或「nofollow」等常见的指令,只是在沟通方式以及应用层面上略有不同。
该特别注意的一点是:robots meta指令要生效,前提是网址必须受到检索,如果robots.txt禁止某个网页被搜索引擎的爬虫程序检索,则该爬虫程序就无法得知跟索引有关的指令,这些指令就不会产生作用。
另外,如同robots.txt,这些指令并不给予网络爬虫强制的命令,只是针对索引的相关偏好设置,所以并不是所有爬虫程序都会遵循。
可使用的指令
若是没有特别写出指令,则缺省设置会是允许所有的索引与检索动作。
指令的使用不分大小写,但不同搜索引擎不一定会以相同的方式处理指令,以下对指令的介绍会是以Google搜索引擎为主。
index - 告诉搜索引擎要索引该网页,这是默认值,可以不用特别写出。
noindex - 不要索引,也就是不要让该网页在搜索结果中出现,也不要显示缓存的链接。
follow - 告诉搜索引擎要跟随该网页上的链接,同样为默认值,而即便网页未被索引,爬虫也应该要跟随网页上的链接。
nofollow - 不要跟随该网页上的链接。
none - 等同于同时使用noindex与nofollow指令。
noarchive - 不要在搜索结果显示该页面缓存的链接。
nosnippet - 不要在搜索结果显示代码片段(以Google来说,即meta description)
noimageindex - 不要为该页面上的图片创建索引。
notranslate - 不要提供该页面的翻译于搜索结果中。
unavailable_after: [RFC-850 date/time] - 在所指定的时间或日期后不再于搜索结果中显示该网页。时间或日期须使用RFC 850格式。
noodp(已过时) - 不要使用开放式目录项目中的描述显示于搜索结果。该项目(DMOZ)网站已经于xx年关闭,故此指令已过时。
meta robots tag
也就是meta robots 标签,Google的官方文档中会称之为漫游器中继标记。
可以让你针对特定的网页,个别设置搜索引擎如何对其创建索引,此标记应放置于网页的区段内。
如上的范例,指示所有的爬虫程序不要在搜索结果中显示该网页。
你可以将name属性的值改为你所要特别指定的爬虫程序名称,content的值则可以做指令的修改。
像下面这个范例就是特别针对Google的爬虫,告诉它不要跟随此页面上的所有链接。
而如果想要对相同的爬虫程序使用两个以上的指令呢?例如要同时禁止索引与页面上链接的跟随,
只要在content属性的值中以半角逗号分隔各个指令即可,范例如下:
如果想要个别指定多个爬虫程序,可以使用多个robots meta tag,如下:
以Google来说,若是遇到相互重叠的指令,会采用限制最多的指令。
x-robots-tag
X-robots-tag可以作为指定网址的HTTP标头回应的一部分,以控制全部页面或是特定元素的索引方式。
你可以使用与meta robots tag相同的指令,而由于x-robots-tag可以使用正规表达式,并且不是透过HTML文档发送指示,所以相对的更有弹性。
下面的范例指示所有的爬虫不要为网页创建索引:
HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 T
(…)
X-Robots-Tag: noindex
(…)
在HTTP的回应中,你可以使用多个指令,以逗号分开,也可以撰写多个X-Robots-Tag标头
HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 T
(…)
X-Robots-Tag: noarchive, unavailable_after: 25 Jun 2010 15:00:00 PST
(…)
HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 T
(…)
X-Robots-Tag: noarchive
X-Robots-Tag: unavailable_after: 25 Jun 2010 15:00:00 PST
(…)
如果要针对特定的爬虫程序撰写指令,方式如下:
HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 T
(…)
X-Robots-Tag: robots: nofollow
X-Robots-Tag: googlebot: nosnippet
(…)
以下是一些你可能会想透过x-robots-tag给予指令的情况:
- 控制如图片、影片等不在HTML中的内容的索引。
- 不影响全部页面的索引的情况下,禁止某个特定元素的索引,如某个影片或图片。
- 在无法访问HTML中head区段的情况下对索引方式进行设置。
- 添加决定页面是否可被索引的规则。
robots meta指令的SEO重点提醒
- 所有的meta指令都需要透过对网页的检索而让搜索引擎接收,所以透过robots.txt禁止检索的网址,网页中的meta指令会被忽略,即便包含了noindex指令,网页可能仍会出现在搜索结果中。
- 若是不想让网页显示在搜索结果中,应该优先采用robots meta指令,而非robots.txt文档。
- 并非所有的网络爬虫都会遵循robots meta指令,故如果网站有页面包含隐私信息,不希望被公开搜索取得,应该以更安全的方式,如密码保护,让访客无法浏览机密的页面内容。
- robots meta tag与x-robots-tag效果相同,择一使用即可。
cover image credit:
标签: 标签
评论列表 (0)