搜尋引擎現在以移動端用戶代理為主来抓取和建立索引,桌面版頁面在很多场景下只是辅助。這意味着同一套 URL 之下,蜘蛛看到的 HTML 究竟是哪一份,會直接影响它對内容完整度和站内連結的判断。
先弄清楚蜘蛛拿到的是哪一版
如果站点用的是响應式设計,桌面和手机共用同一份 HTML,靠 CSS 和视口調整顯示,那么蜘蛛拿到的就是同一份内容,差异只存在于渲染结果里。如果用的是獨立移動站,比如 m 子域或者另一套模板,情况就复杂:蜘蛛可能按移動規則抓移動站,也可能把两邊当成不同来源的内容,需要額外做對應關系。
两套 HTML 之間常见的差异
- 移動版正文被截断,只留摘要,全文藏在“展開阅讀”之後
- 移動版導航折叠進汉堡菜單,連結不寫進 HTML,靠脚本展開
- 移動端分頁改成“加载更多”,第二頁的連結根本不在源碼里
- 桌面版有的大段内鏈,比如侧栏推荐、相關阅讀,移動版直接删掉
- 移動版為了速度去掉了结构化資料、图片 alt 或者部分正文图片
這些差异里,對抓取影响最大的是連結不再出現在 HTML 中。蜘蛛走不到,後面的内容做得再好也没有入口。
移動端容易踩的几個点
- 用 display 隐藏的連結:虽然源碼里有,但渲染後可能不被当成可见連結,稳妥做法還是輸出可点击的 a 标簽
- 用脚本拼接的導航連結,要確認渲染後确實可点击、可跟随
- 移動站與桌面站 URL 不一致,又没有做對應的版本标注,容易被当成两套内容各自處理
- m 站的 robots.txt 或訪問控制寫得比主站更嚴,把一部分目錄挡在了外面
一套可执行的自查顺序
- 分別用手机 UA 和桌面 UA 抓取首頁與几個關键頁面,把返回的 HTML 做對比
- 數一數源碼里的連結數量和渲染後的連結數量,差值往往就是問题所在
- 比較正文長度,確認移動版有没有被折叠或截断
- 检查 sitemap 中的 URL 是否與移動端實际返回的版本一致
- 翻服務器日誌,看蜘蛛用的 UA 和它訪問的路径,判断它主要抓的是哪一版
一些稳妥的做法
能响應式就响應式,一套 HTML 解决問题,不必額外维護两套模板。如果确實要拆開,两邊正文尽量保持一致,不要删减,内鏈该保留的都保留,並按主流搜尋引擎支持的移動版标注方式做好對應關系。定期用两套 UA 抓取對比,把差异当成缺陷来修,而不是当成可以省下来的優化空間。
蜘蛛看到的那一版,才是你的站点對它而言真實的样子。