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 檢索器和擷取程式支援下列內容編碼 (壓縮):gzip、deflate 和 Brotli (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 回應中同時包含 ETag
和 Last-Modified
回應標頭欄位,Google 檢索器就會使用 ETag
值,如 HTTP 標準所規定。針對 Google 檢索器,我們建議使用 ETag
而非 Last-Modified
標頭,以便指出快取偏好設定,因為 ETag
不會出現日期格式問題。
不支援其他 HTTP 快取指令。
個別 Google 檢索器和擷取程式是否使用快取,取決於與之相關聯的產品需求。舉例來說,Googlebot
會在重新檢索 Google 搜尋網址時支援快取,而 Storebot-Google
只會在特定情況下支援快取。
如要為網站實作 HTTP 快取,請與您的代管服務或內容管理系統供應商聯絡。
ETag
和 If-None-Match
Google 的檢索基礎架構支援 HTTP 快取標準定義的 ETag
和 If-None-Match
。進一步瞭解 ETag
回應標頭及其對應的請求標頭 If-None-Match
。
Last-Modified 和 If-Modified-Since
Google 的檢索基礎架構支援 HTTP 快取標準定義的 Last-Modified
和 If-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 檢索器會透過三種方式識別自己:
-
HTTP
user-agent
要求標頭。 - 要求的來源 IP 位址。
- 來源 IP 的反向 DNS 主機名稱。
瞭解如何使用這些詳細資料驗證 Google 檢索器和擷取程式。