蜘蛛池入口页真正的“内容”,是蜘蛛用自己那份 UA 请求回来的一串 HTML。同一批入口页,在浏览器里看到的和蜘蛛抓到的可能完全不同,尤其是做了移动端适配或者按设备分流之后。这类差异平时看不见,等到日志里来访变少、或者入口页只被索引了一个版本,才会浮现出来。
蜘蛛用哪种 UA 抓入口页
主流搜索引擎多年前就已转向移动优先:抓取和索引主要参考移动版页面,桌面版在很多情况下只是兜底。这意味着入口页如果存在两套版本,蜘蛛更大概率拿到移动版那一份。你在电脑上打开的落地页,未必是它看到的那一页。
具体到日志里,同一个搜索引擎会出现两类 UA:一类带 Mobile 字样,一类是传统桌面蜘蛛。两者的来访比例、抓取频次和覆盖的 URL 并不一样,统计时最好分开看,否则很容易把一次 UA 切换误判成来访腰斩。
入口页常见的三种交付方式
响应式一套模板
同一份 HTML,靠 CSS 适配屏幕,服务端不区分 UA。这是对蜘蛛最省事的做法:只有一个 URL、一份内容,不存在版本分歧,抓取预算也不用重复花。
独立的移动站
桌面走 www,移动走 m 子域或另一套路径。这种结构下,两套页面需要互相标明 canonical 关系,内容也得基本一致。常见的问题是移动版被大幅精简,只剩标题和几张图,蜘蛛按移动优先取到这一版,对页面质量的判断自然跟着缩水。
按 UA 动态返回
服务端读 User-Agent 决定返回哪套模板。技术上可行,但风险在于两件事:一是缓存层可能把移动版缓存住,接着回给桌面蜘蛛;二是当移动版和桌面版内容差异过大时,容易被认定为按设备投放不同内容,差异越大,解释成本越高。
版本不一致会带来什么
- 入口页被索引的版本与预期不同,站内链接的落点跟着变。
- 移动版精简掉了正文或链接,蜘蛛顺着入口页走不到后续页面。
- 移动站用 302 跳到首页或 App 下载页,蜘蛛到这里就断了。
- 两套版本各自声明 canonical,指向不统一,信号被拆散。
自己动手核对一遍
- 用桌面 UA 和移动 UA 各抓一次入口页,对比返回的 HTML 正文、链接数量与跳转。
- 看响应头里的 Vary、Cache-Control,确认缓存不会串版本。
- 检查移动版是否被重定向到与你无关的页面,尤其是 App 下载和首屏弹窗。
- 把入口页的关键链接在两种 UA 下分别数一遍,落点应当一致。
几条实用的处理建议
- 能响应式就响应式,入口页没必要为了分流再造一套模板。
- 确实要分开,就让两版内容量级相当,并互相 canonical,别只留一版给蜘蛛。
- 移动端弹窗、下载引导、地域跳转这些脚本,尽量别挡在正文和链接前面。
- 日志统计按 UA 分类,移动蜘蛛和桌面蜘蛛的曲线分开看,避免误读。
入口页的版本问题,本质不是适配问题,而是“蜘蛛拿到的那份 HTML 是不是你想让它看的那份”。
这些检查花不了多少时间,但能避开一类非常隐蔽的问题:你一直在优化桌面版,蜘蛛却始终在看另一份页面。