检查移动端与桌面端死链差异,核心是让两端的抓取环境尽量一致:同一批URL、同一套重定向规则、同一份robots限制,然后分别记录状态码与跳转链。若结果不同,先查User-Agent识别、响应式模板和CDN缓存,再判断是真实差异还是工具误报。
假设某站点用响应式设计,桌面端访问 /old-page 返回301到新页,移动端却返回404。排查时不要先改链接,而应先用同一工具分别以桌面UA和移动UA请求该URL,记录状态码、Location头和响应体大小。若移动UA返回404,常见原因是服务端按UA做了分流,或移动模板里写死了旧路径。此时要检查Nginx/Apache的UA判断规则、CDN的移动端缓存策略,以及页面内链是否在移动模板中单独生成。
curl -A分别模拟桌面和移动UA,对比响应头,重点看301、302、404、410。常见错误是把工具默认UA的结果当成全部真相。桌面爬虫和移动爬虫的UA不同,服务器可能返回不同内容。另一个错误是只看首页,忽略内链和分页。判断时以“同一URL、同一时间、不同UA”的对照为准:若状态码不同,属于服务端或模板差异;若状态码相同但最终URL不同,属于跳转链差异;若仅缓存层不同,清除缓存后应一致。
如果两端差异只出现在少数UA分流页面,优先统一重定向规则,避免为移动端单独维护一套死链映射。如果差异来自响应式模板漏改,应在模板层修复内链,而不是批量提交死链。若差异来自CDN缓存,调整缓存键或刷新缓存即可。HTTPS不保证安全无漏洞或排名,死链处理仍以状态码和可访问性为准。
下一步:拿一份真实URL列表,分别用桌面和移动UA各请求一次,把状态码不同的URL单独列出,再按“服务端规则、模板内链、缓存”三类逐项定位。