摘要
本文詳細說明如何透過網頁層級和文字層級設定,調整 Google 在搜尋結果中呈現內容的方式。要指定網頁層級設定,可以在 HTML 網頁或 HTTP 標頭中加入中繼標記;如要指定文字層級設定,則可以在網頁內的 HTML 元素上使用 data-
nosnippet
屬性。
使用漫遊器中繼標記
漫遊器中繼標記可讓您以精細的方式,以網頁為單位控管各網頁建立索引的方式,以及在 Google 搜尋結果中想呈現的面貌。漫遊器中繼標記應置於指定網頁的 <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 不要在其搜尋結果顯示這個網頁。name
和 content
屬性都不需區分大小寫。
搜尋引擎可能備有各種針對不同資源或用途的檢索器,請參閱 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 (…)
沒有指定使用者代理程式的指令適用於所有檢索器。 HTTP 標頭、使用者代理程式名稱和指定的值都無需區分大小寫。
有效的索引和服務指令
您可以使用下列指令,透過漫遊器中繼標記和 X-Robots-Tag
來控制網頁摘要的索引建立及提供狀況。在搜尋結果中,系統會透過網頁摘要這類簡短的文字節錄,呈現文件與使用者查詢的關聯性。以下表格說明 Google 認可的所有指令和這些指令的意義,每一個值都代表特定指令。
以半形逗號分隔的清單中可能會合併多個指令,這些指令無須區分大小寫。
指令 | |
---|---|
|
在建立索引或提供服務方面沒有任何限制。這個指令是預設值,若明確列出這個指令,並不會產生任何影響。 |
|
不要在搜尋結果中顯示這個網頁。 |
|
不要追蹤這個網頁上的連結。 |
|
等同於 noindex, nofollow 。
|
|
不要在搜索結果中顯示快取連結。 |
|
不要在搜尋結果中顯示這個網頁的文字摘要或影片預覽。但是如果有靜態圖片縮圖,而且顯示出來有助於提升使用者體驗,那麼系統仍可能會顯示這類縮圖。 這個指令適用於各種搜尋結果類型 (Google 的網頁搜尋、Google 圖片、探索)。 |
|
這個搜尋結果的文字摘要最多只能使用 特殊值:
示例: <meta name="robots" content="max-snippet:20"> |
|
設定這個網頁在搜尋結果中的圖片預覽大小上限。 接受的
這個指令適用於各種搜尋結果類型 (例如 Google 網頁搜尋、Google 圖片、探索和 Google 助理)。不過,如果發布者已另外授予內容使用權限,就不適用這項限制。舉例來說,如果發布者提供內容時採用網頁內結構化資料形式 (例如文章的 AMP 和標準版本),或是與 Google 之間訂有授權協議,那麼這項設定就不會禁止這些特定的許可用途。
如果發布者不希望 Google 搜尋服務及探索功能在顯示文章的 AMP 網頁和標準版本時,使用較大的縮圖圖片,應將 示例: <meta name="robots" content="max-image-preview:standard"> |
|
這個網頁的影片,最多只能在搜尋結果中顯示 其他支援的值:
這個指令適用於各種搜尋結果類型 (Google 的網頁搜尋、Google 圖片、Google 影片、探索、Google 助理)。如未指定可剖析的 示例: <meta name="robots" content="max-video-preview:-1"> |
|
不要在搜尋結果中提供這個網頁的翻譯。 |
|
不要為這個網頁上的圖片建立索引。 |
|
在指定的日期/時間之後,不要在搜尋結果中顯示這個網頁。指定日期/時間時須使用廣為採用的格式,包括但不限於 RFC 822、RFC 850 和 ISO 8601。
如未指定有效的 示例: <meta name="robots" content="unavailable_after: 2020-09-21"> |
處理合併式索引和服務指令
您可以使用逗號合併漫遊器中繼標記指令,藉此建立擁有多個指令的指示。在以下的漫遊器中繼標記示例中,我們指示網路檢索器不要為網頁建立索引,也不要檢索網頁上的任一連結:
<meta name="robots" content="noindex, nofollow">
以下示例限制文字摘要上限為 20 個字元,並允許顯示較大的圖片預覽畫面:
<meta name="robots" content="max-snippet:20, max-image-preview:large">
如果多個檢索器各指定了不同的指令,搜索引擎會併用所有否定指令。例如:
<meta name="robots" content="nofollow"> <meta name="googlebot" content="noindex">
Googlebot 在檢索包含這些中繼標記的網頁時,會將網頁解譯為具備 noindex, nofollow
指令。
使用 data-nosnippet
HTML 屬性
您可以指定網頁摘要不使用 HTML 網頁中的哪些文字,方法是在 HTML 元素層級使用 span
、div
和 section
元素上的 data-nosnippet
HTML 屬性。系統會將 data-nosnippet
視為布林屬性;無論是否具備值,這個屬性將一律有效。為了確保機器可以解讀,HTML 部分必須是有效的 HTML 程式碼,而且所有適用的標記都要有對應的結束標記。
示例:
<p>This text can be shown in a snippet <span data-nosnippet>and this part would not be shown</span>.</p> <div data-nosnippet>not in snippet</div> <div data-nosnippet="true">also not in snippet</div> <div data-nosnippet>some text</html> <!-- unclosed "div" will include all content afterwards --> <mytag data-nosnippet>some text</mytag> <!-- NOT VALID: not a span, div, or section -->
一般來說,Google 會利用轉譯網頁來為網頁建立索引,但我們不能保證一定都會轉譯網頁。因此,data-nosnippet
的擷取作業可能會在轉譯前後進行。為避免轉譯造成的不確定性,請勿透過 JavaScript 新增或移除現有節點的 data-nosnippet
屬性。透過 JavaScript 新增 DOM 元素時,如果您是初次將元素新增到網頁的 DOM,請視需要加入 data-nosnippet
屬性。使用自訂元素時,如果您需要使用 data-
nosnippet
,請使用 div
、span
或 section
元素納入或轉譯這些元素。
使用結構化資料
漫遊器中繼標記可控管 Google 要從網頁中自動擷取多少內容,並顯示為搜尋結果。但是,許多發布者也會使用 schema.org 結構化資料提供特定資訊,供我們在顯示搜尋結果時使用。漫遊器中繼標記限制並不影響使用結構化資料,但 article.description
和 description
值除外 (這是針對其他廣告素材作品指定的結構化資料值)。
如要根據這些 description
值指定預覽長度上限,請使用 max-snippet
漫遊器中繼標記。舉例來說,即使預覽文字可能有其他方面的限制,網頁上的 recipe
結構化資料還是可以納入食譜的輪轉介面中。您可以使用 max-snippet
限制預覽文字的長度,但如果您是透過複合式搜尋結果的結構化資料提供資訊,系統就不會套用該漫遊器中繼標記。
如要管理網頁的結構化資料使用方式,請修改結構化資料的類型和值,並新增或移除資訊,僅提供您想供應的資料。另請注意,在 data-nosnippet
元素中宣告結構化資料後,這些資料仍可用於搜尋結果。
實際導入 X-Robots-Tag
您可以透過網站網路伺服器軟體的設定檔,將 X-Robots-Tag
加入網站的 HTTP 回應中。以 Apache 型網路伺服器為例,您可以使用.htaccess 和 httpd.conf 檔案。搭配 HTTP 回應使用 X-Robots-Tag
的優勢是您可以指定可套用到整個網站的檢索指令。支援規則運算式時就可提供更高的作業彈性。
舉例來說,如要將 noindex, nofollow
X-Robots-Tag
新增到全網站所有 PDF 檔案的 HTTP 回應中,請將以下程式碼片段加到網站的根目錄 .htaccess 檔案或 httpd.conf 檔案 (Apache),或網站的 .conf 檔案 (NGINX)。
Apache:
<Files ~ "\.pdf$"> Header set X-Robots-Tag "noindex, nofollow" </Files>
NGINX:
location ~* \.pdf$ { add_header X-Robots-Tag "noindex, nofollow"; }
非 HTML 檔案 (例如圖片檔),因為無法在 HTML 中使用漫遊器中繼標記,您可以使用 X-Robots-Tag
。以下示範在全網站為圖片檔 (.png、.jpeg、.jpg、.gif) 新增 noindex
X-Robots-Tag
指令:
Apache:
<Files ~ "\.(png|jpe?g|gif)$"> Header set X-Robots-Tag "noindex" </Files>
NGINX:
location ~* \.(png|jpe?g|gif)$ { add_header X-Robots-Tag "noindex"; }
整合檢索作業和索引/服務指令
檢索網址時,檢索器會尋找漫遊器中繼標記和 X-Robots-Tag
HTTP 標頭。如果您利用 robots.txt 檔案禁止系統檢索網頁,那麼檢索器就找不到與索引或服務指令相關的任何資訊;這些資訊也就會因此遭到忽略。如果必須遵循索引或服務的指令,就不能禁止系統檢索包含這些指令的網址。