移动端与桌面端检查死链的差异,核心不在“链接本身是否失效”,而在抓取方式、渲染能力和请求环境不同。同一批URL,桌面爬虫可能返回200,移动爬虫却因跳转、拦截或资源加载失败被判为死链。要交付清楚,先固定用同一份URL清单,再分别用两端配置跑一遍,最后对照差异清单逐条归因。
多人协作最容易返工的地方,是A用桌面端导出、B用移动端导出,样本不同却拿来对比。准备阶段要做三件事:
404、410 记为确定死链,5xx 和超时记为待复核,不要混在一起。这一步的关键是“同一输入、两套环境”。如果两端清单不同,后面所有对比都无意义。
桌面端通常以普通爬虫的User-Agent请求,侧重HTML响应和链接抽取;移动端检查要模拟移动User-Agent,并尽量开启JavaScript渲染,因为不少页面靠脚本注入导航和内容。两者都跑同一份清单,分别导出:URL、状态码、最终跳转地址、响应耗时。
如果工具支持设备模拟,移动端配置里优先选“移动设备”预设;不支持时,至少手动改User-Agent并开启渲染。注意:开启JavaScript渲染会显著变慢,但只抓HTML会漏掉脚本生成的链接,两种模式的结果都值得留档,尤其是在单页应用较多的站点。
假设一份清单有500条URL,桌面端全部返回200,移动端有12条超时。这12条不一定是死链,可能只是移动端渲染等待不足或网络策略不同——这正是下一步要验证的。
两端结果不一致时,不要直接判定某一端“错了”。按下面顺序核对,能定位大部分差异:
robots.txt限制抓取不等于页面失效,也不等于索引移除,它只影响爬虫能否访问,判定死链要看HTTP响应本身。验证的产出应该是一张表:URL、两端状态、差异类型、归因、处理人。归因分三类——真实死链、工具环境差异、需人工复核。只有第一类才进入修复流程。
差异不是一次性问题。站点改版、CDN策略调整、移动端跳转规则变化都会重新引入差异。建议把两端检查绑定到固定节奏:每次发布前跑一遍,或每周固定跑一次,输出同一格式的对照报告。
维护时保留历史记录,便于判断某条URL是“新出现的差异”还是“长期存在”。如果某条URL长期只在移动端失败,应单独建规则跟踪,而不是每次重新排查。
另外要分清:站点地图不保证收录,HTTPS也不保证安全无漏洞或排名,这些和死链判定是不同层面的问题,不要混进同一份报告里下结论。
下一步:拿你手上最近一次的单端死链报告,补跑另一端的同一份URL清单,生成差异表,先处理“两端都失败”的条目,再逐条归因单端差异。