移動優先之後,蜘蛛先看哪一版
現在主流搜尋引擎基本按移動優先處理:抓取與渲染时優先使用移動端用戶代理,也就是手机版頁面。桌面版的抓取並没有完全消失,但它更多是补充和比對,頁面的主要内容、連結和结构化資料以移動端呈現的版本為准。
這带来一個很直接的结果:如果你只在桌面版上维護了完整内容,而移動版是简化過的,那么蜘蛛看到的就是被简化過的那一版。
三種常见的頁面组织方式
响應式:一套 HTML,多個断点
同一個 URL、同一份 HTML,靠 CSS 适配屏幕宽度。這是最省心的做法,不存在两版内容不一致的問题,也不需要在 robots.txt、canonical 上做額外處理。只要別用 JS 在移動端隐藏大段正文,通常不會出問题。
獨立移動站:m 子域或獨立域名
桌面與移動各有一套 URL。這时要保證两邊内容等價,並用 alternate 與 canonical 互相指向,對應關系要一一清晰。常见問题是移動站只放摘要、去掉分頁、砍掉内鏈,结果蜘蛛在移動站上走不到列表深處。
按 UA 動態返回不同 HTML
同一個 URL 根據 UA 返回不同内容。這種做法最容易出错:一旦移動 UA 拿到的是缺少正文或連結的版本,蜘蛛就按這個版本理解頁面。如果必须這样做,務必让两版的正文、标题、重要内鏈保持一致。
两版之間必须對齐的東西
- 正文與标题:移動版不能只留摘要,也不能把正文做成图片。
- 结构化資料:两邊都應有,且描述同一個實体。
- 内鏈:移動端導航可以简化,但通向栏目和重要詳情頁的連結不能消失。
- 图片與视频:用能被抓取的 img 或视频标簽,而不是纯 CSS 背景图。
- canonical 與 alternate:指向關系要稳定,不要出現 A 指向 B、B 又指向 C。
移動端最容易被挡掉的资源
渲染要靠 CSS 和 JavaScript,如果這些资源對移動 UA 不可訪問,蜘蛛渲染出的頁面可能是一堆没有样式的文本,甚至内容為空。
- robots.txt 里禁止了样式或脚本目錄,只對桌面 UA 放行。
- 服務器或防護策略對移動 UA 做了限速、驗證碼,或直接返回 403。
- 懒加载用 JS 占位,移動端没有滚動就不會替換成真實图片地址。
- CDN 按 UA 缓存,把移動版頁面返回给桌面抓取,或者反過来。
一套可以执行的自查流程
- 用移動端 UA 抓取几個代表性 URL,把返回的 HTML 儲存下来。
- 與桌面 UA 抓到的 HTML 對比正文長度、标题、内鏈數量、结构化資料。
- 检查 CSS、JS、图片是否都能正常返回,有没有 403、429。
- 在日誌里按 UA 分组,看移動 UA 的抓取量、狀態碼分布和抓取深度是否正常。
- 修正差异後,先提交少量 URL 观察日誌,再逐步放開。
要点不是给蜘蛛准备一個特殊版本,而是让移動版和桌面版传達同样的信息。任何只在其中一版存在的内容,都可能被忽略。
最後提醒一句:抓取和渲染是两個阶段,先能取到、再能渲染出来,才轮到後續處理。與其在伪装和參數上花心思,不如把两版頁面對齐,把 CSS 與 JS 放開,把内鏈留在移動端。