蜘蛛池知识

蜘蛛池入口页的移动端适配:蜘蛛用移动 UA 访问时看到的是什么

搜索引擎爬虫现在多以移动端 UA 发起抓取,蜘蛛池入口页如果对移动 UA 做了差别对待,指向下一步的链接可能根本没进入 HTML。本文梳理移动优先索引下的抓取表现、响应式与独立 M 站各自容易出问题的地方、被样式和脚本藏住的链接,以及一套可以自己跑一遍的验证步骤。

蜘蛛池知识

蜘蛛池入口页的移动端适配:蜘蛛用移动 UA 访问时看到的是什么

很多蜘蛛池入口页在桌面浏览器里看着正常,但搜索引擎爬虫现在大多以移动端 UA 为主发起抓取。同一个 URL,用移动 UA 请求和用桌面 UA 请求,返回的 HTML 可能完全不同——被拦截的资源、被隐藏的链接、被折叠的内容,都会影响 URL 发现。下面整理移动端适配里几个容易被忽略的环节。

移动优先索引下,蜘蛛优先看哪个版本

主流搜索引擎的索引判断已经从桌面优先转向移动优先,含义是爬虫更多以移动 UA 抓取页面,并用移动端渲染结果来判断页面内容与链接。如果入口页对移动 UA 做了差别对待,比如给手机访客返回精简版、给桌面返回完整版,那蜘蛛看到的往往是那个精简版。

这里有个常见误解:以为移动端精简版更快,对抓取更友好。速度快本身不是坏事,但如果精简版里少了指向下一步的链接,蜘蛛就断在入口页了。加载速度替代不了链接的完整性。

响应式和独立 M 站,各自容易出问题的地方

响应式:链接没少,但可能被样式藏起来

响应式站点通常用 CSS 媒体查询控制显示。问题在于:桌面端用 display:none 隐藏、移动端才展示的模块,用桌面 UA 抓时就是隐藏链接;反过来也一样。更麻烦的是,有些模板靠 JS 监听窗口宽度变化才把内容写进 DOM,蜘蛛渲染时的默认视口不一定触发那段逻辑。

独立 M 站:跳转链和 UA 判断容易出岔子

桌面站跳 M 站、M 站又跳回桌面站,这种双向跳转如果判断写得粗,容易出现循环,或者把蜘蛛反复弹来弹去。另外 M 站域名常常不在同一份 robots.txt 的覆盖范围内,容易出现一边放开一边限制,蜘蛛进得来却走不深。

移动端渲染时容易被挡住的链接

  • 汉堡菜单里的导航:菜单内容要点击后由 JS 插入的话,蜘蛛渲染时不一定会去点,导航链接可能压根没进入 DOM。
  • 整块懒加载的列表:图片懒加载本身没关系,但不少站点把整个列表项连同里面的链接一起做成滚动到才加载。
  • 移动端专属的遮罩层:全屏遮罩如果盖住内容区,用户看不到,蜘蛛渲染出的可见文本也可能被判定为数量很少。
  • 唤起 App 的脚本:部分页面会尝试跳 App 或走自定义 scheme,这类脚本对爬虫没有意义,极端情况下还会干扰渲染过程。

怎么自己验证一次

  1. 用命令行以移动 UA 请求入口页,确认返回的 HTML 里含你期望的链接,而不是只返回一个空壳。
  2. 对比移动 UA 与桌面 UA 两次返回的链接数量与锚文本,差异大的位置就是排查重点。
  3. 在浏览器里模拟移动设备并限制部分脚本,观察导航链接是否真的存在于最终 DOM。
  4. 翻访问日志,按 UA 分组看移动爬虫的请求占比与状态码分布,留意大量 4xx、5xx 或重定向。
  5. 如果站点对移动端单独配过 robots 规则或 WAF 策略,检查它们是否只在移动 UA 上生效。

一些使用建议

  • 不要把给移动端砍内容当成提速手段,入口页的职责就是让蜘蛛拿到链接,链接没了这一步就失去意义。
  • 导航、面包屑、分类列表这类结构性链接,尽量服务端渲染输出,不依赖交互才出现。
  • 响应式与独立 M 站二选一时,挑团队能长期维护、且 UA 判断逻辑简单可验证的那一种。
  • 任何对移动 UA 的特殊处理,缓存、限速、跳转还是屏蔽,都要能在日志里看出效果,否则出问题只能靠猜。
  • 适配不是一次性工作,模板改版后把上面的验证步骤重新跑一遍。
蜘蛛不会主动告诉你它看到的是哪个版本。入口页如果能让移动和桌面两种 UA 都拿到同一批链接,很多抓取量上不去的问题会自然减少,但这仍然取决于站点整体质量与抓取策略,不是单点改动就能决定的事。