常见问题

入口页只对移动端 UA 输出链接,桌面搜索蜘蛛抓取时还能发现吗?

有些入口页会按 User-Agent 判断设备,只在移动端版本里放链接。这种差异会不会让搜索蜘蛛漏掉目标 URL,取决于搜索引擎实际用哪个蜘蛛抓取你这份 HTML。本文讲清移动优先索引的机制、PC 与移动蜘蛛的差别、自查顺序,以及更稳妥的链接输出方式。

常见问题

入口页只对移动端 UA 输出链接,桌面搜索蜘蛛抓取时还能发现吗?

问题是怎么出现的

做入口页时,有些人会用 User-Agent 或屏幕宽度做判断:手机访客看到的是带链接的移动版页面,电脑访客、以及桌面 UA 的搜索蜘蛛,拿到的却是一个几乎没有链接的简化版。只要这种差异覆盖到搜索蜘蛛,目标 URL 能不能被发现就变成了一个需要单独确认的问题。

搜索蜘蛛用的是什么“身份”

不同搜索引擎不一样,不能一概而论。

  • Google:抓取与索引主要走智能手机版 Googlebot,也就是移动优先索引的思路。如果链接只存在于移动版 HTML 里,通常仍有机会被解析到。
  • 百度:PC 蜘蛛与移动蜘蛛并存,两种身份都会抓取。如果只在移动 UA 下输出链接,PC 蜘蛛访问时拿到的就是没有链接的那一版。
  • 其他引擎与第三方抓取工具:UA 标识和渲染能力各不相同,不能假设它们会主动去取“另一个版本”。

所以答案不是“能”或“不能”,而是要看抓你这一份页面的那个蜘蛛,收到的是哪一版 HTML。

判断依据只有一份 HTML

搜索蜘蛛不会去猜你还准备了什么版本,它只解析自己收到的那份响应。链接在不在里面,直接决定目标 URL 会不会进入待抓取队列。

  • 服务端按 UA 输出不同 HTML:桌面 UA 请求时链接不在源码里,桌面蜘蛛自然看不到。
  • 用 JS 按设备宽度插入链接:依赖渲染能力,不同引擎的渲染时机和覆盖范围不同,属于相对薄弱的一环。
  • 用 CSS 隐藏或折叠:链接仍然写在 HTML 里,和上面两种情况不是一回事。

内容一致性也要考虑

同一个 URL 对蜘蛛和普通用户返回明显不同的内容,容易被判定为伪装式返回(cloaking)。即便技术上让蜘蛛拿到了带链接的版本,这种做法本身也带来额外风险,问题不只是“抓不抓得到”。

自查顺序

  1. 用 curl 分别带上移动 UA、桌面 UA、以及目标蜘蛛 UA 请求入口页,对比返回源码里的链接数量是否一致。
  2. 对比的是源码而不是浏览器渲染后的 DOM,很多差异只在源码层面看得出来。
  3. 在搜索引擎提供的抓取工具里用对应蜘蛛模拟一次,看它解析出的链接清单。
  4. 查服务器日志,确认实际来访的蜘蛛 UA、它请求到的是哪一版页面,以及目标 URL 后续有没有抓取记录。

一个容易忽略的细节

有些站点移动版和桌面版用的是不同 URL(例如 m 开头或不同目录),这时蜘蛛发现的链接可能指向移动版地址。如果移动版又跳回桌面版,链路会变长,发现效率也会下降,最好在自查时把跳转链路一起看清楚。

更稳妥的做法

  • 服务端渲染,PC 与移动返回同一份包含链接的 HTML,布局差异交给 CSS 做响应式处理,而不是按 UA 增删链接。
  • 确实需要做设备适配时,至少保证链接在两种版本里都存在,差异只体现在样式和排版上。
  • 关键 URL 不要只挂在一条路径上:sitemap、站内导航、其他页面的常规链接可以同时使用,降低单点失效带来的影响。
判断标准很简单:蜘蛛收到的那份 HTML 里有没有这个链接,和它自称是什么设备、屏幕多宽没有关系。