同一份内容在移动端和桌面端各有一套 URL,是很多站点长期存在的状态。m 站、独立子域、路径前缀,或者同一域名下靠 User-Agent 判断返回不同模板,都会让蜘蛛在发现 URL 时多出一层选择。这层选择如果没理顺,URL 发现速度和抓取节奏都会被拖慢。
两套 URL 是怎么冒出来的
常见形式有几种:m.example.com 这类独立子域,example.com/m/ 这类路径前缀,wap 子域,以及同一个 URL 根据请求头输出不同 HTML。前几种在蜘蛛眼里是两组完全独立的网址,最后一种蜘蛛只看到一个网址,但抓到的内容可能并不一致。
蜘蛛在分流页面上的实际动作
先看跳转,再看内容
桌面 URL 用 302 跳到 m 站,蜘蛛通常会在一定范围内跟着跳。但如果每次访问的跳转目标不稳定,跳转链上还叠加了地区判断、Cookie 判断,抓取就会在这条路径上反复消耗,真正落到内容页的请求变少。
抓取预算被摊薄
两套 URL 意味着 URL 总量接近翻倍,抓取请求也接近翻倍,而内容只有一份。站点规模小的时候感受不明显,一旦列表页、标签页、筛选参数多起来,重复部分占用的抓取量就会变得显眼,新内容的发现和复查都会被挤到后面。
Sitemap 里怎么写更清楚
- 优先只提交规范版本的那一套 URL,另一套通过 alternate 或 hreflang 关系说明,不要两边都塞进同一个 Sitemap。
- 如果业务上确实要保留两套,建议分片提交并标注清楚,不要把两套混在一个文件里靠 lastmod 区分。
- lastmod 用内容真实更新时间,不要因为模板改版就整站刷新,否则蜘蛛的复查节奏会被打乱。
内链该指向哪一端
站内链接应统一指向规范版本。导航、面包屑、正文内的链接如果一半指 m 站、一半指桌面站,蜘蛛会把两套 URL 都当成入口,URL 发现来源变多,收敛速度变慢。移动端页面上出现的链接,建议直接写规范 URL,而不是再跳一次。
服务器与渲染的一致性
移动端和桌面端经常部署在不同环境里。如果 m 站所在服务器响应偏慢、容易返回 5xx,蜘蛛在那条路径上的抓取成功率就会下降,进而影响整站后续的复查频率。同一内容的两个版本,返回的状态码、缓存协商头、主体内容应当尽量一致,避免一端 200、另一端超时。
自查顺序
- 用不同 UA 请求同一个 URL,确认返回的 HTML 主体内容是否一致。
- 检查跳转链,看是否存在与 UA 相关的多级跳转。
- 查看 Sitemap,确认是否同时存在两套 URL。
- 抽查站内链接,大致统计指向 m 站和桌面站的比例。
- 对比两端服务器的响应时间和错误率,找出较慢的一侧。
两套 URL 本身不是问题,问题在于蜘蛛无法判断哪一套才是你希望被收录和抓取的版本。把规范版本、跳转关系、Sitemap 标注和内链指向统一起来,抓取路径会慢慢收敛。