不少站点同时存在桌面版和移动版页面,而且两边内容并不完全一样。主流搜索引擎的蜘蛛现在主要以移动用户代理抓取,也就是说:蜘蛛看到的页面版本,可能和你用电脑浏览器打开时并不相同。抓取路径、内链、正文、结构化数据,都可能因为版本差异而变样。这篇文章讲清楚移动优先抓取下蜘蛛到底拿到了什么,以及怎么自查。
移动优先抓取的基本事实
简单说,抓取与索引的默认版本是移动版页面。移动版的内容、链接、图片、结构化数据,决定了蜘蛛能发现什么、如何理解页面。桌面版仍然可能被抓取,但优先级通常较低;如果移动版内容明显少于桌面版,蜘蛛看到的就是“缩水”的那一份。
Google 的移动优先索引已经全面铺开,Bing 也在往类似方向走。所以别再假设蜘蛛一定看的是桌面版。
三种常见实现方式,抓取路径各不相同
响应式设计
同一套 HTML,靠 CSS 适配屏幕。蜘蛛抓到的版本和桌面版基本一致,内链、正文、结构化数据都不缺。这是最省心的做法,出问题通常只在资源被 CSS 或脚本挡住的时候。
动态服务(按 UA 返回不同 HTML)
服务端判断 User-Agent,移动 UA 返回移动版 HTML,桌面 UA 返回桌面版。要点是两边主体内容必须一致:正文、标题、meta、结构化数据、内链都要对齐。只改布局可以,只给移动版“精简”内容不行。
独立移动域名(m. 或单独子域)
移动页面在另一个地址上。这时需要交代清楚两个版本的关系:互相声明对应的桌面版与移动版,各自 canonical 指向自己,Sitemap 里也把两套地址列清楚。移动版页面本身要有完整内容,不能只留摘要加一个“查看完整版”的入口。
最容易踩的几个坑
移动版砍掉正文和内链
常见做法是把长文拆成多屏、把侧边导航收进汉堡菜单、把页脚链接删掉。视觉上更干净,但蜘蛛拿到的内链数量可能少了一大截——抓取路径变窄,深处 URL 更容易被漏掉。
结构化数据只挂在桌面版
如果移动版 HTML 里没有这些标记,蜘蛛就认为页面没有它们。评分、面包屑、FAQ 之类的信息会随之丢失。
动态服务判断出错
UA 判断写错、CDN 缓存把移动版 HTML 返回给桌面 UA(或反过来),都会造成版本混乱。表现是同一个 URL 抓取到的内容忽而完整忽而残缺,这类问题在缓存策略改动后最容易出现。
移动版内容依赖脚本渲染
如果移动版内容全靠前端渲染,而脚本或接口又被 robots.txt 挡住,蜘蛛可能只看到一个空壳。
自查清单
- 用移动 UA 抓取一次页面,和桌面 UA 的结果逐项对比:标题、正文、内链数量、结构化数据。
- 检查移动版是否包含完整的导航和页脚链接,不能只靠汉堡菜单里的脚本链接。
- 独立移动域名时,确认两边互指关系、canonical 和 Sitemap 标注都保持一致。
- 确认 CSS、JS 与接口没有被 robots.txt 或 WAF 挡住。
- 在服务器日志里核对移动 UA 抓到的响应码,看有没有异常分组。
给小站的实际建议
如果维护两套 HTML 的成本已经很高,优先考虑响应式,把精力放在内容和内链结构上。确实需要动态服务时,让移动版与桌面版共享同一份内容源,只替换模板层,减少两边漂移。
蜘蛛不在乎你的页面在手机上好不好看,它在乎的是:这一版里有没有完整的正文、链接和标记。移动版做成“阉割版”,损失的是抓取和发现能力,而不只是样式。
最后提醒一句:移动优先抓取的检查不是一次性的。模板改版、CDN 缓存策略调整、前端框架升级之后,都值得重新跑一遍上面的对比,确认蜘蛛拿到的仍然是完整的那一份。