测试环境与线上对照的核心不是比较两边“有没有报错”,而是用同一套判定规则分别跑一遍死链修复工具,确认差异来自数据本身还是环境配置。第一次接触时,最关键的起点是固定一份URL样本清单,而不是急着在两边同时开启全站扫描。
测试环境和线上的域名、路径前缀、参数往往不同,直接对比扫描结果会得到大量假差异。准备阶段要做的是把待检URL归一化成相对路径,再分别拼上两个环境的域名。
test.example.com,线上用 www.example.com,注意区分假设示例与真实域名。这里要明确一点:robots.txt 的抓取限制不等于可靠的索引移除。工具在测试环境被 robots 挡住,只能说明抓取受限,不能推断线上页面已被搜索引擎移除。两边规则不一致时,先对齐规则再比较结果。
对照能否成立,取决于扫描参数是否一致。建议固定以下项目后再运行:
执行后把结果整理成三列:URL、测试环境状态码、线上状态码。状态码相同且都为 200 的条目可以直接跳过;重点看两类差异——测试正常而线上异常,以及测试异常而线上正常。前者可能是线上内容缺失或重定向配置问题,后者常见于测试环境未同步最新数据。这些只是可能原因,需要逐条验证,不能凭状态码差异直接下结论。
验证阶段要回答一个问题:这条差异是环境造成的,还是线上确实存在死链。可以按下面的检查项逐条排除。
curl -I https://www.example.com/path,其中域名仅为示例。判断结果可以这样归类:手动访问线上返回 404,且响应头一致,属于真实死链,需要修复;手动访问正常但工具报错,可能是工具被限流或 UA 被拦截,属于误报;两边都异常但线上有替代页面,属于需要补重定向的情况。HTTPS 只能说明传输加密,不保证页面本身有效,也不保证不存在死链。
一次性对照只能解决当下问题。要让死链修复工具持续发挥作用,可以把上面的流程固化成周期任务:每次线上发布前,用同一份基准清单在测试环境跑一遍;发布后,用相同参数在线上跑一遍;对比两次结果,只处理新增差异。站点地图不保证收录,所以清单来源不能只依赖站点地图,还要结合日志中实际被访问的URL。
下一步建议先选定20到50条URL作为固定样本,手动记录两边状态码,跑通一次完整对照流程,再决定是否扩大扫描范围。