全部文章

如何验证 Googlebot(并拦截冒充者)

任何人都能发送 Googlebot 的 User-Agent。本文介绍如何用反向 DNS 验证真正的 Googlebot,以及如何区分已验证的爬虫、AI 爬虫和恶意自动化流量。

2026年6月23日阅读约 5 分钟

"Verify Googlebot" 是搜索量最高的爬虫相关问题之一,原因很简单:大量不受欢迎的流量都披着 Googlebot 的外 衣到来。User-Agent 极易伪造,把它当作证据,只会让爬虫程序拿到和真实爬虫一样的通行证。

User-Agent 什么也证明不了

Googlebot/2.1 只是一个请求头。爬虫程序、无头浏览器,甚至撞库脚本都能发送完全相同的字符串。如果你的放 行规则是"User-Agent 包含 Googlebot",那实际上等于开了一扇门,还挂了个"请勿入内"的牌子。

真正有效的校验:正向确认的反向 DNS

Google 公布了这套方法,共有三个步骤:

  1. 反向查询该 IP。 取出发起连接的 IP,读取它的 PTR 记录。真正的 Googlebot 会解析到 googlebot.comgoogle.com 之下的主机名。
  2. 确认域名。 主机名必须以这两个官方域名之一结尾。冒充 Googlebot 的数据中心 IP 通常没有这样的 PTR 记录。
  3. 反向解析回 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,又能同时拦截伪造者。

常见问题

常见问题解答

执行一次正向确认的反向 DNS 查询(forward-confirmed reverse DNS)。取出该 IP 的 PTR 记录,确认它以 googlebot.com 或 google.com 结尾,再把这个主机名解析回 IP,检查是否与原始 IP 一致。仅凭 User-Agent 字符串什么也证明不了。

相关文章