移动端流量占了大头,很多站点会准备两套页面:桌面版和移动版。对用户来说,切换通常无感;但对搜索蜘蛛来说,两套 URL 意味着两套抓取路径。如果处理不好,蜘蛛可能反复抓取重复内容,或者只抓到一个版本。
常见的三种移动适配方式
- 响应式设计:同一套 URL,用 CSS 媒体查询适配屏幕。蜘蛛只需要抓一个地址,权重集中,维护成本低。这是目前比较省心的做法。
- 独立移动域名:比如 m.example.com,移动端和桌面端各有 URL。需要做好对应关系,告诉蜘蛛两个版本的关系。
- 动态服务:同一个 URL,根据 User-Agent 返回不同 HTML。服务器要做内容协商,风险是蜘蛛可能只看到其中一套,缓存和 CDN 也可能把版本搞混。
两套 URL 时,蜘蛛会怎么发现
蜘蛛通常从桌面版开始抓,也有的蜘蛛会带移动 User-Agent 访问。如果移动版没有正确的入口,或者只在移动端展示某些链接,桌面版蜘蛛就可能发现不了这些 URL。
常见的问题包括:
- 移动版页面没有 canonical,或者 canonical 指向自己,导致两个版本都被当成独立页面。
- 桌面版用 301 跳到移动版,移动版又跳回桌面版,形成循环。
- 移动版屏蔽了搜索蜘蛛,但桌面版没有对应内容,造成内容缺失。
- 移动版 sitemap 和桌面版 sitemap 混在一起,URL 重复提交。
URL 对应关系要明确
如果使用独立移动域名,建议在移动版页面加上指向桌面版的 canonical,或者在桌面版加上指向移动版的 alternate 标注。两种方式选一种,保持全站一致。不要一边用 canonical 一边用 JS 跳转,规则太乱容易让蜘蛛判断困难。
核心原则:一个内容尽量对应一个主 URL。如果必须有两个地址,就明确告诉蜘蛛哪个是主版本。
动态服务与缓存注意事项
动态服务依赖 User-Agent 判断。如果 CDN 或反向代理缓存了移动版页面,桌面用户可能拿到移动版 HTML,蜘蛛也可能抓到错误版本。检查响应头里的 Vary 是否包含 User-Agent,缓存策略是否区分了设备。服务器日志里可以观察同一个 URL 是否出现多种 User-Agent 抓取,以及返回内容是否一致。
检查与维护清单
- 确认移动版和桌面版的 URL 对应关系,列一张映射表。
- 检查 canonical、alternate 标注是否自洽,全站是否统一。
- 用移动 User-Agent 模拟抓取,看返回的 HTML 和状态码是否正常。
- 检查 robots.txt 是否误屏蔽移动端资源,比如 CSS、JS、图片。
- 观察服务器日志,看蜘蛛是否在两个版本之间反复抓取或陷入重定向。
- 如果改过适配方式,及时更新 sitemap 和内部链接,避免旧地址残留。
小结
移动适配不是单纯的前端问题,它也影响 URL 发现和抓取效率。响应式最省心;用独立域名或动态服务,就要把对应关系和 canonical 规则写清楚。定期用日志和模拟抓取检查,能减少重复抓取和内容错乱。