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 文件比索引规则更有效,因为它会阻止资源被爬取。
语法
X-Robots-Tag: <indexing-rule>
X-Robots-Tag: <indexing-rule>, …, <indexing-ruleN>
可选的 <bot-name>:
指定后续规则应适用于的用户代理。
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
值指定为standard
或none
。值包括 max-video-preview: <number>
-
对于此页面中的视频,在搜索结果中最多使用
<number>
秒作为视频摘要。如果省略,搜索引擎可能会在搜索结果中显示视频摘要,并且搜索引擎决定预览的时长。如果未指定有效的<number>
,则忽略。特殊值如下 notranslate
-
不要在搜索结果中提供此页面的翻译。如果省略,搜索引擎可能会将搜索结果标题和摘要翻译成搜索查询的语言。
noimageindex
-
不要索引此页面上的图像。如果省略,页面上的图像可能会被索引并显示在搜索结果中。
-
请求在指定的
<date/time>
之后不要在搜索结果中显示此页面。如果未指定有效的<date/time>
,则忽略。日期必须以 RFC 822、RFC 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:50
和 nosnippet
规则,则 nosnippet
规则将适用。如果路径被 robots.txt
文件阻止爬取,则索引规则将不会被发现或应用。
某些值是互斥的,例如 index
和 noindex
,或 follow
和 nofollow
。在这些情况下,爬虫的行为是未定义的,并且可能会有所不同。
与 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/1.1 200 OK
Date: Tue, 03 Dec 2024 17:08:49 GMT
X-Robots-Tag: noindex
多个标头
以下响应有两个 X-Robots-Tag
标头,每个标头都指定了一个索引规则
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/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/1.1 200 OK
Date: Tue, 03 Dec 2024 17:08:49 GMT
X-Robots-Tag: BadBot: noindex, nofollow, googlebot: nofollow
对于同时指定了多个爬虫和不同规则的情况,搜索引擎将使用负面规则的总和。例如
X-Robots-Tag: nofollow
X-Robots-Tag: googlebot: noindex
当 googlebot
爬取时,包含这些标头的页面将被解释为具有 noindex, nofollow
规则。
规范
不属于任何当前规范。
另见
- robots.txt
- 搜索引擎
<meta name="robots">
HTML 元素(“robots 标签”)- robots.txt 配置安全指南
- RFC 9309:Robots 排除协议
- 在 developers.google.com 上使用 X-Robots-Tag HTTP 标头