用死链工具检查移动端与桌面端的差异,核心不是换一台设备重跑一遍,而是让抓取请求分别带上桌面和移动端的 User-Agent,再对比同一批 URL 返回的状态码、跳转链和页面内容是否一致。如果两端结果不同,问题通常出在服务端按 UA 做了差异化处理、跳转规则只对某一端生效,或移动端页面本身存在独立死链。
死链工具本质上是一个爬虫,它发出的请求带有特定的 User-Agent 头。服务端、CDN 或反向代理可以据此返回不同内容:桌面 UA 拿到 200,移动 UA 可能被重定向到 m. 子域,而这个子域上的页面已经下线,于是变成 404。也可能相反,桌面端访问的旧路径早已删除,移动端却还保留着可用页面。
常见差异来源包括:
需要注意,robots.txt 的抓取限制不等于可靠的索引移除,被 robots 挡住的 URL 仍可能出现在结果里;站点地图也不保证收录。因此对比两端时,状态码和内容才是主要判断依据,不要只看工具报告里的“已屏蔽”标记。
假设有一个响应式电商站点,桌面端和移动端共用同一套 URL。运维人员用死链工具以桌面 UA 跑了一遍,报告显示 12 条 404。为了确认移动端是否一致,他们又用移动 UA 跑了一遍,结果变成 19 条 404,多出的 7 条集中在商品详情页。
排查步骤可以这样执行:
Location 响应头和最终落地页。在这个假设例子里,多出的 7 条 404 最终定位为移动端专属的推荐模块链接:这些链接只在移动布局中渲染,指向的商品已下架。桌面端不渲染该模块,所以第一轮没有抓到。这是“已经定位的原因”,而不是凭现象直接下的结论——同样的 404 也可能来自跳转配置错误,必须逐条验证。
只对比“是不是死链”不够,建议把以下字段并列记录,才能判断差异性质:
403 和 429 往往不是真正的死链,而是服务端拒绝了这次请求。遇到这类状态码,应先降低抓取频率或确认是否被防护策略拦截,再决定是否计入死链清单。
多数死链工具允许自定义 User-Agent,或提供移动端与桌面端两种预设。使用时注意三点:
判断结果时,按差异类型分流:两端状态码不同,优先查服务端 UA 判断和跳转规则;状态码相同但内容不同,查模板和渲染逻辑;只有一端能抓到某链接,说明该链接可能只存在于某一端的 HTML 中,需要确认它是否应该存在。
修复完成后,不要只重跑出错的那一端。用同样的两份 UA 配置再跑一次,确认差集缩小到零或只剩可解释的条目。对涉及跳转的修复,重点核对最终落地页返回 200 且内容正确,而不是只看跳转是否发生。HTTPS 不保证页面没有其他问题,状态码正常也不代表内容就是用户该看到的那一页,所以标题和主体仍需抽查。
下一步,先固定一份两端共用的 URL 清单和 UA 配置,把本次差集导出留档,再按“服务端规则—模板渲染—内容下线”的顺序逐条排查,这样每次复跑都能和上一轮结果直接对比。