在移动优先索引的前提下,同一个页面在桌面端与移动端可能得到并不相同的抓取结果:有的站点桌面 URL 抓得很勤,移动 URL 几乎不进队列;有的站点则是移动端正常、桌面端长期停留在旧快照。这类差异通常不是蜘蛛“偏心”,而是两套 HTML、两套入口与两种渲染环境叠加后的结果。
一、差异从哪里来
先把可能的原因分清楚,再谈排查顺序。常见的来源有三类:
- 内容差异:两端 HTML 中可抓取的正文、内链数量不同,导致 URL 发现能力不同。
- 入口差异:桌面版导航完整,移动版把入口折叠进菜单或脚本里,深层页面只能从一端被发现。
- 响应差异:某一端命中缓存、被限速或被拦截,返回的 HTML 与另一端不一致。
只有先确认差异属于哪一类,后面的核对才有意义。
二、三种站点形态各自的核对重点
1. 响应式单套 URL
同一 URL 返回同一份 HTML,靠 CSS 适配。这类站点两端差异最小,需要核对的是:移动端是否把部分内容用脚本延迟加载,导致初始 HTML 中缺少链接与正文;以及图片、字体等资源是否在移动 UA 下返回 403 或空文件。
2. 同一 URL 动态返回不同 HTML
服务器根据 User-Agent 或视口判断返回不同模板。这种做法容易造成两端内容量与内链结构不一致,核对时建议把两端 HTML 分别保存,比较正文长度、链接数量与主要区块是否存在。
3. 独立 m 域名或独立路径
如 m 子域名或 /m/ 路径。此时要重点核对:移动版是否有完整的站内链接、是否与桌面版建立清晰的对应关系、以及移动版自身是否被 robots.txt 或服务端规则误拦。
三、逐项核对清单
- 抓取两端 HTML,比较正文可读文本长度与内链数量,差距过大说明其中一端内容不完整。
- 检查移动版首屏是否依赖脚本注入链接,若是,确认渲染后的链接能被正常发现。
- 核对移动版入口页:主导航、面包屑、分页“下一页”是否都存在。
- 确认两种 UA 下的状态码一致,避免一端返回 200、另一端返回 403 或 5xx。
- 检查缓存策略是否按 UA 区分,防止移动端拿到桌面端缓存或反之。
- 核对移动版是否被 robots.txt、防火墙或频控单独拦截。
四、用日志做交叉验证
日志是最直接的证据。按 User-Agent 分组统计,观察同一批 URL 在两端的抓取次数、返回状态与响应体大小。若某端响应体明显偏小,往往意味着返回的是简化模板或空壳页。再按时间看抓取分布,判断差异是长期存在还是某次改动后才出现。
判断标准可以简单一点:两端对同一批 URL 的抓取次数与返回内容规模,是否处在同一量级。
五、常见误区
- 只检查首页。两端差异往往在深层页才暴露。
- 把抓取差异直接归因于“权重”,忽略机器人规则与服务器返回。
- 只改桌面端。移动端入口缺失时,桌面端的优化对 URL 发现帮助有限。
六、把差异收敛到可控范围
优先让两端的内容与内链结构尽量一致:移动端保留可抓取的正文与主要入口,避免关键链接只在交互后才出现;两端使用同一套 URL 与状态码策略;对按 UA 分流的配置做定期抽查。差异收敛之后,再回头看抓取覆盖与 URL 发现的变化,判断会更清晰。