先给出结论:当源站自测正常、百度抓取却出现失败或内容不一致时,最该保留的不是“源站正常”的结论,而是能证明边缘节点在什么条件下返回了什么的证据链。具体包括:同一 URL 在源站与边缘节点上的响应头与响应体对比、节点返回异常时的精确时间与客户端信息、DNS 解析路径、以及能区分“节点缓存旧内容”与“节点回源失败”的对照记录。只保存源站截图,无法解释百度一侧看到的现象。
以下为假设情境,用于说明决策过程,不代表任何真实站点数据。假设某站点有 A、B、C 三个边缘节点,运维在 A 节点用浏览器访问某文章页,返回 200 且内容为新版;但百度抓取日志中该 URL 反复出现抓取失败或抓到旧标题。运维据此判断“源站没问题,是百度的问题”。这个判断不能直接成立,因为 A 节点正常不代表 B、C 节点正常,也不代表百度抓取时命中的节点正常。
正确的下一步是:固定同一 URL、同一请求方法、同一 User-Agent 特征,分别向源站和每个边缘节点发起请求,记录响应状态码、Age、Cache-Control、ETag、Last-Modified、X-Cache(若存在)以及响应体摘要。只要有一个节点的状态码或内容摘要与源站不一致,就说明问题位于边缘层,而不是源站或百度单方面。
边缘节点异常最常见的形式是缓存了旧版本、回源超时后返回错误页、或对特定请求头返回不同结果。因此证据要能回答“哪个节点、在什么条件下、返回了什么”。建议保留:
这些记录的价值在于可对比。若某节点返回 200 但 Age 很大、内容摘要与源站不同,指向缓存未刷新;若某节点返回 5xx 或超时页,指向回源链路异常;若所有节点都正常而百度仍失败,才需要把怀疑转向抓取侧或 DNS 侧。
边缘节点异常往往具有时间窗口和地域差异。要保留能定位“何时、从何处”的信息:
这里要说明一个边界:DNS 解析结果只能说明“当时解析到了哪些地址”,不能单独证明百度一定命中了该地址。因此解析证据必须与节点访问日志结合,才能形成可复查的链条。
抓取失败或内容不一致,也可能来自 robots.txt 限制、站点地图误导、源站对特定 UA 的差异化响应,甚至 HTTPS 证书链在部分节点上的差异。注意,robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录,HTTPS 同样不保证安全无漏洞或排名。因此需要做对照记录:
如果只有百度抓取复现,而其他客户端全部正常,不能直接断定百度有错,因为请求频率、UA、IP 段和超时设置都可能不同。此时应保留百度抓取日志中的状态与时间,与节点日志做交叉比对,而不是只保留一方日志。
完成上述证据收集后,通常会得到三种可区分的结论,对应不同动作:
需要提醒的是,抓取量或某项统计归零,不能单独证明处理正确,因为缓存过期、调度切换或抓取周期变化都可能造成类似现象。因此每次动作后,应保留动作前后的对照记录,再决定是继续修复还是转入持续观察。这样做的结果是:下一次异常出现时,你能用同一套证据格式快速判断问题层级,而不是重新从“源站是否正常”开始猜测。