检查百度新闻收录在移动端与桌面端的差异,核心不是比较两个设备上“看起来是否一样”,而是确认同一篇新闻 URL 在两个端上返回的正文、标题、时间、canonical、结构化数据是否一致,以及百度抓取时拿到的是哪一版。常见误解是:手机打开正常、电脑打开也正常,就认为收录没问题;实际上两端可能返回不同模板、不同正文甚至不同状态码,导致百度只认其中一版,另一版长期不收录。
最常见的原因是站点对移动端和桌面端做了不同的响应式或独立适配。独立移动站(如 m 站)如果与桌面站正文不一致,或移动端把正文放在异步加载里,百度抓取移动版时可能拿不到完整内容。另一个原因是缓存与 CDN:同一 URL 在不同 UA 下命中不同缓存节点,返回的 HTML 不同。还有一种是重定向链不一致,移动端多跳一次或跳到另一个 URL,抓取预算被消耗,收录表现自然分化。
不要分别在手机和电脑上“肉眼看”,而要用可复现的方式抓取。可以执行以下步骤:
curl -A "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X)" -L "https://example.com/news/1" -o mobile.html,再换桌面 UA 存为 desktop.html(把域名和路径替换成实际页面)。<title>、<meta name="description">、<link rel="canonical">、正文首段和发布时间。判断结果:如果两端正文、标题、canonical 完全一致,差异通常只是展示层,不影响收录;如果移动端正文缺失、canonical 指向不同地址或状态码为 3xx/4xx,就要优先修复移动端返回内容。
百度对移动端和桌面端有各自的抓取与展示逻辑。可以在百度搜索资源平台查看抓取诊断与移动适配相关报告,确认百度蜘蛛抓取该 URL 时使用的 UA 和返回内容。注意:抓取诊断反映的是某一次抓取结果,不等于长期状态;如果站点近期改版,应重新发起诊断再判断。robots.txt 只控制能否抓取,不等于能可靠地把已收录页面移除,所以不要用改 robots 的方式处理收录差异。
为了减少返工,把下面这份清单作为交付附件,而不是口头说明:
<title>、canonical、正文首段是否一致的对比结论。适用条件:这套方法适合自建新闻站、媒体站和有独立移动端的站点。如果站点是纯响应式、两端返回同一份 HTML,重点就放在检查异步渲染是否影响百度抓取,而不是比较两套模板。
先修复移动端返回的正文与 canonical,使其与桌面端指向同一规范 URL,再重新提交该 URL 并观察抓取诊断结果。如果两端本就该是不同的规范页面,则要明确移动适配关系,而不是强行合并。HTTPS 只解决传输加密,不保证内容被收录,也不代表页面没有其他抓取问题,因此修复后仍需回到抓取与内容一致性上复核。