虚假 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 的区域关联起来。
或与公布的范围文件进行比对
googlebot.json搜索抓取special-crawlers.jsonGoogleOther 和 AdsBot 系列user-triggered-fetchers.json由用户发起的抓取
常见问题
任何人都可以为自己控制的地址设置 PTR 记录,包括以 googlebot.com 结尾的记录。正向查询堵住了这个漏洞:只有 Google 能让 crawl-66-249-66-1.googlebot.com 解析回访问你的那个地址。
其他爬虫也面临同样的问题
Googlebot 是最简单的情况,因为 Google 同时公布了 DNS 约定和范围文件。大多数 AI 爬虫两者都不提供。目录列出了每个爬虫实际提供的验证方式。