死链查询在测试环境和线上环境之间做对照,最关键的一步不是分别跑一遍扫描,而是先把两边要检查的URL集合对齐,再逐条比对HTTP状态码、跳转链和页面内容。如果两边URL本身就不一致,扫描结果没有可比性,只会得出“测试有问题”或“线上有问题”的错误结论。下面按准备、实施、验证、维护四个阶段说明具体做法。
测试环境和线上环境常见差异有三类:域名前缀不同、目录路径不同、带参数或大小写不同。对照前先把线上URL清单导出,再按测试环境的域名规则做一次映射,形成一张对照表。这张表至少包含四列:线上URL、测试URL、预期状态、实际状态。
test.example.com,线上用www.example.com,映射时只替换主机名,保留路径、参数和结尾斜杠。/v2/,要在对照表里明确标出,避免把路径差异误判为死链。/Page和/page在某些服务器上返回不同结果。准备阶段还要记录两边的robots.txt是否允许抓取。robots.txt的限制只影响爬虫抓取行为,不等于把页面从索引中移除,也不代表线上页面一定可访问。测试环境如果整体禁止抓取,扫描工具可能直接跳过,这时要改用不带robots限制的抓取模式,或者手动抽查。
两边用同一款工具、同一组超时和重试参数扫描,减少工具差异带来的噪声。重点记录四类结果:
假设某产品详情页在线上返回404,测试环境返回200。此时不要直接断定线上配置错误,因为也可能是该商品在线上已下架、测试数据未清理。需要结合内容管理系统里的发布状态一起判断,才能区分“配置导致的死链”和“业务上本就应删除的页面”。
对照结果要按原因分类,而不是只统计数量。可以按下面的检查项逐条判断:
验证时还要注意:站点地图里列出的URL不保证被收录,也不保证可访问,它只是候选清单。HTTPS同样不保证页面没有死链,证书正常和链接有效是两件事。不同搜索引擎对跳转和状态码的处理方式存在差异,涉及具体搜索引擎时须分别核查其官方文档,不要用一套结论套用所有平台。
死链不是一次性问题。每次发布、改版或迁移域名后,URL都可能变化。建议把对照检查放进发布流程:上线前用测试环境扫描一遍,上线后用线上URL清单再扫一遍,比对两次结果中新增的4xx和异常跳转。发现差异后,先确认是映射问题还是真实失效,再决定修正链接、补跳转还是保留404。
下一步可以做的具体动作:从线上导出最近一次站点地图中的URL,按测试环境域名规则生成对照表,用同一工具扫描两边,把状态码不一致的条目单独列出并标注原因分类。这份清单就是后续修复和回归验证的依据。