先给结论:源站返回 200 并不能证明百度抓到的就是你源站的内容。边缘节点异常时,最该保留的是“同一 URL 在同一时间、不同网络出口下的响应差异”,包括响应头、状态码、正文指纹和抓取时间。只留一张源站正常的截图,后续几乎无法复盘。
假设你运营一个内容站,源站已发布新版本页面,本地访问和源站直连都正常,但百度收录更新长期不反映新内容。你把域名接入过 CDN,节点缓存策略是“跟随源站”,理论上不该出问题。此时若直接去刷新缓存或改 robots.txt,很可能掩盖真实原因。正确顺序是先固定证据,再决定动哪里。
关键判断点是:源站正常只说明回源链路的一端正常,不代表边缘节点返回给爬虫的响应与源站一致。你需要证明的是“不一致是否真实存在”,而不是“我这边看起来没问题”。
对同一个 URL,分别从源站直连出口和至少一个边缘节点出口发起请求,记录以下内容:
Cache-Control、Age、X-Cache、Last-Modified、ETag 和 Vary。动作要点:用同一 URL、同一请求方法、同一 User-Agent 分别请求,避免变量混入。结果如何影响下一步——如果源站与边缘节点的正文指纹不同,问题在边缘缓存或回源;如果指纹相同但状态码不同,问题在边缘的响应处理或安全策略。
百度收录更新依赖抓取,抓取依赖它实际连到的节点。你需要把“我请求到了什么”和“爬虫可能请求到了什么”分开记录。
可以保留的证据包括:边缘节点的访问日志中,来自百度爬虫 UA 的请求记录,字段至少包含时间、URL、状态码、命中的缓存状态和回源标记。若日志无法长期保存,至少导出异常时间段内的片段。注意:日志里没有爬虫记录,不能直接推断“百度没来抓”,也可能是日志采样、日志级别或节点未记录;反过来,有爬虫记录也不代表抓到的内容正确。
这一步的实际动作是:把日志时间轴与你的发布、缓存刷新、配置变更时间对齐。如果异常只出现在某次配置变更之后,范围就能收窄到那次变更;如果异常在变更前已存在,就要继续往前查。
robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。边缘异常场景下,这两者常被误当成主因。
要保留的证据是:robots.txt 的实际响应内容与响应头,以及它是否被边缘节点返回了不同版本;站点地图的 URL、最后修改时间和响应状态。若站点地图里的 URL 指向的正是异常节点返回旧内容的地址,那么问题不在站点地图本身,而在它指向的响应。
动作与结果:先确认 robots 与站点地图的响应是否也存在源站与边缘不一致。若一致,就不要在这两项上继续消耗时间;若不一致,说明边缘层对静态文件的处理也有偏差,需要一并纳入排查范围。
把上述内容整理成一条时间线,至少包含:发布时间、首次发现异常时间、每次请求的时间与出口、每次配置或缓存操作的时间、操作后的复测结果。每个节点写清“做了什么、观察到什么、因此下一步查什么”。
假设示例:某次发布后,源站正文指纹为 A,边缘节点在 10:00 返回指纹 B,10:30 刷新缓存后返回指纹 A,但 11:00 又回到 B。这个反复说明不是单次缓存未过期,而是回源或缓存键规则存在持续偏差。下一步应查缓存键是否包含影响内容的请求头,而不是继续重复刷新。
需要提醒的是,请求量或抓取量归零不能单独证明你的处理正确。它也可能是统计口径变化、日志延迟或抓取调度波动的结果。保留时间线,是为了让后续判断有依据,而不是为了证明某个操作“一定有效”。
如果证据显示源站与边缘节点响应不一致,且不一致可稳定复现,可以先在边缘层做最小范围的处理,例如针对该 URL 刷新缓存并立即复测同一组指标。复测仍不一致,就停止扩大操作范围,转向缓存键与回源配置核查。
如果证据显示两者一致,那么边缘节点不是当前可证实的异常点。此时继续刷新缓存或修改 robots 只会增加变量,应把注意力转回抓取日志与页面本身的可访问性,并保留现有证据以便对比。整个过程中,HTTPS 正常不代表内容分发链路无异常,两者需要分别核查。