同一個頁面,在手机上打開和电脑上打開,看到的可能不是同一份 HTML。如果這種差异是用两套 URL 實現的(比如桌面版和 m 站),收錄环节就容易出現口径不一致:桌面版進了索引,移動版長期没有;或者反過来,移動版被收錄,但正文被削得很短,在结果里表現很差。這類問题不是抓取失敗,而是两套地址在告诉搜尋引擎两件不同的事。
先確認站点用的是哪種移動适配方式
适配方式决定了要检查什么,先分清再排查,能省掉一大半無用功。
响應式:同一套 URL,問题最少
桌面和移動共用一個地址,HTML 相同,只是 CSS 断点不同。收錄上基本没有双版本困扰,需要留意的是移動端渲染後正文是否被折叠、隐藏或被脚本延迟加载,導致渲染结果里内容為空。
獨立 m 站:两套 URL,必须成對检查
桌面版和移動版各有自己的地址,此时最重要的是两個地址之間的關系有没有声明清楚。常见的做法是两套頁面各自 self-canonical,再用 alternate 互相指向,让引擎知道它們是同一内容的不同版本。如果移動版的 canonical 指向桌面版,實际效果相当于把移動版權重全部让给桌面版,移動版很难單獨進索引。想清楚你希望哪個版本被收錄,再决定指向關系,不要两套頁面各寫一套互相矛盾的声明。
動態服務:同一 URL,按 UA 返回不同 HTML
最容易出問题的是缓存层。如果 CDN 或反向代理只按 URL 做缓存,就可能把桌面版 HTML 返回给以移動 UA 抓取的蜘蛛,或者反過来。需要確認响應里带有正确的 Vary 头,並检查缓存策略是否按 User-Agent 区分。
几個常见的收錄卡点
- robots.txt 只放行了某一類 User-Agent,另一個版本的可抓取路径被挡住了。
- 移動版缺少 canonical,或者 canonical 指向的地址返回 301、404。
- 移動版正文被大幅裁剪,只剩标题和摘要,容易被当成内容不足的頁面。
- 移動版内鏈全部指向桌面版(或全部指向移動版),導致其中一個版本几乎没有站内入口。
- sitemap 只列了桌面版,移動版只能靠内鏈被發現,收錄速度明顯偏慢。
- 移動版頁面返回 200,但主要内容靠脚本渲染,渲染後仍是空壳。
自查顺序:從外到内一步步收窄
- 確認可達性。用移動 UA 請求移動版地址,看返回狀態碼和最终落点,確認没有意外跳到桌面版或错誤頁。
- 检查抓取许可。核對 robots.txt、meta robots 與响應头里的 X-Robots-Tag,两個版本都要看,別只看桌面版。
- 核對 canonical 與 alternate。逐對检查指向是否互相一致、是否指向可訪問的地址,避免出現 A 指向 B、B 指向 C 的断鏈。
- 比對正文與内鏈。移動版的核心内容應当與桌面版一致,内鏈也應当能走通,而不是把用戶和蜘蛛都赶回桌面版。
- 检查 sitemap 覆盖。確認希望被收錄的版本出現在 sitemap 中,格式與狀態碼正常。
- 看渲染结果。用 URL 检查類工具查看渲染後的 HTML,確認正文没有被脚本吃掉。
不要對同一個 URL 按不同 UA 返回内容差异极大、又各自声明不同 canonical 的頁面。信号互相打架时,判断會變得很不确定,收錄结果也就难以预测。
最後一点:移動适配方式一旦确定,尽量在整站保持一致。改版或迁移时按目錄分批推進,每批改完观察一段時間的收錄情况,比一次性全站切換更容易定位問题出在哪一环。