Robots meta 標記、data-nosnippet 和 X-Robots-Tag 規格
本文詳細說明如何透過網頁層級和文字層級設定,調整 Google 在搜尋結果中呈現內容的方式。使用網頁層級設定,請在 HTML 網頁或 HTTP 標頭加入 meta 標記;若透過文字層級設定,則可以在網頁的 HTML 元素上使用 data-nosnippet 屬性。
提醒您,檢索器必須要能存取包含這些設定的網頁,Google 才有辦法讀取及遵循這些設定。
<meta name="robots" content="noindex"> 規則適用於搜尋引擎檢索器。如要封鎖非搜尋檢索器 (例如 AdsBot-Google),可能需要新增以特定檢索器為對象的指令,例如 <meta name="AdsBot-Google" content="noindex">。
使用 robots meta 標記
robots meta 標記可讓您以網頁為單位,精細地控管各網頁的索引建立情形以及在 Google 搜尋結果中的呈現方式。將 robots meta 標記放在指定網頁的 <head> 部分,如下所示:
<!DOCTYPE html> <html><head> <meta name="robots" content="noindex"> (…) </head> <body>(…)</body> </html>
在這個範例中,robots meta 標記指示搜尋引擎不要在搜尋結果顯示這個網頁,name 屬性的值 (robots) 則指定將這個規則套用到所有檢索器。name 和 content 屬性都不需區分大小寫。如果只想將指令套用到特定檢索器,請將 name 屬性的 robots 值改成該檢索器的使用者代理程式符記。Google 支援在 robots meta 標記中使用兩個使用者代理程式符記;其他值則會遭到忽略:
googlebot:所有文字結果。googlebot-news:用於新聞搜尋結果。
舉例來說,如要指示 Google 不要在搜尋結果中顯示某個摘要,可以將 googlebot 指定為 meta 標記名稱:
<meta name="googlebot" content="nosnippet">
如要在 Google 網頁搜尋結果中顯示完整摘要,但不要在 Google 新聞中顯示摘要,請將 googlebot-news 指定為 meta 標記的名稱:
<meta name="googlebot-news" content="nosnippet">
如要個別指定多個檢索器,可以使用多個 robots meta 標記:
<meta name="googlebot" content="notranslate"> <meta name="googlebot-news" content="nosnippet">
如果要禁止系統為非 HTML 資源 (例如 PDF 檔、影片檔或圖片檔) 建立索引,請改用 X-Robots-Tag 回應標頭。
使用 X-Robots-Tag HTTP 標頭
X-Robots-Tag 可做為特定網址的 HTTP 標頭回應元素。任何可以在 robots meta 標記中使用的規則,也可以指定為 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 標頭回應內合併 noimageindex 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: noimageindex 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 標頭、使用者代理程式名稱和指定的值都無需區分大小寫。
有效的索引建立和摘要提供規則
可讓機器讀取的格式也可以使用下列規則,透過 robots meta 標記和 X-Robots-Tag 控制網頁摘要的索引建立及提供狀況。每一個值都代表特定規則。若有多項規則,會以逗號分隔的清單或獨立的 meta 標記合併顯示。這些規則沒有區分大小寫。
| 規則 | |
|---|---|
|
在建立索引或提供網頁摘要方面沒有任何限制。這個規則是預設值,明確列出這個規則並不會產生任何影響。 |
|
不要在搜尋結果中顯示這個網頁、媒體或資源。如果未指定這個規則,代表系統可以為網頁、媒體或資源建立索引,並顯示在搜尋結果中。 如要從 Google 服務移除特定資訊,請依照逐步指南的說明操作。 |
|
不要追蹤這個網頁上的連結。如果未指定這個規則,代表 Google 能追蹤網頁上的連結,找出連結的網頁。進一步瞭解 nofollow。
|
|
等同於 noindex, nofollow。
|
|
不要在這個網頁的搜尋結果中顯示文字摘要或影片預覽畫面。但是如果有靜態圖片縮圖,而且顯示出來有助於提升使用者體驗,那麼系統仍可能會顯示這類縮圖。 這種做法適用於各種搜尋結果類型 (Google 的網頁搜尋、Google 圖片、探索、AI 摘要、AI 模式),而且也可以避免這些內容遭他人當成 AI 摘要和 AI 模式的直接輸入來源使用。 如果未指定這個規則,代表 Google 能夠根據在網頁上找到的資訊產生文字摘要和影片預覽。 如果不想讓特定部分的內容出現在搜尋結果摘要中,請使用 |
|
如果網頁內容透過
|
|
這個搜尋結果所能顯示的文字摘要,不能超過 [數字] 個半形字元。(請注意,同一個網址在搜尋結果網頁中可能會顯示為多筆搜尋結果)。這個指令不會對圖片或影片預覽畫面造成影響,這種做法適用於各種搜尋結果類型 (例如 Google 網頁搜尋、Google 圖片、探索、Google 助理、AI 摘要、AI 模式),而且也會限制有多少內容可當成 AI 摘要和 AI 模式的直接輸入來源使用。不過,如果發布者已另外授予內容使用權限,就不適用這項限制。舉例來說,如果發布者以網頁內結構化資料的形式提供內容,或是與 Google 簽訂授權協議,這項設定就無法禁止這些特別允許的用途。如未指定可剖析的數值,系統會忽略這個規則。 如果未指定這個規則,Google 會自行選擇網頁摘要長度。 特殊值:
範例: 如要禁止在搜尋結果中顯示文字摘要,請使用: <meta name="robots" content="max-snippet:0"> 如要允許搜尋結果顯示最多 20 個字元的文字摘要,請使用: <meta name="robots" content="max-snippet:20"> 如要表示文字摘要的顯示長度沒有字元數限制,請使用: <meta name="robots" content="max-snippet:-1"> |
|
設定這個網頁在搜尋結果中的圖片預覽大小上限。
如果未指定 接受的 [設定] 值:
這個指令適用於各種搜尋結果類型,例如 Google 網頁搜尋、Google 圖片、探索和 Google 助理。不過,如果發布者已另外授予內容使用權限,就不適用這項限制。舉例來說,如果發布者以網頁內結構化資料的形式 (例如文章的 AMP 和標準版本) 提供內容,或是與 Google 簽訂授權協議,這項設定就無法禁止這些特別允許的用途。
如果不希望 Google 搜尋和 Google 探索在顯示文章的 AMP 網頁和標準版本時使用較大的縮圖圖片,請將 範例: <meta name="robots" content="max-image-preview:standard"> |
|
搜尋結果最多只能為這個網頁上的影片顯示 [數字] 秒的影片摘要。
如果未指定 特殊值:
這個規則適用於各種搜尋結果類型,例如 Google 的網頁搜尋、Google 圖片、Google 影片、探索、Google 助理。如未指定可剖析的數值,系統會忽略這個規則。 範例: <meta name="robots" content="max-video-preview:-1"> |
|
不要在搜尋結果中提供這個網頁的翻譯。如果未指定這個規則,代表 Google 能夠針對所用語言和搜尋查詢不同的搜尋結果提供標題連結和摘要的翻譯。如果使用者點選翻譯後的標題連結,後續與該網頁進行的所有互動都會透過 Google 翻譯進行,系統也會自動翻譯使用者隨後點選的任何連結網頁。 |
|
不為這個網頁上的圖片建立索引。如果未指定這個值,代表系統能夠為網頁上的圖片建立索引,並顯示在搜尋結果中。 |
|
在指定的日期/時間之後,不要在搜尋結果中顯示這個網頁。指定日期/時間時須使用廣為採用的格式,包括但不限於 RFC 822、RFC 850 和 ISO 8601。 如未指定有效的日期/時間,系統會忽略這個規則。根據預設,內容並沒有到期日。 如未指定這個規則,代表這個網頁能夠無限期顯示在搜尋結果中。Googlebot 會在指定的日期和時間過後,大幅降低網址的檢索頻率。 範例: <meta name="robots" content="unavailable_after: 2020-09-21"> |
參照先前和其他未使用的規則
Google 搜尋不會使用下列規則,因此會予以忽略。這裡包含這些規則,是因為許多人經常詢問這些規則,或是我們過去曾使用這些規則。
| 先前和其他未使用的規則清單 | |
|---|---|
|
由於快取連結功能已不存在,因此 Google 搜尋不再使用 noarchive 規則控管是否在搜尋結果中顯示快取連結。 |
|
Google 搜尋不會使用 nocache 規則。 |
|
由於這項功能已不存在,因此 Google 搜尋不再使用 |
合併索引規則和搜尋結果規則
您可以使用半形逗號合併 robots meta 標記規則,也可以使用多個 meta 標記來建立多重規則指示。在下方範例中,robots meta 標記指示網路檢索器不要為網頁建立索引,也不要檢索網頁上的任一連結:
逗號分隔的清單
<meta name="robots" content="noindex, nofollow">
多個 meta 標記
<meta name="robots" content="noindex"> <meta name="robots" content="nofollow">
以下範例將文字摘要上限設定為 20 個半形字元,並允許顯示較大的圖片預覽畫面:
<meta name="robots" content="max-snippet:20, max-image-preview:large">
如果多個檢索器各指定了不同的規則,搜索引擎會併用所有否定規則。例如:
<meta name="robots" content="nofollow"> <meta name="googlebot" content="noindex">
Googlebot 在檢索包含這些 meta 標記的網頁時,會將網頁解譯為具備 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="false">also not in snippet</div> <!-- all values are ignored --> <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 --> <p>This text can be shown in a snippet.</p> <div data-nosnippet> <p>However, this is not in snippet.</p> <ul> <li>Stuff not in snippet</li> <li>More stuff not in snippet</li> </ul> </div>
一般來說,Google 會轉譯網頁,以便為網頁建立索引,但我們不保證一定會轉譯網頁。因此,在系統擷取 data-nosnippet 時,網頁可能已經轉譯,也可能尚未轉譯。為避免轉譯與否造成的不確定性,請勿透過 JavaScript 新增或移除現有節點的 data-nosnippet 屬性。透過 JavaScript 新增 DOM 元素時,如果您是初次將元素新增到網頁的 DOM,請視需要加入 data-nosnippet 屬性。使用自訂元素時,如果需要使用 data-nosnippet,請使用 div、span 或 section 元素來納入或轉譯這些元素。
使用結構化資料
Robots meta 標記可控管 Google 要從網頁中自動擷取多少內容,並顯示為搜尋結果。不過,許多發布者也會使用 schema.org 結構化資料提供特定資訊,以供顯示搜尋結果時使用。除了 article.description 以及其他創作內容所指定的結構化資料 description 值之外,使用其他結構化資料時都不會受到 Robots meta 標記設定限制的影響。如要根據這些 description 值指定預覽長度上限,請使用 max-snippet 規則。舉例來說,即使預覽文字受到限制,網頁上的 recipe 結構化資料還是可以納入食譜的輪轉介面中。您可以使用 max-snippet 限制預覽文字的長度,但如果同時透過複合式搜尋結果的結構化資料提供資訊,系統就不會套用 robots meta 標記。
如要管理網頁使用的結構化資料,請直接修改結構化資料的類型和值,藉此新增或移除資訊,僅提供您想提供的資料。另請注意,在 data-nosnippet 元素中宣告結構化資料後,這些資料仍可用於搜尋結果。
實際導入 X-Robots-Tag
您可以透過網站網路伺服器軟體的設定檔,將 X-Robots-Tag 加入網站的 HTTP 回應中。以 Apache 型網路伺服器為例,您可以使用 .htaccess 和 httpd.conf 檔案。搭配 HTTP 回應使用 X-Robots-Tag 的優勢是能夠指定要套用到整個網站的檢索規則,如此一來,就能因支援規則運算式獲得更高的作業彈性。
舉例來說,如要將 noindex, nofollow X-Robots-Tag 新增到整個網站所有 .PDF 檔案的 HTTP 回應中,請將以下程式碼片段加到 Apache 型網站的根目錄 .htaccess 檔案或 httpd.conf 檔案,或 NGINX 型網站的 .conf 檔案。
Apache
<Files ~ "\.pdf$"> Header set X-Robots-Tag "noindex, nofollow" </Files>
NGINX
location ~* \.pdf$ {
add_header X-Robots-Tag "noindex, nofollow";
}
非 HTML 檔案 (例如圖片檔),因為無法在 HTML 中使用 robots meta 標記,您可以改用 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 標頭:
Apache
# the htaccess file must be placed in the directory of the matched file. <Files "unicorn.pdf"> Header set X-Robots-Tag "noindex, nofollow" </Files>
NGINX
location = /secrets/unicorn.pdf {
add_header X-Robots-Tag "noindex, nofollow";
}將 robots.txt 規則與索引和摘要提供規則搭配使用
檢索網址時,檢索器會尋找 robots meta 標記和 X-Robots-Tag HTTP 標頭。如果 robots.txt 檔案禁止系統檢索網頁,檢索器就找不到與索引或搜尋結果規則相關的任何資訊,這些資訊就會因此遭到忽略。如果想要檢索器遵循索引或搜尋結果相關的規則,就不能禁止系統檢索包含這些規則的網址。