搜索抓取

移动优先索引下,蜘蛛抓取的到底是移动版还是桌面版

移动优先索引下,蜘蛛主要用移动端抓取器访问页面,移动版 HTML 里的链接决定了后续抓取路径。本文拆解响应式、动态服务、独立移动站三种实现方式各自的抓取风险,并给出用 UA 分组看日志、对照两版内链的自查方法。

搜索抓取

移动优先索引下,蜘蛛抓取的到底是移动版还是桌面版

如果你在服务器日志里看到抓取器的 UA 带着 Mobile 字样,这是移动优先索引下的常态:蜘蛛默认用移动端抓取器访问页面,用这一份 HTML 决定索引内容、内链和后续抓取路径。桌面版和移动版不一致时,问题往往不是“页面打不开”,而是蜘蛛走的那条路和你以为的那条不一样。

移动优先不等于“只抓移动版”

更准确的说法是:蜘蛛主要用移动端抓取器访问,桌面端抓取器仍然会来,只是频率和用途不同。对站点来说,关键点在于:

  • 移动版 HTML 里出现的链接,才是它继续往下走的路径来源;
  • 移动版页面上没有的导航项、页脚链接、相关推荐,蜘蛛多半也不会顺着走;
  • 索引里的正文以移动版为准,桌面版多出来的段落不一定被采用。

所以“桌面版链接齐全、移动版砍成三条”这种常见做法,会直接改变抓取路径的覆盖范围。

三种实现方式,各自的抓取风险

响应式(同一套 HTML、同一 URL)

三种方案里最省事的一种:HTML 只有一份,内链一致,蜘蛛用哪个 UA 拿到的都是同一份内容。风险主要来自隐藏方式——如果导航在移动端靠脚本折叠,并且折叠前的 DOM 里没有这些链接,蜘蛛可能读不到。建议链接直接写在 HTML 里,用 CSS 控制显示,而不是由脚本动态插入。

动态服务(同一 URL,按 UA 返回不同 HTML)

同一个 URL 给移动端返回精简版、给桌面端返回完整版。这种方式要特别注意:

  • 两个版本的正文、标题、结构化数据要一致,否则容易出现内容对不上的情况;
  • 缓存策略要小心,按 UA 分版本返回时若缓存键设置不当,CDN 可能把桌面版缓存回给移动端抓取器,蜘蛛看到的就是另一份页面;
  • 移动版里被“精简”掉的链接,就是被砍掉的抓取路径。

独立移动站(m 开头的子域)

最容易出问题的一种。两个域名各自有自己的内链网络,蜘蛛在移动站上能抓到什么、能不能顺畅跳回主站,全靠配置保证:

  1. 移动版页面用 canonical 指向对应地址,全站策略要统一;
  2. 桌面版用 alternate 标记指向移动版,方便蜘蛛发现对应关系;
  3. 移动站的导航、分页、上下级链接要完整,别让它变成一条只有首页和详情页的窄路;
  4. 移动站的 404、软 404 要单独检查,很多站点只维护了主站的重定向规则。

自查:怎么确认蜘蛛走的是哪条路

  • 用移动端 UA 请求几个关键 URL,看返回的 HTML 里有没有完整的导航和分页链接;
  • 在日志里按 UA 分组,比较移动端与桌面端抓取器访问的路径分布,差异大的地方就是两套内链不一致的地方;
  • 看移动版页面的状态码,独立移动站上大量 3xx、5xx 会让抓取停在这一层;
  • 确认 Sitemap 和 robots.txt 里给出的地址,是蜘蛛实际能抓到的那一套。
判断“蜘蛛能不能走下去”的标准很简单:先忽略桌面端的所有链接,只看移动版 HTML 里有什么可点的链接。那条路才是它真正会走的。

顺序上的建议

先统一内容与链接,再谈抓取效率。正文、标题、内链在两版之间对齐之后,无论蜘蛛用哪个抓取器进来,拿到的都是同一张路径图,排查抓取问题时能少掉一大半变量。如果短期内只能改一处,优先补上移动版缺失的导航和分页链接——那是蜘蛛继续往下走最依赖的入口。