搜索抓取

蜘蛛抓的是手机版还是桌面版:移动优先下的抓取路径

搜索蜘蛛现在大多以移动端视角抓取页面,同一个 URL 在手机版和桌面版内容不一致时,被抓到的往往是手机版。本文梳理响应式、动态服务、独立 m 站三种方案的抓取差异,以及 UA 判断、内容折叠、资源屏蔽容易踩的坑。

搜索抓取

蜘蛛抓的是手机版还是桌面版:移动优先下的抓取路径

很多站点运营者检查页面时习惯用桌面浏览器,但搜索蜘蛛现在更常以移动端的身份来抓取。同一个 URL,你在电脑上看到的内容和蜘蛛拿到的内容可能并不完全一致。理解这一点,比反复提交 Sitemap 更能解释“为什么这个页面迟迟没被正常抓取”。

移动优先意味着什么

移动优先索引的基本逻辑是:搜索引擎主要用移动版页面的内容来理解和索引这个 URL。蜘蛛抓取时会带上移动端的 User-Agent,按移动端的视口来渲染页面。如果你只在桌面版放了完整内容,而移动版被精简过,蜘蛛看到的就是精简后的版本。

这并不代表桌面版不重要,而是说同一个 URL 在两套模板下呈现的内容差距,会直接影响蜘蛛对页面的判断。抓取路径本身没变,变的是路径尽头那个页面长什么样。

三种移动方案的抓取差异

响应式设计

响应式是最省事的一种:URL 相同、HTML 相同,只是 CSS 按屏幕宽度调整布局。蜘蛛抓到的 HTML 和用户看到的 DOM 基本一致,不存在两套内容对不上的问题。需要留意的是,别把重要内容在窄屏下用 CSS 隐藏起来。虽然多数引擎会渲染并考虑隐藏内容,但过度隐藏容易让这部分内容的权重打折。

动态服务

同一个 URL,服务器根据 User-Agent 返回不同的 HTML。这种方案下,蜘蛛请求时拿到的必须是完整内容版本。如果服务器把移动端 UA 误判成普通手机用户,返回一个阉割版页面,抓取就会失真。

另一个常见问题:有的站点对移动端 UA 做跳转,把 www 地址 302 到 m 地址。这时蜘蛛的抓取路径会多一跳,最终落到 m 站。要确保 m 站可以被正常抓取,而不是被 robots.txt 或登录墙挡住。

独立 m 站

m 站是独立域名或子域,抓取路径自然分成两条。此时要用标注告诉搜索引擎两个 URL 的对应关系。Google 用 rel="alternate" media="only screen and (max-width: 640px)" 配合 rel="canonical",百度则有自己的移动适配提交方式。标注缺失时,蜘蛛可能把桌面版和移动版当成两个页面分别处理,造成内容重复或权重分散。

内容折叠与资源屏蔽

移动端页面常见的两个坑:

  • 折叠菜单:导航和栏目链接被收进汉堡菜单,如果菜单内容靠 JS 点击后才注入 DOM,第一次抓取时可能看不到这些链接,抓取路径就断在这里。
  • 资源屏蔽:为了省流量,移动版屏蔽了部分 CSS 或 JS。渲染型抓取依赖这些资源来还原页面,被屏蔽后蜘蛛看到的可能是一个残缺的 DOM。

这两点都会让 URL 发现这条路变窄:内链在源码里根本不存在,蜘蛛自然沿着走不下去。

服务器端适配要小心的地方

有些站点在 Nginx 或 CDN 层根据 UA 分发内容,这类配置要避免几种情况:

  1. 把搜索引擎的移动 UA 当成真实手机用户,返回与桌面不同的短版本内容。
  2. 对移动 UA 返回 302 跳转,但跳转目标又带参数,产生多个 URL 变体。
  3. UA 列表维护不及时,新出现的爬虫 UA 落到默认分支,拿到错误页面。
判断标准很简单:用移动端 User-Agent 请求一次这个 URL,看看返回的 HTML 里有没有正文、有没有内链,和桌面版对比差多少。

可以定期检查的几项

  • 同一 URL 在移动 UA 下的 HTML,正文和内链是否完整。
  • m 站与桌面站的对应标注是否齐全,canonical 是否指向正确的版本。
  • 移动端是否屏蔽了关键 CSS/JS,导致渲染后 DOM 缺内容。
  • 服务器日志里移动 UA 的抓取是否返回 200,有没有被 302 绕圈。
  • 折叠导航里的链接是否出现在初始 HTML 中。

移动优先不是要你放弃桌面版,而是保证两套呈现下,蜘蛛能看到同一份可抓取、可发现链接的内容。抓取路径顺不顺,很多时候取决于这一步有没有对齐。