先给结论:源站返回的HTML里canonical正确,并不能证明用户和爬虫拿到的就是这一版。当边缘节点缓存、改写或分流了响应时,你需要的证据是“同一URL在不同节点上分别返回了什么”,而不是再检查一遍源站模板。缺少完整日志权限时,最小动作是固定一组URL,分别从源站直连和至少一个边缘节点取回原始响应头与正文片段,记录时间、节点标识和请求头;这些证据能证明差异存在,但不能单独证明索引已经受损或某次抓取因此改变。
这是两条不同的证据链,取舍也不同。若目标是推动修复,证明差异存在通常就够了:同一URL、相近时间、不同节点,canonical值不一致即可。若目标是判断是否要改回、回滚或提交移除,就必须再补一层后果证据,例如带缓存标识的抓取日志、索引状态页面的canonical字段、或搜索结果的展示URL变化。
两者成立的前提不同。差异证据只要求你控制变量:同一路径、同一查询串、同一User-Agent、尽量接近的时间戳。后果证据则要求你能把某次抓取对应到某个节点,而这往往依赖边缘日志里的上游标识或缓存命中字段,没有这些字段时不要用“抓取量变化”来替代。
下面这些材料的关键是“原始”,不要只留截图或二次整理后的表格,因为后续复核需要看到未经改写的字段。
如果只能留下一样,优先留响应头加正文片段的组合,因为它同时回答“谁返回的”和“返回了什么”。单独留正文,无法区分是缓存旧版还是节点改写;单独留响应头,无法看到canonical值本身。
没有边缘日志、没有缓存后台、也拿不到抓取日志,仍然可以做一件事:把同一组URL在源站直连和可访问的边缘入口上各取一次,保存原始响应。动作要点是固定URL清单、固定请求头、记录采集时刻,并把两次结果并排存放而不是合并成一份结论。
这个动作的结果会直接影响下一步。若两边canonical一致,那么当前证据不支持“边缘改写”的判断,应把注意力转向别处,例如同一路径不同查询串、不同User-Agent或不同地区入口是否返回不同版本。若两边不一致,下一步不是立刻改源站,而是先确认差异是否稳定复现:换时间点、换节点、换请求头再取一轮。只有稳定复现的差异,才值得进入回滚或缓存清理的决策。
假设某篇文章源站返回的canonical指向自身,而某个边缘节点返回的正文里canonical指向了另一条URL。以下判断均为假设推演,不是真实项目结论。
采集量下降、抓取量归零、或某个统计项突然变小,都可能有多种解释:采集方式变了、请求头变了、节点调度变了,或者只是采样窗口不同。它们不能单独证明canonical处理正确或错误。同理,源站返回正常也不等于用户看到正常,边缘节点返回异常也不等于索引一定受影响。
另外,用robots.txt限制抓取、提交站点地图、或启用HTTPS,都不能替代对canonical差异本身的核查:抓取限制不等于索引移除,站点地图不保证收录,HTTPS也不保证内容一致性。不同搜索引擎对canonical信号的处理方式需要分别核查,不要把一处观察直接推广到所有入口。
把“差异是否存在”和“差异造成了什么”分开记录,是这套证据能支撑后续决策的前提;缺少其中一层时,明确写出缺的是哪一层,比用推测补齐更有用。