如何验证 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,又能同时拦截伪造者。