搜尋引擎以移動端為主要抓取视角,這件事已经被讲了很多年,但真正落到自查上,不少团队仍然只看一句“手机打開是否正常”。而蜘蛛看到的移動版本,和你用手机看到的,未必是同一套東西。
移動優先抓取,抓的到底是什么
简單说,当蜘蛛訪問一個 URL 时,會優先采用移動端 UA 获取頁面,並以這份内容作為索引的主要依據。桌面版本仍會被參考,但主版本是移動版。這意味着桌面版寫得再完整,如果移動版少了一半内容,進入索引的可能就是少掉的那部分。
三類容易被忽略的差异
一、内容差异:隐藏不等于不存在
移動端為了排版,很多站点會把侧栏、相關推荐、甚至部分正文折叠或收起。折叠本身不是問题,但如果被收起的内容是通過 JS 動態刪除的,或者根本没有輸出到 HTML 里,蜘蛛在移動视角下就拿不到。
常见的坑還有:桌面顯示完整參數表,移動端只留一個标题;桌面正文分段展示,移動端改成图片形式。這類差异一旦涉及核心内容,建议以移動端的輸出為准做统一,用 CSS 控制展示形態,而不是在服務端按 UA 返回两套完全不同的正文。
二、獨立移動域與跳轉
一些老站点仍然保留 m. 開头的移動域。這種结构不是不能维護,但有几件事必须處理清楚:
- 移動域與主域的 URL 對應關系要明确,尽量一對一,避免多個桌面 URL 指向同一個移動 URL
- 移動域上的 canonical 指向桌面版,桌面版按需配置 alternate,方向不要寫反
- 移動域不要設定成几秒後自動跳回桌面版,尤其是用 JS 判断 UA 触發的跳轉
如果已经改用响應式方案,就別留下残留的移動域跳轉規則,否則蜘蛛可能在两套域名之間来回折返。
三、缓存與 Vary 响應头
如果服務器按 UA 返回不同的 HTML,却没有設定 Vary: User-Agent,CDN 很可能把為移動端准备的頁面缓存下来,再發给桌面用戶,反之亦然。结果就是蜘蛛這次拿到移動版、下次拿到桌面版,同一個 URL 出現两種内容。要么不做 UA 分流,要么把缓存策略配正确。
可执行的移動端自查清單
- 用移動 UA 抓取一次目标頁,確認返回的 HTML 中核心正文、标题、主要連結都在
- 對比移動版與桌面版的 H1、正文段落、内鏈數量,差异是否在可解释范围内
- 检查 viewport 設定是否正常,有没有阻止缩放導致内容被截断
- 检查移動端彈窗、浮层是否覆盖首屏内容,大范围遮挡可能被判定為内容不可见
- 確認没有占满屏幕的引導下载 App 横條長期挂在頁面顶部
- 確認图片使用响應式尺寸,而不是把桌面大图硬缩到手机上
- 检查 Vary 响應头與 CDN 缓存規則,有 UA 分流的站点尤其要核對
- 測試分頁、篩選等交互是否纯依赖手势,蜘蛛能否以普通連結方式触達
几個常见誤区
- “桌面版内容齐全就可以了”——主版本是移動版
- “display:none 的内容也算存在”——要看是 CSS 隐藏,還是压根没輸出
- “移動域跳轉是小問题”——多余的跳轉鏈會拉低抓取效率
自查的目的不是让移動版和桌面版一模一样,而是保證核心内容、可抓連結和清晰结构在任何视角下都成立。
小结
移動端适配不是把頁面缩到手机上能看就行。把移動版当作主版本,检查内容完整度、連結可達性和缓存行為,才是這一轮自查真正要回答的問题。發現差异时,優先统一輸出,而不是在舊结构上打补丁,長期维護成本會低很多。