如果你在服务器日志里看到抓取器的 UA 带着 Mobile 字样,这是移动优先索引下的常态:蜘蛛默认用移动端抓取器访问页面,用这一份 HTML 决定索引内容、内链和后续抓取路径。桌面版和移动版不一致时,问题往往不是“页面打不开”,而是蜘蛛走的那条路和你以为的那条不一样。
移动优先不等于“只抓移动版”
更准确的说法是:蜘蛛主要用移动端抓取器访问,桌面端抓取器仍然会来,只是频率和用途不同。对站点来说,关键点在于:
- 移动版 HTML 里出现的链接,才是它继续往下走的路径来源;
- 移动版页面上没有的导航项、页脚链接、相关推荐,蜘蛛多半也不会顺着走;
- 索引里的正文以移动版为准,桌面版多出来的段落不一定被采用。
所以“桌面版链接齐全、移动版砍成三条”这种常见做法,会直接改变抓取路径的覆盖范围。
三种实现方式,各自的抓取风险
响应式(同一套 HTML、同一 URL)
三种方案里最省事的一种:HTML 只有一份,内链一致,蜘蛛用哪个 UA 拿到的都是同一份内容。风险主要来自隐藏方式——如果导航在移动端靠脚本折叠,并且折叠前的 DOM 里没有这些链接,蜘蛛可能读不到。建议链接直接写在 HTML 里,用 CSS 控制显示,而不是由脚本动态插入。
动态服务(同一 URL,按 UA 返回不同 HTML)
同一个 URL 给移动端返回精简版、给桌面端返回完整版。这种方式要特别注意:
- 两个版本的正文、标题、结构化数据要一致,否则容易出现内容对不上的情况;
- 缓存策略要小心,按 UA 分版本返回时若缓存键设置不当,CDN 可能把桌面版缓存回给移动端抓取器,蜘蛛看到的就是另一份页面;
- 移动版里被“精简”掉的链接,就是被砍掉的抓取路径。
独立移动站(m 开头的子域)
最容易出问题的一种。两个域名各自有自己的内链网络,蜘蛛在移动站上能抓到什么、能不能顺畅跳回主站,全靠配置保证:
- 移动版页面用 canonical 指向对应地址,全站策略要统一;
- 桌面版用 alternate 标记指向移动版,方便蜘蛛发现对应关系;
- 移动站的导航、分页、上下级链接要完整,别让它变成一条只有首页和详情页的窄路;
- 移动站的 404、软 404 要单独检查,很多站点只维护了主站的重定向规则。
自查:怎么确认蜘蛛走的是哪条路
- 用移动端 UA 请求几个关键 URL,看返回的 HTML 里有没有完整的导航和分页链接;
- 在日志里按 UA 分组,比较移动端与桌面端抓取器访问的路径分布,差异大的地方就是两套内链不一致的地方;
- 看移动版页面的状态码,独立移动站上大量 3xx、5xx 会让抓取停在这一层;
- 确认 Sitemap 和 robots.txt 里给出的地址,是蜘蛛实际能抓到的那一套。
判断“蜘蛛能不能走下去”的标准很简单:先忽略桌面端的所有链接,只看移动版 HTML 里有什么可点的链接。那条路才是它真正会走的。
顺序上的建议
先统一内容与链接,再谈抓取效率。正文、标题、内链在两版之间对齐之后,无论蜘蛛用哪个抓取器进来,拿到的都是同一张路径图,排查抓取问题时能少掉一大半变量。如果短期内只能改一处,优先补上移动版缺失的导航和分页链接——那是蜘蛛继续往下走最依赖的入口。