参数页为什么容易变成抓取黑洞
很多站点上线筛选、排序、分页或推广追踪功能后,URL 会带上各种参数,比如 ?color=red、?sort=price、?utm_source=xxx。这些 URL 对用户是有用的,但如果每一种组合都能被蜘蛛爬到并当成独立页面,站点很快会多出一大批内容相同、只是参数不同的入口。
常见的结果是:抓取预算被大量参数页消耗,真正重要的页面更新变慢;同一批商品或文章出现多个版本,权重被摊薄;日志里全是带参数的 URL,很难判断哪些页面才值得投入精力。
参数本身不是错误,问题在于哪些参数页该被索引、哪些只是给用户临时使用的。
先盘点:哪些参数是必要的
打开访问日志或服务器日志,按 URL 是否含问号做一次统计,看看带参数的请求占了多少比例。然后逐个分类:
- 功能性参数:分页、排序、视图切换。对用户有用,但不一定要让蜘蛛把每一种都抓一遍。
- 筛选参数:颜色、价格区间、品牌等。单个条件也许有搜索需求,多条件叠加的组合通常没有。
- 追踪参数:utm_source、utm_medium、fbclid 等,基本是营销用途,不应产生独立可索引版本。
- 会话或缓存参数:sessionid、timestamp、rand 之类,属于实现细节,最好不出现在对外链接里。
常见处理方式与注意点
1. 统一 canonical
如果参数并不改变页面核心内容,可以让这类页面 canonical 指向无参数的规范版本。这样即使参数页被抓到,也更可能归并到主页面。前提是无参版本本身可正常访问、内容完整,而不是一个空壳页。
2. 用 noindex 处理不该索引的页面
对于筛选组合页、追踪落地页,可以在页面上输出 noindex,follow,表示不索引但保留链接传递。需要留意的是:如果先用 robots.txt 屏蔽了这些 URL,蜘蛛就看不到页面上的 noindex,两种手段不要同时混用。
3. 在 robots.txt 里屏蔽参数路径要谨慎
屏蔽能减少抓取,但也可能挡住你后来想索引的页面。相对稳妥的做法是先用 noindex 观察一段时间,确认这些页面确实没有价值,再考虑是否屏蔽。
4. 限制筛选组合的生成
很多参数爆炸来自“任意条件都能叠加”。在产品层面可以限制:只让单个主筛选条件出现在可点击链接中,多条件组合页不主动生成入口,或者加上 noindex。列表的排序与视图切换可以保留参数,但不进入站点地图。
5. 站点地图与内链只放规范版本
站点地图里尽量只提交无参数或已确定要索引的版本。站内链接、面包屑、上一篇下一篇也应尽量指向规范 URL,避免自己制造出一堆参数入口。
自查清单
- 日志中带参数的请求占比是否异常偏高?
- 每个参数是否有明确用途,是否都生成了可点击的链接?
- 参数顺序不同是否会产生多个 URL,能否做参数排序规范化?
- 追踪参数是否混进了内链或分享链接?
- 不该索引的参数页,是否加了 noindex,而不是只靠 robots.txt?
- 站点地图里是否混入了参数页?
- 新上线的筛选功能,默认是否给所有组合都生成了可抓取链接?
这类问题不必一次全部解决,先处理量最大的那几类参数,通常就能看到抓取分布上的变化。比起一次性清理,定期复查更容易把问题控制在早期。