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-nosnippetHTML 屬性。 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 標頭