搜索抓取

搜索蜘蛛抓取:URL 规范化不统一造成的同页多入口与抓取重复梳理

同一份内容如果同时存在带尾斜杠、大小写混用、http 与 https、www 与非 www、夹带跟踪参数等多种 URL 形态,且都能正常返回,蜘蛛就会把它们当成不同资源分别抓取。本文梳理这类同页多入口的表现、对抓取预算与内链权重的影响,并给出可执行的核对顺序与验证方法。

搜索抓取

搜索蜘蛛抓取:URL 规范化不统一造成的同页多入口与抓取重复梳理

做抓取日志分析时,经常会遇到一种情况:页面内容明明只有一份,日志里却出现了好几种 URL 写法,抓取次数被摊薄,内链权重也被拆散。这通常不是蜘蛛“抓错了”,而是站点自身的 URL 规范化没有统一。

一、同页多入口的常见表现

  • 带尾斜杠与不带尾斜杠同时返回 200,内容一致;
  • 路径大小写混用,例如 /News/ 与 /news/ 都能打开;
  • http 与 https、www 与非 www 并存,且各自都能访问;
  • 同一列表页被 /list、/list/、/list/index.html 三种形式命中;
  • URL 中夹带 utm_、from、spm 等跟踪参数,每次分享都生成新入口;
  • 中文或空格参数出现编码与未编码两种写法。

这些形态如果都能返回 200,蜘蛛会把它们当作不同资源分别抓取,同一份内容被重复消耗抓取预算。

二、影响不只是“重复”

入口分散会带来几个连锁问题:内链指向不统一,导致同一页面的内部与外部信号被拆到多个 URL 上;Sitemap 里提交的形态与页面 canonical 标注的形态不一致,让抓取调度与实际规范地址对不上;日志统计时,你很难判断某个栏目到底是抓取不足,还是被拆成了多条记录。排查孤岛页、抓取断层时,这类问题还会伪装成别的原因,让人误判方向。

三、核对顺序

  1. 先定唯一规范形态。确定协议、主机名、路径大小写、是否保留尾斜杠,并写成一句话规则,避免多人协作时各自理解。
  2. 检查服务端是否强制跳转。非规范形态应返回 301 到规范地址,而不是返回 200,也不是 302 到另一个非规范地址。
  3. 核对 canonical。每个页面 canonical 应指向自身规范地址,且全站写法一致,不要出现 canonical 指向一个会 302 的地址。
  4. 核对 Sitemap。Sitemap 中只放规范地址,避免把带参数、带尾斜杠的变体也提交进去。
  5. 核对内链。站内链接、面包屑、分页链接统一使用规范形态,减少一次多余跳转。
  6. 核对参数。只保留业务必需参数,跟踪类参数尽量在服务端 301 剥离,或至少不参与内容生成。
  7. 核对静态资源与接口。静态文件、图片 CDN 域名不必参与规范化,但要确认它们没有被误写入页面主链接。

容易漏掉的两个点

一是分页与筛选:列表页翻页参数顺序不同、筛选条件顺序不同,会生成大量等价 URL;二是前端拼接:JS 渲染时用当前地址拼接链接,如果当前地址本身是非规范形态,生成的内链也会跟着变成非规范形态,问题会沿链接一路扩散。

四、收敛后的验证

改完之后不要只看首页。抽取几十个典型页面,分别用规范与非规范形态请求,确认非规范形态返回 301 且落在同一最终地址,最终地址返回 200。再回看一段时间内的抓取日志,观察同一内容对应的 URL 形态数量是否下降,规范地址的抓取占比是否上升。如果日志里仍有大量变体入口,多半是某个入口没有真正走到跳转规则上。

规范化不是一次配置就结束的事,新增栏目、改版、接入新 CDN 或更换前端框架时,都可能重新引入不统一的写法,建议把它纳入上线检查项。