移動優先索引已经是常態,搜尋引擎主要用移動端 UA 抓取頁面。但很多站点的移動端模板是“精简版”:導航折叠、侧栏去掉、相關推荐减少、分頁換成“加载更多”。如果差异只在样式层,DOM 里仍有連結,影响有限;一旦模板层直接不輸出這些連結,移動端能發現的入口就會比桌面端少一截。
两端入口為什么會分叉
常见的情况是,桌面端模板和移動端模板由不同的人在不同時間维護。桌面端改版时加上的栏目入口、相關推荐、面包屑,移動端模板往往没有同步。另一種情况是為了移動端首屏速度,干脆把列表頁底部的詳情入口、翻頁連結删掉,改成滚動触發异步加载。這類改動的初衷可以理解,但抓取端看到的 DOM 里没有連結,就等于這條路径不存在。
常见的差异点
- 汉堡菜單由 JS 点击後才寫入連結,未展開时 DOM 中没有 a href。
- 移動端模板省略侧栏、面包屑或相關推荐模块。
- 分頁被“加载更多”按钮替代,按钮触發請求而不是指向下一頁地址。
- 轮播、Tab 只渲染第一屏内容,其余靠点击後异步加载。
- 同一個栏目在两端指向不同 URL,例如带 m. 子域或多出移動端參數。
- 移動端隐藏模块使用動態移除节点而非 CSS 隐藏,連結彻底不在 DOM 中。
核對顺序
- 取同一個 URL,分別用桌面 UA 和移動 UA 請求,儲存未执行 JS 的原始 HTML。
- 對比两端 HTML 中的 a href 集合,列出只在桌面端出現的連結。
- 對差异明顯的頁面,再取一次执行 JS 後的渲染 DOM,確認連結是“模板没輸出”還是“渲染没完成”。
- 按 UA 分组查看服務端抓取日誌,观察移動 UA 的抓取路径是否集中在少數栏目,入口覆盖是否明顯收窄。
- 用 Sitemap 與内鏈两個入口交叉核對,確認缺失的 URL 是否還能從其他路径進入。
- 抽查這些 URL 的返回狀態與正文内容,排除“進得来但頁面是空壳”的情况。
可以做出的調整
- 關键入口在两端的模板中保持一致,不要依赖 JS 展開後才寫入連結。
- 移動端導航可以折叠展示,但 HTML 里保留完整的連結列表,让抓取端能直接讀到。
- 分頁優先使用真實連結;“加载更多”也保留對應頁碼的可訪問地址。
- 列表頁首屏之外的内容,考虑在服務端先輸出一批可抓取連結。
- 用 Sitemap 补上移動端缺失的入口,作為补充通道,而不是替代内鏈结构。
- 移動端如果引入大量阻塞脚本,也會拖延抓取端拿到完整 DOM 的時間,需要一並检查。
观察與驗證
調整之後,建议按周對比两端 HTML 中的連結數量、移動 UA 抓取命中的栏目數,以及 Sitemap 中被實际抓取的比例。几項指标一起看,比單看某一項更能判断入口是否补齐。服務器稳定性同样值得留意:如果移動端頁面响應偏慢,抓取端可能提前結束渲染,鏈路本身没問题却依然拿不到連結。
两端的入口差异通常不是一次性的错誤,而是模板反复演進留下的副产品。定期做一次對比,比事後补救更省事。