移动端与桌面端检查死链的核心差异在于:同一链接可能因为页面渲染方式、跳转逻辑或抓取工具设置不同,在一端返回正常状态,在另一端却暴露为死链。因此不能只依赖桌面端结果,而应分别用移动端视角和桌面端视角采集链接,再对比状态码、最终地址和页面内容,找出只在某一端失效的链接。
桌面端页面常把导航、相关推荐和页脚链接一次性输出在 HTML 中;移动端可能采用折叠菜单、懒加载或动态渲染,链接在初始 HTML 里并不完整。此时用同一份链接清单去测,会漏掉只在移动端出现的入口。判断方法很直接:分别保存两端渲染后的 HTML,搜索 <a> 标签的 href,对比链接集合。若移动端链接数量明显偏少,说明需要先解决采集完整性问题,而不是急着判定死链。
拿到两份链接清单后,逐条请求并记录三项信息:HTTP 状态码、重定向链的最终 URL、最终页面是否包含有效内容。常见差异及解释如下:
可以用命令行分别模拟两种客户端请求,例如:
curl -I -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)" https://example.com/page
再换成桌面端 User-Agent 执行一次,对比返回的 Location 和状态码。假设某页面在桌面请求返回 301 并最终到达有效页,而移动请求返回 404,这就说明差异发生在服务端分流环节,应优先检查移动端规则,而不是修改页面上的链接文字。
如果链接只在移动端缺失,优先修正渲染或菜单输出逻辑,确保链接真实存在于可抓取的 HTML 中。如果链接在两端都失效,统一更新为目标地址或移除入口。如果重定向链在某一端循环或指向失效页,应简化跳转规则,让两端落到同一有效目标。修复时不要用 robots.txt 屏蔽失效路径来代替处理,抓取限制不等于可靠的索引移除,也不能解决用户点击后看到错误页的问题。
修复后重新采集两端链接,生成对比表,至少包含:来源页面、链接地址、桌面状态码、移动状态码、最终 URL、复查日期。复查时确认三点:原先失效的链接在两端都返回有效内容;新出现的链接已纳入清单;重定向不再指向新的失效地址。站点地图可以作为发现链接的辅助来源,但不保证收录,也不能替代实际请求验证。若站点使用 HTTPS,也不要因为协议是 HTTPS 就跳过状态码和内容检查,HTTPS 不保证页面本身有效。
下一步:选取站点中访问量最高的若干入口页,分别用移动端和桌面端各跑一遍链接采集与状态检查,把两端结果不一致的链接单独列出,按上面的差异类型逐条处理并记录复查结果。