死链扫描工具:移动端与桌面端怎样检查差异

📍 WDQWDWQD987AAAAA:216.73.216.150
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /5e72ad639edc.html
📄

死链扫描工具:移动端与桌面端怎样检查差异

用死链扫描工具分别扫描移动端和桌面端时,差异通常来自三处:抓取时使用的 User-Agent、页面实际返回的 HTML 内容、以及重定向与拦截规则。要检查差异,最直接的做法是用同一工具、同一份 URL 清单,切换移动端与桌面端两种抓取模式各跑一次,然后对比两份结果中状态码、最终 URL 和失效链接数量是否一致。

先确认工具是否真的切换了抓取身份

很多工具的“移动端”只是一个界面预览,并不改变请求头。判断方法很简单:让工具抓取一个能回显 User-Agent 的测试页面,看返回内容是否随模式变化。如果两次结果完全相同,说明它只是渲染尺寸不同,扫描结果不能当作移动端数据。

真正区分移动端与桌面端抓取,需要工具在请求时发送不同的 User-Agent,例如桌面端常用 Mozilla/5.0 (Windows NT 10.0; Win64; x64),移动端常用含 Android 或 iPhone 的标识。具体字符串以你使用的工具配置为准,这里只说明判断依据:结果不同,才说明抓取身份确实变了。

对比两份扫描结果时看哪些字段

把移动端和桌面端两次扫描导出为 CSV 或表格,按 URL 对齐后逐项比较。重点不是总数量,而是同一 URL 在两端的状态是否一致。

如果两端状态码和最终 URL 完全一致,只是失效链接数量不同,问题多半出在页面渲染:移动端 HTML 里少了某些链接,或 JavaScript 在移动端未执行完整。

判断差异属于哪一类问题

差异可以归为三类,处理方式不同:

  1. 服务端按 UA 返回不同内容:同一 URL 两端状态码不同。需要检查服务器配置、CDN 规则或 WAF 是否对移动端 UA 做了拦截或改写。
  2. 前端按设备渲染不同 DOM:状态码相同,但移动端页面里的链接集合不同。需要检查响应式代码、条件加载逻辑和 JavaScript 执行情况。
  3. 扫描工具自身限制:工具未执行 JavaScript、未携带移动端 UA,或超时设置过短导致部分链接未抓取。这类差异不是站点问题,换工具或调参数即可验证。

区分第二类和第三类,可以手动用移动端 UA 请求同一页面,看返回的 HTML 中是否包含那条链接。包含而工具没扫到,是工具问题;不包含,是页面问题。

多人协作时怎样交付和复查

协作场景下,返工往往来自“谁扫的、用什么模式扫的”没写清楚。交付扫描结果时,至少记录以下信息:

复查时,先确认两份文件来自同一份 URL 清单,再抽查 5 到 10 条差异条目,手动请求验证。若手动结果与工具一致,差异成立;若不一致,先排查工具配置再下结论。这样可以把“可能原因”收敛为“已经定位的原因”,减少来回沟通。

下一步:选一条两端结果不一致的 URL,用移动端 UA 手动请求一次,记录状态码与最终地址,再决定是改服务端规则还是改前端渲染。

图1 图2

nginx