Google 檢索器和擷取程式 (使用者代理程式) 總覽

Google 會使用檢索器和擷取程式對產品執行動作,無論動作是自動或由使用者要求觸發。「檢索器」有時也稱為「漫遊器」或「自動尋檢程式」,泛指任何用來自動探索及掃描網站的程式。擷取程式會像 wget 這類程式一樣運作,通常會代表使用者提出單一要求。Google 檢索器分為三類:

常見檢索器 Google 產品使用的常見檢索器 (例如 Googlebot)。這類檢索器一律會遵守自動檢索的 robots.txt 規則。
特殊情況檢索器 特殊情況檢索器與常見檢索器類似,但只有特定產品會使用,因為接受檢索的網站和 Google 產品之間,有針對檢索程序制定的協議。舉例來說,AdsBot 會忽略具有廣告發布商權限的全域 robots.txt 使用者代理程式 (*)。
使用者觸發的擷取程式 使用者觸發的擷取程式是工具和產品函式的一部分,由使用者觸發擷取動作。舉例來說,Google 網站驗證工具就是依據使用者的要求而行動。

Google 檢索器和擷取程式的技術資源

Google 檢索器和擷取程式能夠同時由數千台機器運作,藉此提升執行效能,並配合網路規模的成長擴充。為了最佳化頻寬使用量,這些用戶端會分散到全球各地的許多資料中心,以便靠近可能存取的網站。因此,您的記錄可能會顯示來自多個 IP 位址的造訪記錄。Google egress 流量主要來自美國的 IP 位址。如果 Googlebot 偵測到網站封鎖來自美國的要求,可能會嘗試從其他國家/地區的 IP 位址進行檢索。

支援的傳輸通訊協定

Google 檢索器和擷取程式支援 HTTP/1.1 和 HTTP/2。檢索器會使用可以提供最佳檢索效能的通訊協定版本,並可能根據先前的檢索統計資料在檢索工作階段之間切換通訊協定。Google 檢索器使用的預設通訊協定版本為 HTTP/1.1。透過 HTTP/2 檢索網站或許能節省網站和 Googlebot 的運算資源 (例如 CPU、RAM),但不會為網站帶來任何產品特定優勢 (例如不會提升 Google 搜尋的排名)。如要選擇不透過 HTTP/2 進行檢索,請對代管網站的伺服器下達指示,要求伺服器在 Google 嘗試透過 HTTP/2 存取網站時傳回 421 HTTP 狀態碼。如果無法採取這種做法,您也可以傳送訊息給檢索團隊,不過這只是暫時性的解決方案。

Google 檢索器基礎架構也支援透過 FTP (依據 RFC959 及其更新版定義) 和 FTPS (依據 RFC4217 及其更新版定義) 進行檢索,但透過這些通訊協定進行檢索的情況並不常見。

支援的內容編碼

Google 檢索器和擷取程式支援下列內容編碼 (壓縮):gzipdeflateBrotli (br)。每個 Google 使用者代理程式支援的內容編碼,都會顯示在每項提出要求中的 Accept-Encoding 標頭。例如:Accept-Encoding: gzip, deflate, br

檢索頻率和主機負載

我們的目標是在每次瀏覽您的網站時,盡可能檢索更多網頁,同時避免對您的伺服器造成太大影響。如果您的網站無法應付 Google 的檢索要求,可以降低檢索頻率。請注意,傳送不當的 HTTP 回應代碼給 Google 檢索器,可能會影響網站在 Google 產品中的顯示方式。

HTTP 快取

Google 的檢索基礎架構支援 HTTP 快取標準所定義的推測 HTTP 快取功能,具體來說,就是透過 ETag 回應和 If-None-Match 要求標頭,以及 Last-Modified 回應和 If-Modified-Since 要求標頭。

如果 HTTP 回應中同時包含 ETagLast-Modified 回應標頭欄位,Google 檢索器就會使用 ETag 值,如 HTTP 標準所規定。針對 Google 檢索器,我們建議使用 ETag 而非 Last-Modified 標頭,以便指出快取偏好設定,因為 ETag 不會出現日期格式問題。

不支援其他 HTTP 快取指令。

個別 Google 檢索器和擷取程式是否使用快取,取決於與之相關聯的產品需求。舉例來說,Googlebot 會在重新檢索 Google 搜尋網址時支援快取,而 Storebot-Google 只會在特定情況下支援快取。

如要為網站實作 HTTP 快取,請與您的代管服務或內容管理系統供應商聯絡。

ETagIf-None-Match

Google 的檢索基礎架構支援 HTTP 快取標準定義的 ETagIf-None-Match。進一步瞭解 ETag 回應標頭及其對應的請求標頭 If-None-Match

Last-Modified 和 If-Modified-Since

Google 的檢索基礎架構支援 HTTP 快取標準定義的 Last-ModifiedIf-Modified-Since,但有以下注意事項:

  • Last-Modified 標頭中的日期格式必須符合 HTTP 標準的規定。為避免剖析問題,建議您使用以下日期格式:「星期幾, DD Mon YYYY HH:MM:SS 時區」。例如:「Fri, 4 Sep 1998 19:15:56 GMT」。
  • 雖然 Cache-Control 回應標頭的 max-age 欄位不是必填欄位,但建議您一併設定,協助檢索器判斷何時要重新檢索特定網址。將 max-age 欄位的值設為內容預期不變的秒數。例如:Cache-Control: max-age=94043

進一步瞭解 Last-Modified 回應標頭及其對應的請求標頭 If-Modified-Since

驗證 Google 檢索器和擷取程式

Google 檢索器會透過三種方式識別自己:

  1. HTTP user-agent 要求標頭。
  2. 要求的來源 IP 位址。
  3. 來源 IP 的反向 DNS 主機名稱。

瞭解如何使用這些詳細資料驗證 Google 檢索器和擷取程式