搜索抓取

URL 参数组合与抓取预算稀释:筛选排序页的去重核对

站内筛选、排序、追踪参数会生成大量近似 URL,同一内容被多个地址重复发现,抓取预算被稀释。本文从参数来源、内容差异判断、canonical 与链接暴露控制、日志核对几个方面,整理一份可落地的排查清单,帮助你把抓取次数留给真正需要更新的页面。

搜索抓取

URL 参数组合与抓取预算稀释:筛选排序页的去重核对

当一个页面可以通过多组参数组合访问时,蜘蛛会把这些组合当成不同的 URL 分别发现。常见的情况是:同一批商品既有颜色筛选、价格排序,又有分页和追踪参数,URL 数量在短时间内成倍增长。抓取预算并没有增加,结果就是真正需要更新的页面回访变慢。

先确认哪些参数真的改变了内容

不是所有参数都值得被当作独立页面。可以抽样对比:去掉参数后,HTML 主体、标题、主要文本是否基本一致;如果只是排序不同或筛选后项目顺序变化,内容重叠度很高,通常不需要独立抓取。

  • 筛选参数:同一分类下不同条件的结果页,若只是项目子集变化,需评估是否有独立搜索需求。
  • 排序参数:按价格、销量、上架时间排序,通常内容相同,只是顺序不同。
  • 分页参数:已有分页序列的讨论,这里关注的是分页与筛选叠加后产生的组合数量。
  • 追踪参数:来源、活动、会话 ID 等,不应出现在站内链接中,也不应被蜘蛛大量发现。
  • 展示参数:列表视图、网格视图、每页数量等,多数情况下不影响核心内容。

从链接暴露端控制组合增长

蜘蛛发现 URL 的主要途径仍然是链接。站内筛选如果全部以可抓取的 a 标签输出,组合数会迅速膨胀。可以考虑:

  1. 让筛选结果通过表单提交或 JavaScript 交互触发,不生成大量静态可抓链接。
  2. 保留少量有价值的筛选入口,其余组合不主动暴露。
  3. 排序切换默认使用同一 URL,或通过前端参数控制,不写入服务端链接。
  4. 分页与筛选不要互相叠加成无限路径,必要时限制可抓取的组合范围。

canonical、robots 与 noindex 的边界

canonical 可以告诉搜索引擎哪个 URL 是主要版本,但它不阻止蜘蛛抓取参数页。robots.txt 的 Disallow 能减少抓取,但被屏蔽的 URL 仍可能因外链或历史记录被发现;如果页面本身需要参与索引,屏蔽后也无法传递信号。noindex 适合不希望出现在结果中的页面,但蜘蛛仍需抓取才能看到该标签。

这三种手段解决的是不同问题:canonical 处理重复信号,robots 处理抓取访问,noindex 处理索引收录。把它们混用,容易得到“抓取没减少、索引也没收敛”的结果。

日志中的核对清单

用服务器日志按路径前缀、参数数量、响应状态分组,观察一段时间内的抓取分布:

  • 同一路径下带参数的 URL 请求量是否远高于不带参数的版本。
  • 参数组合是否在持续新增,且没有对应的内容更新。
  • 参数页返回的状态码是否正常,内容是否与主版本高度相似。
  • 被大量抓取的参数页是否反过来挤占了栏目页、详情页的回访。
  • 站内链接、站点地图、外部入口中是否仍在输出这些参数组合。

把抓取机会留给内容更新

参数去重不是一次性的清理,而是链接生成规则的长期约束。每次新增筛选、排序或追踪逻辑时,先回答两个问题:这个组合有没有独立内容价值;它会不会以可抓取链接的形式暴露给蜘蛛。如果答案是否定的,就在前端和链接输出层收敛,而不是等到日志里出现大量重复抓取后再补救。

最后需要提醒的是,不同站点的参数结构和抓取表现差异很大。以上清单适合作为排查起点,具体取舍仍要结合自身日志、内容更新频率和抓取预算来判断,不必追求一次性覆盖所有组合。