参数页是从哪里冒出来的
很多站点在改版或上线筛选功能时,只考虑了用户体验,没有考虑地址的生成方式。用户点一次排序、换一次视图、叠加一个筛选项,URL 就多出一段参数。站内搜索、分页、排序、每页条数、跟踪参数、会话 ID 加在一起,组合数量会迅速膨胀。
蜘蛛顺着内链爬,很容易把这些地址一条条抓走。结果是真正的内容页分到的抓取次数变少,索引里混进大量内容相近的页面,日志也越来越难读。
先把参数分个类
- 内容型参数:决定页面主体展示什么,比如分类筛选、关键词搜索。这类参数可能对应真实的用户需求。
- 视图型参数:排序方式、每页条数、列表与卡片切换。多数情况下只改变呈现顺序,不改变内容集合。
- 追溯型参数:utm、ref、广告点击 ID、会话标识。对用户和搜索系统都没有独立价值。
分类的意义在于:不同类别用不同手段处理,而不是一刀切全屏蔽。
内容型参数要看需求是否稳定
如果某个筛选组合确实有持续的搜索需求,且结果集相对稳定,可以考虑保留为可抓取地址,并单独写好标题与描述。如果筛选结果随库存频繁变动、或者内容主要由其他页面拼凑而成,就不适合放开。
视图型与追溯型尽量不进抓取
排序参数可以用 canonical 指回默认排序地址;视图切换优先用客户端交互实现,避免产生新地址;utm 一类参数可以在服务器或 CDN 层做规范化处理;会话标识尽量不要用 URL 承载。
常见的几种处理手段
- robots.txt 屏蔽:适合明确无价值的参数。注意被屏蔽的地址仍可能被外链带出来,只是无法传递有效信号,通配范围要谨慎。
- canonical 指向主地址:适合参数不影响主体内容的情况,等于告诉搜索系统以无参数版本为准。
- noindex:适合想保留给用户使用、但不想进入索引的页面,比如站内搜索结果页。注意 noindex 页面依然会被抓取。
- 限制筛选维度:只允许单选、限制可叠加的维度数量、取消无结果的空组合,这是从源头减少组合爆炸的办法。
- 参数顺序统一:同一组条件因为书写顺序不同而产生多条地址,属于典型浪费,最好在生成链接时固定顺序。
自查清单
- 站内是否允许任意参数组合直接进入内链
- 排序、每页条数、视图切换是否都会生成新地址
- 筛选条件是否支持多选无限叠加
- 参数书写顺序不同是否被当成不同页面
- 站内搜索结果页是否有 noindex 或屏蔽规则
- sitemap 中是否误收了带参数的地址
- 分享、外链中是否混入跟踪参数并被大量引用
- 移动端与桌面端生成的参数形式是否一致
改完以后怎么验证
最直接的办法还是看服务器日志。按问号统计请求量,观察带参数地址在总抓取请求中的占比,以及这些请求是否集中在少数几个组合上。如果参数地址长期占据大部分抓取次数,说明治理还没有到位。改动上线后隔一段时间再看趋势,不需要盯着一天的数据下结论。
参数治理不是把参数全部屏蔽掉。屏蔽过宽会连带挡住正常页面,尤其是用参数承载栏目结构的站点。调整前先小范围验证,确认没有误伤再逐步放开范围。