如何驗證 Googlebot(並攔截冒充者)
任何人都能發送 Googlebot 的 User-Agent。本文說明如何用反向 DNS 驗證真正的 Googlebot,以及如何區分已驗證的爬蟲、AI 爬蟲與惡意自動化流量。
"Verify Googlebot" 是搜尋量最高的爬蟲相關問題之一,原因很簡單:大量不受歡迎的流量都披著 Googlebot 的外衣而來。User-Agent 極易偽造,將其視為證據,只會令爬蟲程式取得與真實爬蟲相同的通行權。
User-Agent 並不能證明任何事
Googlebot/2.1 只是一個請求標頭。爬蟲程式、無頭瀏覽器,甚至撞庫腳本都能發送完全相同的字串。若你的
放行規則是「User-Agent 包含 Googlebot」,那實際上等同開了一扇門,還掛上「請勿進入」的告示牌。
真正有效的驗證:正向確認的反向 DNS
Google 公佈了這套方法,共分三個步驟:
- 反向查詢該 IP。 取出發起連線的 IP,讀取其 PTR 記錄。真正的 Googlebot 會解析至
googlebot.com或google.com之下的主機名稱。 - 確認網域。 主機名稱必須以這兩個官方網域之一作結。冒充 Googlebot 的資料中心 IP 通常沒有這樣 的 PTR 記錄。
- 反向解析回 IP。 將該主機名稱重新解析為 IP,並確認與最初的連線 IP 相符。此步驟閉合了整個環 節,使僅憑偽造的 PTR 記錄無法蒙混過關。
任何一個步驟未能通過的「Googlebot」請求,都不是 Googlebot。同樣的方法亦可驗證 Bingbot,其他主流 爬蟲亦各自公佈了本身的 IP 段或 DNS 慣例。
問題早已不止 Googlebot 一個
2026 年更棘手的問題,在於介乎人類與明顯機器人之間的一大片灰色地帶。
- AI 爬蟲,例如 GPTBot、ClaudeBot、PerplexityBot,你或許希望放行、變現,或按名稱攔截。
- 無頭自動化程式(Playwright、Puppeteer、HeadlessChrome),能夠 逼真地偽裝成真實瀏覽器。
- 偽裝成良性爬蟲的流量,使用偽造的 User-Agent,來自 資料中心 IP 段。
反向 DNS 能夠驗證良性爬蟲,但單靠它無法為其餘流量分類。
疊加多種訊號,為其餘流量分類
驗證 Googlebot 只是其中一項輸入。要判斷其餘所有請求,還須結合:
- IP 來源: 資料中心、VPN、代理,還是乾淨的住宅 IP。來自資料中心 IP 段的無頭流量,是惡意自動化 的典型特徵。應先檢查該 IP 的信譽與來源。
- 無頭與自動化痕跡:
webdriver標記、缺失的瀏覽器特徵,以及 HeadlessChrome 之類的 User-Agent 標記。 - JA4 TLS 指紋: 反映客戶端實際的 TLS 交握方式,因此不受偽造 User-Agent 影響,能將真正的 Chrome 與冒充者區分開來。
- 請求標頭一致性: 真實瀏覽器會同時發送 Accept、Accept-Language 及 Accept-Encoding,許多機器人 則做不到這一點。
放行真實的爬蟲,再判斷其餘流量
| 請求 | 驗證結果 | 處理方式 |
|---|---|---|
| Googlebot,反向 DNS 已確認 | 已驗證 | 放行 |
| AI 爬蟲,按名稱識別 | 已知 | 放行、變現或按政策攔截 |
| 來自資料中心的無頭流量 | 缺乏良性身份 | 攔截 |
| 偽造的 Googlebot,反向 DNS 失敗 | 驗證失敗 | 攔截 |
這正是 Agentscan 在單次請求內完成的模型:透過正向確認的反向 DNS 驗證放行名單,按名稱 識別 AI 爬蟲,並將 IP 來源與無頭痕跡、JA4 結合,把每個請求判定為人類、已知爬蟲、AI 代理或惡意自動 化。判定結果會被快取,因此重複查詢能在 50 毫秒內傳回。
總結
切勿信任 Googlebot 的 User-Agent。以正向確認的反向 DNS 驗證它,放行你真正需要的爬蟲,再結合 IP 來 源、無頭痕跡與 JA4 判斷其餘流量。如此既能保護 SEO,亦能同時攔截偽造者。