搜索抓取

URL 参数与抓取浪费:筛选、排序和追踪参数该怎么处理

筛选、排序、分页、追踪参数会让同一份内容派生出几十上百个地址,蜘蛛的抓取额度很容易被这些低价值 URL 吃掉。本文梳理功能性、筛选排序、追踪装饰三类参数的差别,给出 canonical、参数顺序、robots 通配符、内链收敛等处理思路,以及容易误伤的检查点。

搜索抓取

URL 参数与抓取浪费:筛选、排序和追踪参数该怎么处理

同一个商品页,用户点一次“按价格排序”就多一个地址,再勾一个颜色又多一个,加上投放链接里的追踪参数,一个页面能派生出一大串 URL。对用户来说这些地址长得差不多,对蜘蛛来说却是实实在在要排队抓取的对象。参数本身不是问题,参数失控才是。

参数为什么会放大 URL 数量

大多数参数页的正文内容是重复的,差别只在排序方式或筛选条件上。一旦参数可以自由组合,地址数量就按乘法增长:3 个颜色 × 4 个尺码 × 3 种排序 × 若干页码,轻松过百。蜘蛛不会帮你判断哪个地址更值得抓,它只看到一堆待抓队列。结果是真正需要更新的详情页迟迟排不上,而大量排序页被反复访问。

三类参数要分开看

功能性参数:必须保留

像详情页的 id、分页的 page、文章的语言标记,这些参数决定了页面呈现的内容,删掉就换了一个页面。这类参数应当保持可抓取、可索引,并且在站内链接和 Sitemap 里使用统一写法。

筛选与排序参数:视情况保留

有搜索量的筛选组合(比如“品牌 + 品类”)可以保留为独立入口,其余的排序、多条件叠加更适合收敛到主页面。判断标准不是“能不能生成”,而是“这个组合有没有人真的会搜”。

追踪与装饰参数:应当忽略

utm_ 系列、from、ref、分享来源、会话 ID,这些参数不改变页面内容,却会制造大量重复地址。它们出现在站外链接里难以完全避免,但至少站内链接不应该带。内部链接一旦带上追踪参数,等于把这套地址主动递给蜘蛛。

常见的几种处理方式

  • 统一参数顺序:?a=1&b=2 和 ?b=2&a=1 在系统里是两个地址,在规范化上应指向同一个。
  • canonical 指向规范版本:排序页、筛选页把 canonical 指回无参数主页面,前提是内容确实高度重叠。
  • 跳转收敛追踪参数:对确认无用的参数做 301 到干净地址,让链接里残留的旧地址逐步失效。
  • Sitemap 只放规范 URL:不要把所有参数组合都塞进去,那等于主动扩大抓取需求。
  • robots.txt 通配符要算清范围:Disallow: /*?sort= 之类的规则写起来方便,但很容易连正常详情页一起挡住。

通配符屏蔽最容易误伤

用 robots.txt 拦参数是见效最快也最容易出事的一步。规则里的 * 会匹配任意位置,如果详情页本身也带问号参数,一条看似精准的规则可能把整个栏目挡在门外。改规则之前,先在抓取日志里确认:这些带参数的 URL 目前是否被抓取、抓取频率如何、是否有真实的搜索需求。

屏蔽参数不是目的,把抓取额度让给有价值的页面才是。动手前先看清楚哪些地址本来就在被正常抓取。

一份可以照着走的检查清单

  1. 统计日志中带参数请求占全部抓取的比例,看是否明显偏高。
  2. 抽查站内链接(导航、列表、相关推荐)是否夹带了追踪参数。
  3. 比对无参数页与参数页的 canonical,确认指向一致且稳定。
  4. 检查 robots.txt 规则的实际匹配范围,用几个真实 URL 验证会不会误伤。
  5. 观察调整后一段时间内,抓取是否更多集中到详情页和栏目页。

小结

参数治理的核心不是把带问号的地址全部消灭,而是分清哪些参数决定了内容、哪些只是外观变化、哪些纯粹是统计用途。保留该保留的,收敛该收敛的,剩下的用 canonical 和链接规范慢慢减少传播。参数混乱通常不会立刻带来明显问题,但抓取额度被长期分散后,更新较快的页面往往会先感受到影响。