列表页加一排筛选条件、一个排序下拉,用户找东西通常更快,但搜索引擎蜘蛛顺着这些链接走进去,会发现一批内容高度相似的 URL:同一批商品按价格排序、按颜色筛选、带上追踪参数……这些地址本身不算错误,问题在于被发现得太多,会挤占站点本就有限的抓取资源。
参数 URL 是怎么被蜘蛛发现的
常见入口大致有几类:
- 筛选条件写成可点击的 a 链接,蜘蛛会逐个跟进;
- 排序功能用链接实现,每点一次都产生一个新地址;
- 站内搜索结果页被用户复制分享,或被外站引用;
- 页面链接由 JS 拼接,渲染完成后同样可能被读取。
判断标准其实很简单:只要在 HTML 里以可点击链接的形式出现,蜘蛛就有机会走进去。按钮、表单提交、纯 JS 事件通常不会额外产生被抓取的 URL,除非它们最终输出了可链接的地址。
为什么不能放任不管
参数页大多只是同一批内容的重新排列,对用户有价值,对索引却容易造成重复。当这些地址大量进入待抓取队列,直接后果是:
- 抓取资源被分散,新发布的规范页面反而排在后面;
- 日志里出现大量相似抓取记录,排查问题变困难;
- 部分参数页被抓取后进入索引,与主页面争抢展示。
注意,这里说的不是“参数页必须全部封掉”,而是要让蜘蛛把精力放在值得收录的地址上。
先分清哪些参数值得保留
- 有真实检索需求的组合:比如品牌、颜色、尺码这类用户会主动搜索的筛选维度,其中一部分可以保留为可收录的落地页。
- 只是排序或视图切换:按价格、销量、上架时间排序,一般不构成独立内容。
- 会话与追踪参数:utm、来源标记、session id 之类,对抓取没有帮助。
- 分页参数:保留,但要注意与规范形态的配合,别让翻页链接无限制地扩散。
收口的几种做法
从链接出口控制
最直接的一步是改链接本身的形态。排序、视图切换改用按钮或表单提交,不再生成可点击地址;确实需要保留的筛选链接,限制维度组合,避免出现三层以上嵌套。站内搜索的结果页链接,一般不建议作为普通入口暴露给蜘蛛。
robots.txt 要谨慎使用
用 Disallow 拦住参数路径,能减少一部分抓取,但被拦下的 URL 仍然可能因为外链而被索引,只是内容无法被抓取判断。所以它更适合用来处理确实不需要抓取的路径,而不是当作万能开关。
用 canonical 表态
对保留下来的筛选落地页,如果内容与主列表高度重合,可以在页面上声明规范地址,让蜘蛛知道哪个版本才是主体。canonical 是提示而非强制,所以前提是页面本身不要互相矛盾。
Sitemap 只提交规范形态
站点地图里尽量只放确定要收录的地址,不要把所有参数组合都塞进去。提交的样本越干净,蜘蛛对站点结构的判断越清晰。
站内搜索页单独处理
搜索结果页数量不可控,通常建议加 noindex,同时用 robots.txt 阻止抓取。两者结合,既避免索引,也减少抓取消耗。
建议的处理顺序
- 先看服务器日志,确认哪些参数组合真的在被抓、频率如何;
- 区分需要保留和需要收口的参数,列一份清单;
- 改链接出口,把排序、视图切换这类操作从链接改成交互控件;
- 对保留页面加 canonical,明确规范形态;
- 更新 robots.txt 与 Sitemap,只保留必要路径;
- 持续观察两到四周日志,确认抓取分布是否朝预期方向变化。
不要一次性把所有参数路径全禁掉,先小范围调整,再根据日志反馈决定下一步。参数治理是随业务变化反复调整的过程,不是一次性的开关。
站点功能会不断更新,新的筛选维度、新的排序方式都可能带来新的参数 URL。把这件事放进定期巡检的清单里,比事后集中处理要轻松得多。