蜘蛛池知识

蜘蛛池入口页的移动版与桌面版:蜘蛛实际抓到的是哪一份

入口页做了移动适配之后,蜘蛛抓到的很可能是与你预期不同的那一版。本文说明响应式、独立移动站与按 UA 动态返回三种交付方式的差异,版本不一致会造成的链接断裂、重定向中断与 canonical 混乱,并给出用不同 UA 自查、按 UA 分开统计日志等实用做法。

蜘蛛池知识

蜘蛛池入口页的移动版与桌面版:蜘蛛实际抓到的是哪一份

蜘蛛池入口页真正的“内容”,是蜘蛛用自己那份 UA 请求回来的一串 HTML。同一批入口页,在浏览器里看到的和蜘蛛抓到的可能完全不同,尤其是做了移动端适配或者按设备分流之后。这类差异平时看不见,等到日志里来访变少、或者入口页只被索引了一个版本,才会浮现出来。

蜘蛛用哪种 UA 抓入口页

主流搜索引擎多年前就已转向移动优先:抓取和索引主要参考移动版页面,桌面版在很多情况下只是兜底。这意味着入口页如果存在两套版本,蜘蛛更大概率拿到移动版那一份。你在电脑上打开的落地页,未必是它看到的那一页。

具体到日志里,同一个搜索引擎会出现两类 UA:一类带 Mobile 字样,一类是传统桌面蜘蛛。两者的来访比例、抓取频次和覆盖的 URL 并不一样,统计时最好分开看,否则很容易把一次 UA 切换误判成来访腰斩。

入口页常见的三种交付方式

响应式一套模板

同一份 HTML,靠 CSS 适配屏幕,服务端不区分 UA。这是对蜘蛛最省事的做法:只有一个 URL、一份内容,不存在版本分歧,抓取预算也不用重复花。

独立的移动站

桌面走 www,移动走 m 子域或另一套路径。这种结构下,两套页面需要互相标明 canonical 关系,内容也得基本一致。常见的问题是移动版被大幅精简,只剩标题和几张图,蜘蛛按移动优先取到这一版,对页面质量的判断自然跟着缩水。

按 UA 动态返回

服务端读 User-Agent 决定返回哪套模板。技术上可行,但风险在于两件事:一是缓存层可能把移动版缓存住,接着回给桌面蜘蛛;二是当移动版和桌面版内容差异过大时,容易被认定为按设备投放不同内容,差异越大,解释成本越高。

版本不一致会带来什么

  • 入口页被索引的版本与预期不同,站内链接的落点跟着变。
  • 移动版精简掉了正文或链接,蜘蛛顺着入口页走不到后续页面。
  • 移动站用 302 跳到首页或 App 下载页,蜘蛛到这里就断了。
  • 两套版本各自声明 canonical,指向不统一,信号被拆散。

自己动手核对一遍

  1. 用桌面 UA 和移动 UA 各抓一次入口页,对比返回的 HTML 正文、链接数量与跳转。
  2. 看响应头里的 Vary、Cache-Control,确认缓存不会串版本。
  3. 检查移动版是否被重定向到与你无关的页面,尤其是 App 下载和首屏弹窗。
  4. 把入口页的关键链接在两种 UA 下分别数一遍,落点应当一致。

几条实用的处理建议

  • 能响应式就响应式,入口页没必要为了分流再造一套模板。
  • 确实要分开,就让两版内容量级相当,并互相 canonical,别只留一版给蜘蛛。
  • 移动端弹窗、下载引导、地域跳转这些脚本,尽量别挡在正文和链接前面。
  • 日志统计按 UA 分类,移动蜘蛛和桌面蜘蛛的曲线分开看,避免误读。
入口页的版本问题,本质不是适配问题,而是“蜘蛛拿到的那份 HTML 是不是你想让它看的那份”。

这些检查花不了多少时间,但能避开一类非常隐蔽的问题:你一直在优化桌面版,蜘蛛却始终在看另一份页面。