搜索抓取

URL 参数与筛选导航:蜘蛛会在哪些组合前停下

筛选参数会成倍放大 URL 空间,蜘蛛不会全部抓完,结果往往是低价值参数页占用抓取资源,真正需要更新的页面排队更久。本文从参数组合、蜘蛛的典型反应、保留与收掉的标准,以及 robots、canonical、nofollow 的副作用出发,给出可落地的处理顺序。

搜索抓取

URL 参数与筛选导航:蜘蛛会在哪些组合前停下

电商、房产、招聘这类站点,筛选器几乎是标配。颜色、尺寸、品牌、价格区间、排序方式、每页条数、当前页码,每一项都可能变成一个 URL 参数。用户点两下觉得方便,蜘蛛看到的却是一张不断分叉的地图。

参数为什么容易把 URL 空间撑大

单个参数并不可怕,麻烦的是组合。假设一个列表页有 5 个筛选维度,每个维度 10 个可选值,理论组合就是 10 的 5 次方。再叠加排序和分页,数量级还会继续放大。更隐蔽的是,有些参数并不改变页面主体内容,比如排序方式、每页条数、来源追踪,但它们生成的 URL 各不相同。

蜘蛛在发现这些链接时,通常会先抓一部分。它不会因为链接存在就一定抓完,抓取资源始终有限。结果是:一部分参数 URL 被反复抓取,返回的却是和主列表几乎一样的内容;而真正需要更新的详情页、新上架页面,反而排队更久。

蜘蛛面对参数 URL 时的几种典型反应

  • 把参数顺序不同、取值不同的 URL 当作不同地址,分别进入抓取队列。
  • 对内容高度相似的参数页,只选其中一部分作为代表,其余可能被忽略或降权处理。
  • 当参数组合看起来像无限生成时,蜘蛛可能降低对该目录的抓取频率,连主列表页也受影响。
  • 带会话 ID 或时间戳的链接,每次访问都产生新 URL,几乎不可能被完整抓取。

这些反应不一定是惩罚,更多是资源分配的自然结果。但对站点来说,效果类似:抓取预算被低价值 URL 占住。

哪些参数值得保留,哪些应该收掉

判断标准可以简单一些:这个参数 URL 有没有独立的内容价值,有没有用户会直接搜索并使用它。

  • 倾向保留:有明确搜索需求的筛选组合,例如品牌加品类、城市加区域;这些页面有独立标题、描述和稳定内链。
  • 倾向收掉:排序参数、每页条数、视图切换、打印版本、来源追踪、会话标识、无意义的空参数。
  • 需要观察:价格区间、评分等组合,数量可控且有搜索量时可以保留一部分。

常见处理方式与它们的副作用

robots.txt 屏蔽参数

直接屏蔽带参数的目录,能减少抓取,但也会让蜘蛛无法发现该目录下可能存在的有价值页面。屏蔽的是抓取,不是索引,已被外部链接指向的 URL 仍可能出现在结果里,只是内容抓不到。

canonical 指向无参数版本

这是常见做法,但 canonical 是提示而非指令。如果参数页内容确实不同,或者站内大量链接都指向参数页,效果会打折扣。

对筛选链接加 nofollow

能减少爬虫顺着筛选继续走的路径,但也可能让蜘蛛错过藏在筛选下的新页面。更适合用在纯排序、纯视图切换这类链接上。

筛选结果改用 JS 或接口加载

蜘蛛不一定会执行所有交互,拿不到链接也就不会进入抓取队列。对需要被发现的页面,最好仍保留可抓取的静态链接入口。

从日志和搜索控制台看是否该干预

不要凭感觉判断。先看服务器日志里参数 URL 的占比、状态码和响应内容。如果大量参数 URL 返回 200 但内容重复,或者同一组参数被反复抓取,就值得处理。再看搜索控制台的抓取统计和页面分组,观察参数页是否占用了大量抓取请求。

处理顺序建议从影响最大的参数开始:先解决会话 ID、追踪参数这类每次变化的值,再处理排序和视图切换,最后才考虑是否给筛选组合做静态化。

一个务实的原则

重要内容尽量有一个稳定、无参数、可被内链指向的地址。参数用来增强体验,而不是成为唯一入口。URL 空间不需要一次清干净,但要让蜘蛛把有限的抓取次数花在会更新、有人搜索的页面上。

参数不是越多越好,也不是一律屏蔽。关键是让每个被抓取的 URL 都有存在的理由。