X-Robots-Tag 标头

X-Robots-Tag 响应头定义了爬虫如何索引 URL。虽然它不是任何规范的一部分,但它是一个事实上的标准方法,用于与搜索机器人、网络爬虫和类似用户代理进行通信。与搜索相关的爬虫使用 X-Robots-Tag 标头中的规则来调整如何在搜索结果中呈现网页或其他资源。

索引规则在 X-Robots-Tag 标头或 <meta name="robots"> HTML 元素(通常称为“robots 标签”)中定义,并在 URL 被爬取时发现。在 HTTP 标头中指定索引规则对于非 HTML 文档(如图像、PDF 或其他媒体)非常有用。

注意:只有合作的机器人会遵循这些规则,爬虫首先需要访问资源以读取标头和 meta 元素(参见与 robots.txt 的交互)。如果您想通过爬虫防止带宽消耗,限制性的 robots.txt 文件比索引规则更有效,因为它会阻止资源被爬取。

头类型 响应头
禁止请求头

语法

http
X-Robots-Tag: <indexing-rule>
X-Robots-Tag: <indexing-rule>, …, <indexing-ruleN>

可选的 <bot-name>: 指定后续规则应适用于的用户代理。

http
X-Robots-Tag: <indexing-rule>, <bot-name>: <indexing-rule>
X-Robots-Tag: <bot-name>: <indexing-rule>, …, <indexing-ruleN>

有关示例,请参见指定用户代理

指令

可以使用以下任何索引规则

all

在搜索结果中索引或提供没有限制。此规则是默认值,如果明确列出则无效。

noindex

不要在搜索结果中显示此页面、媒体或资源。如果省略,页面、媒体或资源可能会被索引并显示在搜索结果中。

nofollow

不要追踪此页面上的链接。如果省略,搜索引擎可能会使用页面上的链接来发现那些链接的页面。

none

等同于 noindex, nofollow

nosnippet

不要在此页面的搜索结果中显示文本摘要或视频预览。静态图像缩略图(如果可用)可能仍然可见。如果省略,搜索引擎可能会根据页面上找到的信息生成文本摘要和视频预览。要将内容的某些部分排除在搜索结果摘要之外,请使用 data-nosnippet HTML 属性

indexifembedded

即使有 noindex 规则,如果页面内容通过 iframe 或类似的 HTML 元素嵌入到另一个页面中,搜索引擎也允许索引该内容。indexifembedded 仅在与 noindex 同时使用时才有效。

max-snippet: <number>

为此搜索结果的文本摘要最多使用 <number> 个字符。如果未指定有效的 <number>,则忽略。

max-image-preview: <setting>

此页面在搜索结果中的图像预览的最大大小。如果省略,搜索引擎可能会显示默认大小的图像预览。如果您不希望搜索引擎使用较大的缩略图,请将 max-image-preview 值指定为 standardnone。值包括

none

不显示图像预览。

standard

可以显示默认图像预览。

large

可以显示更大的图像预览,最大可达视口宽度。

max-video-preview: <number>

对于此页面中的视频,在搜索结果中最多使用 <number> 秒作为视频摘要。如果省略,搜索引擎可能会在搜索结果中显示视频摘要,并且搜索引擎决定预览的时长。如果未指定有效的 <number>,则忽略。特殊值如下

0

最多可以使用静态图像,并遵循 max-image-preview 设置。

-1

无视频长度限制。

notranslate

不要在搜索结果中提供此页面的翻译。如果省略,搜索引擎可能会将搜索结果标题和摘要翻译成搜索查询的语言。

noimageindex

不要索引此页面上的图像。如果省略,页面上的图像可能会被索引并显示在搜索结果中。

unavailable_after: <date/time>

请求在指定的 <date/time> 之后不要在搜索结果中显示此页面。如果未指定有效的 <date/time>,则忽略。日期必须以 RFC 822RFC 850 或 ISO 8601 等格式指定。

默认情况下,内容没有到期日期。如果省略,此页面可能会无限期地显示在搜索结果中。爬虫预计在指定的日期和时间之后会大大降低 URL 的爬取速度。

描述

通过 <meta name="robots">X-Robots-Tag 的索引规则在 URL 被爬取时发现。大多数爬虫支持 X-Robots-Tag HTTP 标头中的规则,这些规则可以在 <meta name="robots"> 元素中使用。

X-Robots-Tag 内部或 X-Robots-Tag HTTP 标头与 <meta name="robots"> 元素之间存在冲突的机器人规则时,将应用更严格的规则。例如,如果一个页面同时具有 max-snippet:50nosnippet 规则,则 nosnippet 规则将适用。如果路径被 robots.txt 文件阻止爬取,则索引规则将不会被发现或应用。

某些值是互斥的,例如 indexnoindex,或 follownofollow。在这些情况下,爬虫的行为是未定义的,并且可能会有所不同。

与 robots.txt 的交互

如果资源通过 robots.txt 文件被阻止爬取,那么使用 <meta name="robots">X-Robots-Tag HTTP 标头指定的任何关于索引或提供规则的信息都不会被检测到,因此将被忽略。

如果一个页面被另一个文档引用,它可能仍然会被索引(参见 nofollow 指令)。如果您想从搜索索引中删除一个页面,X-Robots-Tag: noindex 通常会起作用,但机器人必须首先重新访问该页面才能检测到 X-Robots-Tag 规则。

示例

使用 X-Robots-Tag

以下 X-Robots-Tag 标头添加了 noindex,要求爬虫不要在搜索结果中显示此页面、媒体或资源

http
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:08:49 GMT
X-Robots-Tag: noindex

多个标头

以下响应有两个 X-Robots-Tag 标头,每个标头都指定了一个索引规则

http
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:08:49 GMT
X-Robots-Tag: noimageindex
X-Robots-Tag: unavailable_after: Wed, 03 Dec 2025 13:09:53 GMT

指定用户代理

可以指定规则应适用于哪个用户代理。以下示例包含两个 X-Robots-Tag 标头,它们要求 googlebot 不要追踪此页面上的链接,并且虚构的 BadBot 爬虫也不要索引该页面或追踪其上的任何链接

http
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:08:49 GMT
X-Robots-Tag: BadBot: noindex, nofollow
X-Robots-Tag: googlebot: nofollow

在下面的响应中,定义了相同的索引规则,但在单个标头中。每个索引规则都适用于其后指定的用户代理

http
HTTP/1.1 200 OK
Date: Tue, 03 Dec 2024 17:08:49 GMT
X-Robots-Tag: BadBot: noindex, nofollow, googlebot: nofollow

对于同时指定了多个爬虫和不同规则的情况,搜索引擎将使用负面规则的总和。例如

http
X-Robots-Tag: nofollow
X-Robots-Tag: googlebot: noindex

googlebot 爬取时,包含这些标头的页面将被解释为具有 noindex, nofollow 规则。

规范

不属于任何当前规范。

另见