搜尋抓取

移動優先抓取:手机版頁面需要交代清楚哪些内容

搜尋抓取普遍以移動版頁面為主要參考,同一個 URL 在移動端 UA 下返回什么,直接决定蜘蛛能讀到多少内容。本文梳理移動版與桌面版内容對齐、渲染资源放行、折叠内容位置、首屏加载顺序等要点,並给出一份上线前的移動端抓取自查清單。

搜尋抓取

移動優先抓取:手机版頁面需要交代清楚哪些内容

為什么移動版成了抓取的“第一現场”

在移動優先的抓取與索引策略下,蜘蛛請求你的 URL 时,多數情况下是按移動端来理解和渲染頁面的。這意味着,桌面版做得再完整,如果移動版少了正文、少了參數、少了連結,蜘蛛讀到的就是那份残缺版本。很多站点“内容明明有,就是抓不到”的問题,源头都在這里。

所以移動端不该被当成桌面版的缩小副本,而應视為主要交付形態。

別让桌面版和移動版對不上

同一個 URL 在不同 UA 下返回不一致的 HTML,是抓取異常的常见起点。做法大致有三類,代價不同:

  • 响應式:一套 HTML,靠 CSS 控制布局,内容天然一致,维護成本最低,也最不容易出错。
  • 動態服務:同一 URL 按 UA 返回不同 HTML。這種模式下,正文、标题、结构化資料三處必须對齐,改模板时要两邊同时改。
  • 獨立移動站:現在已較少见。若仍在使用,m 站與主站的對應關系要通過跳轉或标记交代清楚,否則两套 URL 容易被当成彼此獨立、内容重复的頁面。

渲染资源不能拦在门外

移動端頁面往往依赖 CSS 和 JS 才能把内容展開。如果 robots.txt 屏蔽了 /js//css/ 目錄,或者這些资源需要登入、带特定請求头才放行,蜘蛛拿到的很可能是一份没有正文的空壳。

抓取是渲染的前提。渲染资源被拦,等于把内容鎖在门後。

值得顺手检查的几處:核心样式與首屏脚本是否對蜘蛛放行;WAF 或安全策略有没有把非浏览器 UA 直接拦截;频控規則會不會把蜘蛛的並發請求誤判成攻击。

移動端隐藏的内容去了哪里

折叠面板、Tab 切換、“展開更多”,這些交互在移動端非常普遍。判断标准不是“用戶看不看得见”,而是“内容在不在渲染後的 DOM 里”。

  • 用 CSS 隐藏、但内容仍在 HTML 中:一般能被讀取到。
  • 必须点击或滚動到特定位置,才由 JS 注入:風險較大,蜘蛛不一定触發這一步。
  • 桌面端有、移動端直接不輸出:以移動版為主要參考时,這部分内容可能被忽略。

首屏内容與加载顺序

渲染有時間预算,资源越重、阻塞越多,蜘蛛最终能拿到的内容越少。几個可以落地的調整:

  1. 标题、正文主体、關键導航連結尽量放進初始 HTML,或尽早注入,不要全压到最後一段脚本。
  2. 减少首屏阻塞的同步脚本,第三方統計、客服、营销插件能异步就异步。
  3. 图片使用合适尺寸並做懒加载,但不要把首屏主要内容也丢進懒加载。
  4. 控制 DOM 嵌套深度,過深的层級會增加解析成本。

移動可用性同样在传递信号

viewport 設定、字号、可点击区域間距、整屏彈窗遮挡,這些看起来是体驗問题,但也侧面反映頁面是否認真做了移動端。viewport meta 寫错,頁面會按桌面宽度渲染,抓取时的布局判断也會跟着偏。频繁彈出的全屏广告或登入浮层,還可能把正文压到视口之外。

上线前的自查清單

  • 用移動端 UA 請求同一 URL,返回的正文與桌面版是否一致。
  • robots.txt 是否放行了 CSS、JS、图片等渲染所需资源。
  • 折叠、Tab 中的内容是否存在于渲染後的 DOM 里。
  • viewport 是否正确,是否有整屏遮挡且不易關閉的彈窗。
  • 移動端頁面的响應時間與稳定性如何,有無 5xx 或超时。
  • 移動版是否有需要交代的 canonical 或跳轉關系。

移動優先抓取不是一次性改造,而是一種持續對照:每次模板改版、每次第三方脚本上新,都值得回头看一眼——移動端的蜘蛛到底讀到了什么。