测试环境与线上对照的核心,不是看两边返回的 HTTP 状态码是否完全一样,而是确认同一批 URL 在两边被判定为死链的依据是否一致。如果测试环境用 404 判定死链、线上用 410 或 301 处理,或者测试环境根本没接入真实跳转规则,那对照结果就不能作为上线依据。
多人协作时返工最多的环节,是每个人对死链的定义不同。有人把返回 404 的页面叫死链,有人把返回 200 但内容为空的页面也叫死链,还有人把被 robots.txt 禁止抓取的 URL 也算进去。这三种情况处理方式完全不同。
对照之前,先把这三类写成检查清单,测试环境和线上都按同一清单逐项记录。robots.txt 的抓取限制不等于可靠的索引移除,所以被 robots.txt 禁止的 URL 不应直接计入死链清单,而应单独标注为“抓取受限,待确认”。
建议用同一份 URL 列表,在测试环境和线上分别抓取,记录以下字段:
Location、X-Robots-Tag,用于判断是否存在额外的索引控制。把两边的记录并排放在同一张表里,差异项就是需要确认的点。差异不一定是错误,可能是环境配置不同导致的正常现象,但必须先解释清楚,再决定是否放行。
测试环境和线上常见的合理差异包括:域名不同、CDN 缓存策略不同、部分第三方服务在测试环境未接入。这些差异如果只影响跳转目标域名,不影响状态码和跳转逻辑,通常可以接受。
需要警惕的差异是:测试环境返回 404,线上返回 200;测试环境跳转到新页面,线上跳转到首页;测试环境没有跳转链,线上出现多级跳转。这类差异说明跳转规则没有同步,或者线上存在测试环境没有的旧配置。
一个可执行的判断方法是:对每个差异 URL,分别在两边用同一工具发起请求,对比完整响应链。如果线上多出一段跳转,就检查线上是否有额外的重定向规则;如果线上返回 200 但内容为空,就检查线上是否有兜底页面覆盖了 404。HTTPS 不保证安全无漏洞或排名,所以不要把“线上是 HTTPS”当作死链处理正确的依据。
假设你负责一批已下架商品的 URL 处理,测试环境配置了 301 跳转到对应分类页,线上尚未配置。对照时发现:测试环境返回 301 且目标页正常,线上返回 404。这个差异说明线上规则未部署,不能直接按测试环境结果交付。
可执行的步骤是:
站点地图不保证收录,所以死链处理完成后,不要用“已加入站点地图”作为收录恢复的证明。不同搜索引擎对 404 和 410 的处理节奏不同,需要分别核查,不能用一个引擎的表现推断另一个。
下一步:把上述四个字段做成固定表格模板,要求协作方在提交死链处理结果时附上测试环境与线上的对照记录,没有对照记录的交付不进入验收环节。