搜索抓取

站点里的参数 URL:蜘蛛要不要抓,怎么收口

站内筛选、排序和跟踪链接会生成大量带参数的 URL,它们既可能是有效内容,也可能稀释抓取。本文梳理参数 URL 的常见来源与分类判断,说明 canonical、robots.txt、noindex、内链和 Sitemap 该怎么配合,并给出验证收口效果的几个观察点。

搜索抓取

站点里的参数 URL:蜘蛛要不要抓,怎么收口

站内的筛选、排序、分页和跟踪链接都会生成带参数的 URL。这类地址蜘蛛能不能抓到、该不该让它抓,是很多站点在抓取环节上反复纠结的问题。处理得好,蜘蛛会把时间花在真正有用的页面上;处理得不好,抓取资源会被大量互相重复的地址稀释掉。

参数 URL 通常从哪几个地方冒出来

先看来源,再决定怎么处理。常见的几类:

  • 列表筛选:价格区间、品牌、颜色、规格等条件组合,每勾一次就生成一个新地址。
  • 排序:按销量、按价格、按上架时间排序,同一批商品出现多个地址。
  • 分页:page=2、page=3 这类地址,属于正常内容,通常需要被抓。
  • 跟踪参数:utm_source、from、ref 之类的投放和分享标记,对页面内容没有任何影响。
  • 会话与临时参数:会话 ID、时间戳、随机串,同一页面每次访问地址都不一样。

其中只有一部分值得占用抓取资源,另外一部分应当尽早收口,否则会持续制造重复内容,也会让蜘蛛在内链里绕圈子。

先分清:哪些参数 URL 值得让蜘蛛抓

判断标准可以简单一点:这个地址对应的页面,是否有独立的内容价值,以及是否可能有用户直接在搜索里找它。

  • 值得抓:分页参数、有稳定搜索需求的筛选组合,比如某个品牌或某个品类下的筛选结果页。
  • 不值得抓:排序参数、跟踪参数、会话参数,以及多个条件叠加出来的长尾筛选地址。

难点常在于中间地带:筛选组合既可能有搜索需求,又会无限膨胀。这时可以采用有限入口加其余收口的方式,只把少数几个重点组合放出来,其余组合的页面不进入抓取范围,站内用户依然能正常使用筛选功能。

三种常见收口手段,各有适用场景

canonical 指向规范版本

如果多个地址指向同一份内容,可以在页面上用 canonical 指向规范地址。要注意 canonical 是建议而不是强制,蜘蛛可能忽略明显不合理的写法,所以规范地址本身要在站内被稳定地链接到,不能只靠一条 canonical 声明。

robots.txt 屏蔽与 noindex 是两回事

用 robots.txt 屏蔽一批参数目录,可以让蜘蛛不再去请求它们,成本最低。但要清楚一点:被 robots.txt 挡住的页面,蜘蛛通常不会去读页面上的 noindex。所以先屏蔽再加 noindex 这个顺序,往往达不到预期效果,两者需要分开考虑,按页面情况选一个用。

页面上别铺太多参数链接

很多参数 URL 之所以被发现,是因为页面里到处都是筛选和排序的链接。如果这些地址不打算抓取,就不要让它们以可跟随链接的形式大量出现在页面上,或者至少让它们不出现在蜘蛛能稳定走到的主路径上。

内链与 Sitemap 要跟收口策略保持一致

收口之后,内链和 Sitemap 就成了蜘蛛发现 URL 的主要入口。有两点值得注意:

  • Sitemap 只放规范地址:不打算抓取或已决定合并的参数地址,不要写进 Sitemap。放进去了,等于又给蜘蛛递了一份待抓清单。
  • 内链指向规范版本:站内跳转如果大量使用带参数地址,收口的效果会被抵消一部分。列表、推荐位、面包屑尽量指向干净的规范地址。

服务器侧也要配合

参数 URL 容易绕过缓存,每个组合都走一次数据库查询,服务器压力会明显上升。如果这些地址不打算被抓,减少它们被请求的机会本身就是一种减压;如果决定保留部分可抓的筛选页,则要考虑缓存和响应时间的稳定,避免蜘蛛在抓这些页面时频繁遇到超时。

怎么验证收口有没有生效

  • 看服务器日志里参数 URL 的请求占比,收口之后占比通常应逐步下降。
  • 看站点后台或站长平台里的已发现、已抓取数据,确认参数地址没有持续堆积。
  • 抽查重点筛选页,确认它们的 canonical、内链指向与预期一致。

参数 URL 的处理没有一套通吃的方案,更多是取舍:保留哪一部分、放弃哪一部分,然后让机器人协议、页面标记、内链和 Sitemap 说同一件事。方向一致,蜘蛛的抓取路径才会慢慢收敛到真正重要的页面上,而不是散落在无数种参数组合里。