surfup

在服务器日志中验证 Googlebot 请求

核实 Googlebot 请求,而不是只相信 User-Agent 字符串。

当出现抓取量激增、重复的 5xx 响应或意外的机器人负载时,可使用此流程。User-Agent 字符串只是一个声明,不能证明身份。

建立有用的日志样本

  • 导出时间戳、来源 IP、User-Agent、方法、路径、状态、响应字节数和请求时长。固定时间窗口和时区。
  • 按声明的爬虫、状态和路径分组。分别计算请求数和不同 IP 数;不要根据原始请求数推断人数或访问量。

更改访问权限前先核实身份

  • 对于 Googlebot,使用 Google 发布的 IP 范围或文档中的反向 DNS 流程验证来源 IP。仅 User-Agent 匹配并不足够。
  • 将已验证的请求与 robots 规则、抓取速率和服务器错误进行比较。只针对确切的滥用 IP/路径模式升级处理;保留证据和回滚方案。

示例和预期结果

  • 示例:一条日志记录显示 GET /page 200 "Googlebot"。对于真实 IP,执行反向 DNS,确认其为 Google 官方爬虫主机名,然后进行正向解析,核实结果包含原始 IP。记录状态、URL、响应码和时间。示例 IP 203.0.113.24 仅供文档使用。
  • 如果两次 DNS 检查结果不匹配,将该请求标记为未验证;不要只凭 User-Agent 作出判断。本流程仅适用于 Google;其他服务商应使用各自公布的验证方法。限制日志访问,并且只在配置的保留期限内保存 IP 数据。

主要来源