搜索抓取

蜘蛛抓的是移动版还是桌面版:两套页面并存时怎么处理

移动优先之后,蜘蛛主要用移动端 UA 抓取和渲染页面。如果站点同时维护桌面版与移动版,两边的正文、标题、内链和资源必须一致,被屏蔽的 CSS 与 JS 会直接造成渲染缺失。本文说清响应式、独立 m 站、按 UA 动态返回三种做法的差别,列出常见的挡资源写法,并给出一套可执行的自查流程。

搜索抓取

蜘蛛抓的是移动版还是桌面版:两套页面并存时怎么处理

移动优先之后,蜘蛛先看哪一版

现在主流搜索引擎基本按移动优先处理:抓取与渲染时优先使用移动端用户代理,也就是手机版页面。桌面版的抓取并没有完全消失,但它更多是补充和比对,页面的主要内容、链接和结构化数据以移动端呈现的版本为准。

这带来一个很直接的结果:如果你只在桌面版上维护了完整内容,而移动版是简化过的,那么蜘蛛看到的就是被简化过的那一版。

三种常见的页面组织方式

响应式:一套 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 缓存,把移动版页面返回给桌面抓取,或者反过来。

一套可以执行的自查流程

  1. 用移动端 UA 抓取几个代表性 URL,把返回的 HTML 保存下来。
  2. 与桌面 UA 抓到的 HTML 对比正文长度、标题、内链数量、结构化数据。
  3. 检查 CSS、JS、图片是否都能正常返回,有没有 403、429。
  4. 在日志里按 UA 分组,看移动 UA 的抓取量、状态码分布和抓取深度是否正常。
  5. 修正差异后,先提交少量 URL 观察日志,再逐步放开。
要点不是给蜘蛛准备一个特殊版本,而是让移动版和桌面版传达同样的信息。任何只在其中一版存在的内容,都可能被忽略。

最后提醒一句:抓取和渲染是两个阶段,先能取到、再能渲染出来,才轮到后续处理。与其在伪装和参数上花心思,不如把两版页面对齐,把 CSS 与 JS 放开,把内链留在移动端。