漫游器元标记和 X-Robots-Tag HTTP 标头规范

摘要

本文档详细介绍了 Google 如何处理网页级的索引编制设置,这些设置可让您控制 Google 通过搜索结果提供内容的方式。您可以向 (X)HTML 网页或在 HTTP 标头中添加元标记,从而指定这些设置。

注意:只有在抓取工具可以访问包含这些设置的网页时,系统才会读取和遵循这些设置。

返回页首

如何使用漫游器元标记

漫游器元标记可让您通过精确的网页级设置来控制如何将单个网页编入索引并显示在搜索结果中。请将漫游器元标记放在给定网页的 <head> 部分,如下所示:

<!DOCTYPE html>
<html><head>
<meta name="robots" content="noindex" />
(…)
</head>
<body>(…)</body>
</html>

上述示例中的漫游器元标记可指示所有搜索引擎不要在搜索结果中显示该网页。name 属性的值 (robots) 指定此指令适用于所有抓取工具。要使此指令仅适用于某一具体抓取工具,请用该抓取工具的名称替换 name 属性的 robots 值。具体的抓取工具也称为用户代理(抓取工具使用其用户代理请求网页)。Google 的标准网页抓取工具的用户代理名称为 Googlebot。如果只是要禁止 Googlebot 抓取您的网页,请按如下所示更新标记:

<meta name="googlebot" content="noindex" />

该标记现在便可指示 Google(而非其他搜索引擎)不要在其网页搜索结果中显示该网页。namecontent 属性均不区分大小写。

搜索引擎可能会针对不同资源或出于不同目的而使用不同的抓取工具。有关详情,请参阅 Google 抓取工具完整列表。例如,要让某个网页显示在 Google 的网页搜索结果中但不显示在 Google 新闻中,请使用以下元标记:

<meta name="googlebot-news" content="noindex" />

如果您需要分别指定多个抓取工具,则可以使用多个漫游器元标记:

<meta name="googlebot" content="noindex">
<meta name="googlebot-news" content="nosnippet">

如果我们的抓取工具遇到互相冲突的指令,那么我们将使用所能找到的限制最严格的指令。

返回页首

如何使用 X-Robots-Tag HTTP 标头

X-Robots-Tag 可用作网址 HTTP 标头响应中的一个元素。可在漫游器元标记中使用的所有指令均可被指定为 X-Robots-Tag。下面的 HTTP 响应示例便含有一个可指示抓取工具不要将某一网页编入索引的 X-Robots-Tag

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
(…)
X-Robots-Tag: noindex
(…)

您可以在 HTTP 响应中合并使用多个 X-Robots-Tag 标头,也可以指定一系列以英文逗号分隔的指令。下面的 HTTP 标头响应示例便是合并使用了 noarchive X-Robots-Tagunavailable_after X-Robots-Tag

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
(…)
X-Robots-Tag: noarchive
X-Robots-Tag: unavailable_after: 25 Jun 2010 15:00:00 PST
(…)

X-Robots-Tag 也可以在指令前面指定用户代理。例如,下面这组 X-Robots-Tag HTTP 标头便可用于有条件地允许某一网页在不同搜索引擎的搜索结果中显示:

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
(…)
X-Robots-Tag: googlebot: nofollow
X-Robots-Tag: otherbot: noindex, nofollow
(…)

未指定用户代理的指令对所有抓取工具均有效。以下部分将介绍如何处理合并指令。其中,名称和指定的值均不区分大小写。

返回页首

有效的索引编制指令和内容显示指令

您可以将其他一些指令与漫游器元标记和 X-Robots-Tag 搭配使用,以控制索引编制和内容显示。每个值代表一个特定的指令。下表中列出了 Google 支持的所有指令及其各自的含义。注意:这些指令在其他搜索引擎抓取工具中可能会有不同的含义。您可以将多个指令合并到一个以英文逗号分隔的列表中(关于合并指令的处理方法,请参阅下文)。这些指令不区分大小写。

指令含义
all 对索引编制或内容显示无任何限制。注意:该指令为默认值,因此明确列出时并无任何效果。
noindex 既不在搜索结果中显示该网页,也不在搜索结果中显示“网页快照”链接。
nofollow 不追踪该网页上的链接。
none 相当于 noindex, nofollow
noarchive 不在搜索结果中显示“网页快照”链接。
nosnippet 不在搜索结果中显示该网页的摘要。
noodp 不在显示该网页的标题或摘要时使用开放式目录管理系统中的元数据。
notranslate 不在搜索结果中提供该网页的译文。
noimageindex 不将该网页上的图片编入索引。
unavailable_after: [RFC-850 date/time] 指定日期/时间过后,不在搜索结果中显示该网页。日期/时间必须以 RFC 850 格式指定。

若 robots.txt 文件允许抓取某个网页(或者没有 robots.txt 文件),则该网页会被默认为可抓取、可编入索引、可归档,且其内容能够以摘要形式显示在搜索结果中,除非漫游器元标记或 X-Robots-Tag 中明确拒绝相应权限。

返回页首

如何处理合并的索引编制指令和内容显示指令

您可以通过合并多个漫游器元标记指令(以英文逗号分隔)来创建一条包含多个指令的命令。下面的漫游器元标记示例便可指示网页抓取工具不要将相应网页编入索引,也不要抓取该网页上的任何链接:

<meta name="robots" content="noindex, nofollow">

如果您指定了多个抓取工具,并且不同的工具对应不同的指令,那么搜索引擎会综合使用所有的否定指令。例如:

<meta name="robots" content="nofollow">
<meta name="googlebot" content="noindex">

Googlebot 在抓取包含这些元标记的网页时会将其视为拥有 noindex, nofollow 指令。

返回页首

如何利用 Apache 实际实施 X-Robots-Tag

您可以使用基于 Apache 的网络服务器上默认提供的 .htaccess 和 httpd.conf 文件,将 X-Robots-Tag 添加到网站的 HTTP 响应中。在 HTTP 响应中使用 X-Robots-Tag 的好处是,您可以指定要应用于整个网站的抓取指令。系统对正则表达式的支持提供了很高的灵活性。

例如,要将 noindex, nofollow X-Robots-Tag 添加到整个网站上所有 .PDF 文件的 HTTP 响应中,请将以下代码段添加到网站的 root .htaccess 文件或 httpd.conf 文件中:

<Files ~ "\.pdf$">
  Header set X-Robots-Tag "noindex, nofollow"
</Files>

您可以对无法使用漫游器元标记的非 HTML 文件(如图片文件)使用 X-Robots-Tag。下面的示例说明了如何针对整个网站上的所有图片文件(.png、.jpeg、.jpg、.gif)添加 noindex X-Robots-Tag 指令:

<Files ~ "\.(png|jpe?g|gif)$">
  Header set X-Robots-Tag "noindex"
</Files>

返回页首

如何合并使用抓取指令与索引编制/内容显示指令

只有当网页被抓取时,漫游器元标记和 X-Robots-Tag HTTP 标头才会被抓取工具发现。如果您通过 robots.txt 文件禁止抓取某一网页,那么抓取工具就不会找到任何关于索引编制/内容显示指令的信息,因此会忽略这些信息。如果索引编制/内容显示指令必须被遵循,那么您就不能禁止抓取工具抓取包含这些指令的网址。

返回页首

发送以下问题的反馈:

此网页