漫遊器中繼標記、data-nosnippet 和 X-Robots-Tag 規範

摘要

本文詳細說明如何透過網頁層級和文字層級設定,調整 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 不要在其搜尋結果中顯示這個網頁。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
    (…)
    

沒有指定使用者代理程式的指令適用於所有檢索器。HTTP 標頭、使用者代理程式名稱和指定的值都無須區分大小寫。

有效的索引和服務指令

您可以使用下列指令,透過漫遊器中繼標記和 X-Robots-Tag 控制網頁摘要的索引建立及服務情形。在搜尋結果中,系統會透過網頁摘要這類簡短的文字摘要,呈現文件與使用者查詢的關聯性。以下表格說明了 Google 認可的所有指令,以及這些指令的意義。每一個值都代表特定的指令。以半形逗號分隔的清單中可能會合併多個指令。這些指令無須區分大小寫。

指令

all
沒有索引或服務的限制。這個指令是預設值,明確列出這個指令並不會產生任何影響。
noindex
不要在搜尋結果中顯示這個網頁。
nofollow
不要追蹤這個網頁上的連結。
none
相當於 noindex, nofollow
noarchive
不要在搜索結果中顯示快取連結
nosnippet
不要在搜尋結果中顯示這個網頁的文字摘要或影片預覽畫面。系統仍可能會顯示靜態圖片縮圖 (如果有的話),以提供更優質的使用者體驗。這個指令適用於各種搜尋結果類型 (例如 Google 網頁搜尋、Google 圖片和探索)。
max-snippet:[number]

這個搜尋結果的文字摘要最多只能使用 [number] 個字元 (請注意,網址在搜尋結果網頁中可能會顯示為多筆搜尋結果)。這個指令不會對圖片或影片預覽畫面造成影響,且適用於各種搜尋結果類型 (例如 Google 網頁搜尋、Google 圖片、探索和 Google 助理)。不過,如果發布者已另外授予內容使用權限,就不適用這項限制。舉例來說,如果發布者以網頁內結構化資料的形式提供內容,或是與 Google 簽訂授權協議,那麼這項設定就不會禁止這些特別允許的用途。如未指定可剖析的 [number],系統就會忽略這個指令。

特殊值:

  • 0:不顯示任何網頁摘要。相當於 nosnippet
  • -1:網頁摘要沒有長度限制。
  • 範例:

    <meta name="robots" content="max-snippet:20">
    max-image-preview:[setting]

    設定這個網頁在搜尋結果中的圖片預覽大小上限。

    接受的 setting 值:

  • none:不顯示圖片預覽畫面。
  • standard:可顯示預設的圖片預覽畫面。
  • large:可顯示較大的圖片預覽畫面,最多可達可視區域寬度規定。
  • 這個指令適用於各種搜尋結果類型 (例如 Google 網頁搜尋、Google 圖片、探索和 Google 助理)。不過,如果發布者已另外授予內容使用權限,就不適用這項限制。舉例來說,如果發布者以網頁內結構化資料的形式 (例如文章的 AMP 和標準版本) 提供內容,或是與 Google 簽訂授權協議,那麼這項設定就不會禁止這些特別允許的用途。

    如果發布者不希望 Google 搜尋服務及探索功能在顯示文章的 AMP 網頁和標準版本時使用較大的縮圖圖片,則應將 max-image-preview 值指定為 standardnone

    範例:

    <meta name="robots" content="max-image-preview:standard">
    max-video-preview:[number]

    這個網頁在搜尋結果中的影片摘要最多只能為 [number] 秒。

    其他支援的值:

  • 0:根據圖片預覽上限設定,最多可以使用一張靜態圖片。
  • -1:沒有限制。
  • 這個指令適用於各種搜尋結果類型 (Google 的網頁搜尋、Google 圖片、Google 影片、探索和 Google 助理)。如未指定可剖析的 [number],系統就會忽略這個指令。

    範例:

    <meta name="robots" content="max-video-preview:-1">
    notranslate
    不要在搜尋結果中提供這個網頁的翻譯。
    noimageindex
    不為這個網頁上的圖片建立索引。
    unavailable_after: [date/time]

    在指定的日期/時間後不在搜尋結果中顯示這個網頁。指定日期/時間時須使用廣為採用的格式,包括但不限於 RFC 822RFC 850ISO 8601。如未指定有效的 [date/time],系統就會忽略這個指令。內容預設為沒有到期日。

    範例:

    <meta name="robots" content="unavailable_after: Sunday, 01-Sep-24 01:00:00 PDT">

    處理合併式索引和服務指令

    您可以使用半形逗號合併漫遊器中繼標記指令,藉此建立內含多個指令的指示。在以下的漫遊器中繼標記範例中,我們指示網路檢索器不要為網頁建立索引,也不要檢索網頁上的任一連結:

        <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 屬性

    data-nosnippet 屬性自 2019 年下半年起生效。

    您可以指定不要使用 HTML 網頁的哪些文字部分來產生網頁摘要,方法是在 HTML 元素層級使用 spandivsection 元素上的 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,請透過 divspansection 元素納入或轉譯自訂元素。

    使用結構化資料

    漫遊器中繼標記可控管 Google 要從網頁中自動擷取多少內容,並顯示為搜尋結果。不過,許多發布者也會利用 schema.org 結構化資料提供特定資訊,讓我們在顯示搜尋結果時使用。漫遊器中繼標記限制不會影響結構化資料的使用情形,但 article.descriptiondescription 值除外 (這是針對其他廣告素材作品指定的結構化資料值)。如要根據這些 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 檔案禁止系統檢索網頁,那麼系統將找不到任何與索引或服務指令相關的資訊,而這些資訊也會因此遭到忽略。如有必須遵循的索引或服務指令,您就不能禁止系統檢索內含這些指令的網址。