检查百度蜘蛛抓取在移动端与桌面端的差异,核心是分别验证两套URL、两套HTML和两套robots规则是否一致,而不是只看页面在浏览器里能否打开。时间和人手有限时,最先处理的是移动端与桌面端返回内容明显不同、或移动端被robots.txt单独拦截的页面,因为这类差异会直接影响百度蜘蛛对移动页的发现与抓取。
百度蜘蛛抓取时,移动端和桌面端可能对应不同URL,也可能共用同一URL做响应式输出。先列出待检查页面的桌面URL和移动URL,再确认两者之间的对应关系属于哪种情况:
www.example.com/page,移动为 m.example.com/page,两端各自有独立HTML。这一步决定后面比较什么。分离式要比较两个URL的抓取结果;响应式和混合式要比较同一URL在不同User-Agent下的返回差异。若连对应关系都没理清,后续比较容易把“不同页面”误判成“同一页面的两端差异”。
用能自定义User-Agent的抓取工具或命令行请求,分别以百度移动UA和桌面UA请求目标URL,记录以下项目。不要只依赖浏览器开发者工具的手机模拟,模拟模式通常只改视口,不一定改服务端返回内容。
noindex或nofollow。这类标签在响应式站点中若只对移动UA输出,桌面端检查时看不到。最关键的一步是第4项:在移动UA下检查响应头和HTML中的robots指令。很多“桌面能抓、移动不抓”的情况,根源是移动模板误带了noindex,或CDN按UA返回了不同的X-Robots-Tag。只查桌面端永远发现不了。
发现差异后,不要直接断言原因,先做一次对照请求:固定URL,只改User-Agent,其他请求头尽量保持一致,比较两次返回。若结果随UA变化,说明差异由UA识别或服务端分流引起;若结果不变,则差异可能来自URL本身、缓存或CDN节点。
常见现象与可能原因:
验证时以实际返回的HTTP响应和HTML为准,不以浏览器渲染结果为准。若使用缓存,清缓存后再请求一次,排除旧响应干扰。
人手有限时,不必每次全站重查。优先覆盖三类页面:近期改版过的模板页、流量或抓取量下降的栏目页、新上线的移动适配规则。每次改版后,对每个模板抽一个代表URL,用移动UA和桌面UA各请求一次,比对状态码、robots指令、canonical和正文长度。
把结果记成简单表格:URL、UA、状态码、canonical、robots指令、正文是否完整。连续几次记录后,哪类模板容易出差异会变得清楚,后续只需盯住这些模板。
下一步:选一个当前最关心的栏目页,用移动UA和桌面UA各请求一次,先看robots指令和canonical是否一致,再决定是否需要扩大到全站模板检查。