验证修复后的响应,不能只看浏览器里能不能打开。浏览器会自动跟随跳转、使用缓存,还可能忽略状态码差异。正确做法是直接查看服务器返回的HTTP状态码、跳转目标和最终落点,并确认该URL对搜索引擎爬虫返回的是可索引内容,而不是错误页或软404。
很多人修复死链后,用浏览器访问一次,看到页面正常显示,就认为处理完成。这个判断并不可靠,原因有三点:
所以验证的核心不是“人能不能看”,而是“服务器对这次请求返回了什么”。
不要依赖浏览器地址栏。可以使用命令行工具直接请求目标URL,观察响应头中的状态码和Location字段。例如在终端执行:
curl -I https://example.com/old-page
根据返回结果判断:
如果返回301,还要继续请求Location指向的新地址,确认它最终返回200,且内容与旧页面主题相关。跳转链越长,传递效果越容易被削弱,最好控制在一次跳转内。
状态码正确只是第一层。最终页面还需要满足可索引条件,否则修复只是把死链变成了“能打开但不会被收录”的页面。逐项检查:
<meta name="robots" content="noindex">,若有则不应作为跳转目标。robots.txt是否屏蔽了目标路径。注意,robots.txt限制抓取不等于可靠的索引移除,它只是阻止爬虫访问,已收录URL仍可能出现在结果中。同一个URL,对普通用户和对搜索引擎爬虫的响应可能不同。有些站点会根据User-Agent返回不同内容,或对爬虫单独做跳转。验证时需要分别核查:
如果普通请求返回200,而爬虫请求返回404或跳转到无关页,说明问题出在服务端识别逻辑,而不是链接本身。
修复数量较多时,不必逐条人工打开。可以导出修复前后的URL对照表,用脚本批量请求并记录状态码、跳转地址和最终状态码。抽样时优先覆盖:
复查周期不必固定,但应在修复上线后、缓存刷新后各验证一次。若状态码仍为404,先确认修改是否已部署到实际提供服务的环境,而不是只改了测试环境。
下一步,挑出修复清单中流量最高的十条旧URL,用命令行工具逐条请求,记录状态码和最终落点,把仍返回404或跳转到无关页面的条目单独列出,优先处理。