搜尋抓取

移動端與桌面端抓取差异:响應式與獨立 m 域名的核對要点

移動優先索引下,同一頁面在桌面端與移動端可能得到不同的抓取结果。本文從内容差异、入口差异與响應差异三類原因入手,梳理响應式站点、動態返回與獨立 m 域名三種形態的核對重点,並给出日誌交叉驗證與逐步收敛差异的實用做法。

搜尋抓取

移動端與桌面端抓取差异:响應式與獨立 m 域名的核對要点

在移動優先索引的前提下,同一個頁面在桌面端與移動端可能得到並不相同的抓取结果:有的站点桌面 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 或服務端規則誤拦。

三、逐項核對清單

  1. 抓取两端 HTML,比較正文可讀文本長度與内鏈數量,差距過大說明其中一端内容不完整。
  2. 检查移動版首屏是否依赖脚本注入連結,若是,確認渲染後的連結能被正常發現。
  3. 核對移動版入口頁:主導航、面包屑、分頁“下一頁”是否都存在。
  4. 確認两種 UA 下的狀態碼一致,避免一端返回 200、另一端返回 403 或 5xx。
  5. 检查缓存策略是否按 UA 区分,防止移動端拿到桌面端缓存或反之。
  6. 核對移動版是否被 robots.txt、防火墙或频控單獨拦截。

四、用日誌做交叉驗證

日誌是最直接的證據。按 User-Agent 分组統計,观察同一批 URL 在两端的抓取次數、返回狀態與响應体大小。若某端响應体明顯偏小,往往意味着返回的是简化模板或空壳頁。再按時間看抓取分布,判断差异是長期存在還是某次改動後才出現。

判断标准可以简單一点:两端對同一批 URL 的抓取次數與返回内容規模,是否處在同一量級。

五、常见誤区

  • 只检查首頁。两端差异往往在深层頁才暴露。
  • 把抓取差异直接归因于“權重”,忽略机器人規則與服務器返回。
  • 只改桌面端。移動端入口缺失时,桌面端的優化對 URL 發現帮助有限。

六、把差异收敛到可控范围

優先让两端的内容與内鏈结构尽量一致:移動端保留可抓取的正文與主要入口,避免關键連結只在交互後才出現;两端使用同一套 URL 與狀態碼策略;對按 UA 分流的配置做定期抽查。差异收敛之後,再回头看抓取覆盖與 URL 發現的變化,判断會更清晰。