虚假 Googlebot 检测

验证 Googlebot

只有当源 IP 通过正向确认的反向 DNS 检查,或出现在 Google 公布的某个范围文件中时,请求才确实来自 Googlebot。先对该 IP 做反向查询:返回的主机名必须以 googlebot.com 或 google.com 结尾,再对该主机名做正向查询,结果必须是同一个 IP。user agent 字符串本身不能证明任何事,因为任何人都可以发送它。

验证自称 Googlebot 的 IP

对你粘贴的地址运行 Google 文档中说明的两种检查:反向 DNS 必须解析到 googlebot.com 或 google.com 主机,且该主机必须解析回同一地址;或者该地址必须出现在 Google 公布的范围文件中。

检查访问日志中的 IP

粘贴发送 Googlebot user agent 的地址。查询会返回该地址的 ASN 及其所属网络,这是识别虚假请求最快的方法:真正的 Googlebot 流量来自 Google,而不是托管转售商或住宅代理池。

ASN 数据
试试
命令行

正向确认的反向 DNS 检查

两次查询,一个结论
# 1. reverse lookup on the address from your log
host 66.249.66.1
# -> 1.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-1.googlebot.com

# 2. forward lookup on the hostname you just got back
host crawl-66-249-66-1.googlebot.com
# -> crawl-66-249-66-1.googlebot.com has address 66.249.66.1

# Genuine only if step 2 returns the exact address from step 1
# and the hostname ends in googlebot.com or google.com.

将地址替换为你自己日志中的地址。如果结果不一致,或主机名属于其他域名,则该请求不是 Googlebot。

不要跳过第二步。PTR 记录可由地址的控制者任意设置,因此仅凭 googlebot.com 主机名并不能证明什么。只有正向查询才能将其与 Google 的区域关联起来。

或与公布的范围文件进行比对

常见问题

任何人都可以为自己控制的地址设置 PTR 记录,包括以 googlebot.com 结尾的记录。正向查询堵住了这个漏洞:只有 Google 能让 crawl-66-249-66-1.googlebot.com 解析回访问你的那个地址。

其他爬虫也面临同样的问题

Googlebot 是最简单的情况,因为 Google 同时公布了 DNS 约定和范围文件。大多数 AI 爬虫两者都不提供。目录列出了每个爬虫实际提供的验证方式。

    虚假 Googlebot 检测:验证 Googlebot IP 范围 | IPScanner