用网站死链检查工具扫出一批404、410或超时链接时,先不要急着改页面或删链接。缓存造成的假象很常见:工具读到的是CDN边缘节点、浏览器、代理服务器或DNS缓存里的旧响应,而不是源站当前的真实状态。排除办法是绕过缓存重新请求同一URL,对比两次结果,再决定是否真的存在死链。
要查什么:工具返回的状态码、响应头和最终URL,是否来自源站。
怎么查:对可疑URL用curl -I请求,观察响应头里有没有Age、X-Cache、CF-Cache-Status、X-Cache-Hits这类字段。再用带随机查询参数的同一URL请求一次,例如?cachebust=20240101。
结果说明什么:如果带随机参数的请求返回200,而原URL返回404,说明原URL很可能命中了旧缓存;如果两次都返回404,缓存嫌疑下降,需要继续查源站配置。
要查什么:源站在不使用缓存时到底返回什么。
怎么查:在请求头里加Cache-Control: no-cache和Pragma: no-cache,或者直接请求源站IP并带上Host头。部分CDN还支持通过特定请求头触发回源,具体字段需要查你所使用服务的文档。
结果说明什么:源站返回200而CDN返回404,属于缓存层问题,应清理该URL的缓存或调整缓存规则;源站也返回404,才是真正的死链,需要修复链接或设置跳转。
dig或nslookup查看解析结果,与源站当前IP对比。解析到旧IP时,页面可能整体不可达,表现为大量假死链。要查什么:哪些链接是真死链,哪些只是缓存假象。
怎么查:对每个可疑URL记录三项——工具原始状态码、强制回源状态码、带随机参数状态码。三者一致为404,判定为真死链;仅工具原始请求为404,另外两项为200,判定为缓存假象。
结果说明什么:真死链进入修复队列,做301跳转或更新链接;缓存假象进入缓存规则检查队列,确认TTL设置和清除机制是否合理,避免下次扫描再次误报。
缓存清除后不会瞬间全网生效,边缘节点可能有传播时间,复测应间隔进行并记录每次结果。robots.txt限制抓取不等于页面已被移除,工具报错时不要把抓取限制当成死链结论。站点地图里的URL也不保证被收录或可访问,仍需实际请求验证。HTTPS只说明传输加密,不代表页面一定存在。不同搜索引擎和抓取工具的缓存策略不同,同一URL在不同工具里结果不一致时,以强制回源结果为准。
下一步:挑出扫描结果中状态码为404或410的URL,逐个执行强制回源请求,把返回200的标记为缓存假象并检查缓存规则,把返回404的列入真实死链修复清单。