排除缓存造成的假象,核心是拿到“绕过缓存”的独立证据:先用带随机查询参数或强制刷新请求确认源站当前返回什么状态码,再用搜索引擎自己的抓取工具或日志确认它最近一次看到的响应,最后才决定这条死链是否需要修复、保留或提交移除。只凭浏览器里看到的 404 或 200,很容易把缓存结果当成真实状态。
“缓存造成的假象”通常来自三个层面,排查时必须分开:
三者混在一起时,最容易得出错误结论。判断顺序应是:源站 → CDN/代理 → 搜索引擎抓取记录。
假设某站点把 /old-page 从 301 改成了 410,但一周后在浏览器里访问仍显示 301。以下是可执行的排查流程,结果均需按实际返回判断:
curl -I "https://example.com/old-page?cachebust=20240101"。看返回的 HTTP/1.1 状态码和 Cache-Control、Age、X-Cache 等响应头。若返回 410,说明源站已生效。Cache-Control: no-cache 再测一次。若边缘仍返回 301,且 Age 很大,说明是 CDN 缓存未刷新。/old-page 时收到的是哪个状态码。日志里若是 301,说明爬虫还没看到 410。判断结果:源站 410、CDN 301,属于 CDN 缓存假象;源站和 CDN 都是 410、日志里爬虫仍是 301,属于搜索引擎侧尚未更新,需要等待重新抓取或主动提交。
排查时容易犯的错误包括:
robots.txt 屏蔽旧 URL 来代替返回 410。robots.txt 的抓取限制不等于可靠的索引移除,被屏蔽的 URL 仍可能留在索引里。建议固定检查这几项:源站状态码、CDN 响应头中的缓存标识、爬虫日志中的最近抓取状态、搜索引擎抓取工具返回的实时结果。四项一致时,才可认为缓存假象已排除。
如果确认是 CDN 缓存,可对具体 URL 执行缓存刷新,再重复第 1、2 步验证;如果确认是搜索引擎侧未更新,可通过抓取工具请求重新抓取,或按各搜索引擎的移除流程提交。不同搜索引擎支持情况须分别核查,不要假设一个平台的处理会同步到另一个平台。
需要提醒的是,HTTPS 不保证安全无漏洞或排名,它和死链状态码是两件独立的事,排查时不要混为一谈。
下一步:选一条你怀疑被缓存掩盖的死链,按“源站 → CDN → 爬虫日志 → 抓取工具”的顺序记录四个状态码,再决定是刷新缓存还是等待重新抓取。