漫遊器中繼標記和 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-Tag 就結合了 unavailable_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 不在搜尋結果中顯示這個網頁的文字片段或影片預覽畫面。系統仍會顯示靜態縮圖 (如果有的話)。
notranslate 不在搜尋結果中提供這個網頁的翻譯。
noimageindex 不為這個網頁上的圖片建立索引。
unavailable_after: [RFC-850 date/time] 在指定的日期/時間後不在搜尋結果中顯示這個網頁。指定日期/時間時需使用 RFC 850 格式

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 回應中,請將以下的程式碼片段加到網站的根目錄 .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 檔案禁止網頁受到檢索,那麼檢索器就不會發現與索引或服務指令相關的任何資訊,而這些資訊也會因此遭到忽略。如果必須遵循索引或服務的指令,就不能禁止檢索包含這些指令的網址。