在移動優先索引的前提下,同一個頁面在桌面端與移動端可能得到並不相同的抓取结果:有的站点桌面 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 發現的變化,判断會更清晰。