很多站点在运营一段时间后,会发现索引里多出一批带问号的 URL:筛选、排序、追踪、会话参数层层叠加。搜索蜘蛛一旦在站内链接、sitemap 或外链中发现了这些地址,就可能持续抓取。它们不一定都有独立内容,却会消耗抓取预算,并制造重复内容。处理参数 URL 的关键,不是全部屏蔽或全部放行,而是先分清参数类型,再决定收录取舍。
先分清参数的类型
同样是问号后面的内容,作用差别很大。可先按下面几类去看:
- 筛选参数:如颜色、尺寸、品牌、价格区间。若筛选结果有稳定搜索需求,且页面能正常访问,可能值得收录。
- 排序参数:如按价格、销量、上架时间排序。通常只是同一批商品的顺序变化,内容重复度高。
- 分页参数:如 page=2、page=3。是否收录已有单独讨论,这里只关注它不要和筛选参数混在一起。
- 追踪参数:如 utm_source、from、ref。用于统计来源,不改变页面内容。
- 会话参数:如 sessionid、sid。每个用户不同,最容易制造大量重复 URL。
哪些可以放行,哪些应收口
判断标准可以回到“这个 URL 是否对应一个独立、稳定、对用户有意义的页面”。有独立内容价值的筛选页,可以保留收录:它有固定路径、独立标题、可正常渲染,并且站内导航能稳定指向它。相反,排序参数、追踪参数、会话参数通常不产生新内容,适合收口到基础 URL。
收口不代表粗暴删除。更稳妥的做法是:站内链接尽量只暴露规范地址;对已经存在的参数 URL,用 canonical 指向基础页;如果参数会动态生成无限组合,再考虑在 robots.txt 中屏蔽抓取。注意,robots.txt 是抓取屏蔽,不是索引屏蔽;被屏蔽的 URL 仍可能因外链被索引,且 noindex 标签不会被看到。
处理顺序:先内链,再 canonical,最后才考虑屏蔽
很多参数 URL 之所以被大量发现,是因为站内链接本身就在传播它们。比如筛选按钮直接输出新 URL,分页链接带上排序参数,分享按钮附加追踪参数。搜索蜘蛛顺着这些链接走,自然会把参数页抓一遍。所以处理顺序建议如下:
- 检查站内链接:导航、面包屑、列表页、分页链接是否携带不必要的参数。
- 统一规范地址:让基础页成为 canonical,参数页尽量不参与内链循环。
- 合并重复入口:多个参数组合指向同一内容时,考虑 301 到基础页或规范筛选页。
- 再决定是否屏蔽抓取:如果参数组合无限且无内容价值,用 robots.txt 减少抓取,但不要和 noindex 混用。
- 观察日志与索引状态:看搜索蜘蛛是否还在抓参数 URL,索引里是否还有重复页面。
一个常见误区:先给参数页加 noindex,又在 robots.txt 里屏蔽。抓取被阻止后,noindex 无法被读取,页面可能长期留在索引里。
追踪参数与会话 ID 要单独处理
追踪参数和会话 ID 通常由统计工具、广告链接或登录逻辑生成。它们不应该出现在站内链接中。若站外投放带来了带追踪参数的地址,可以在服务器端或前端做一次跳转,把用户和搜索蜘蛛带到不带参数的规范 URL。这样既保留统计,又减少重复 URL 被发现。
会话 ID 更要注意。如果每个访问者都会生成不同 URL,搜索蜘蛛每次抓取都可能发现新地址,抓取预算会被大量消耗。优先检查服务器配置和 CMS 设置,尽量不用 URL 传递会话信息。
一份可执行的自查清单
- 从服务器日志中抽样一周,看看带问号的 URL 被抓取的比例和频率。
- 在搜索控制台的索引状态里,检查参数 URL 是否被标记为重复或已发现未抓取。
- 用 site: 查询或索引工具抽查,看参数页是否和基础页抢同一批词。
- 检查 canonical 是否指向自己、指向基础页,还是互相冲突。
- 确认 sitemap 中没有混入无意义的参数 URL。
- 调整后,给搜索蜘蛛留出重新抓取和索引刷新的时间,不要频繁改动规则。
参数 URL 的处理没有一套固定答案。核心是先看内容价值,再看抓取预算。能放行的,保证它稳定、唯一、可访问;该收口的,用内链、canonical 和跳转逐步减少发现和抓取。规则简单一致,比一次性堆很多屏蔽指令更容易被搜索蜘蛛正确理解。