打开索引报告,发现收录里混着一堆带 ? 的地址,多数情况下不是搜索引擎擅自抓的,而是站点自己把这些链接递到了蜘蛛面前:商品筛选、排序切换、分享按钮带的 utm、站内搜索结果页,以及被自动生成的 sitemap 里带出的参数版本。
参数 URL 本身不是错误,问题在于它们通常指向与主版本高度相似的内容,一旦成规模被收录,会占掉索引里的位置,也会分散内链权重和抓取额度。
先分清楚是哪一类参数
- 跟踪参数:utm_source、gclid、from、spm 之类。它们不改变页面内容,只记录来源,正常情况下不应该出现在任何可抓取链接里。
- 排序与视图参数:sort=price、view=list、page=2。内容基本一致,只是排列或展示方式不同,多数不需要单独收录。
- 筛选参数:color=red、size=40。这类可能真的组合出有搜索需求的新页面,但也很容易生成成千上万个低质组合。
先改链接,再改标签
很多人的第一反应是给参数页加 noindex。但如果页面上仍然有大量指向参数版本的内部链接,蜘蛛还是会持续发现并抓取它们,只是抓完不收录,白白消耗抓取额度。更省事的顺序是:
- 把跟踪参数从站内所有链接中移除,分享链接在跳转时清理。
- 筛选、排序、视图状态尽量用前端状态保存,URL 保持不变;如果做不到,就让参数顺序固定、默认值不出现在 URL 里。
- 确认 sitemap 只包含规范版本,不带任何跟踪参数。
canonical 的用法与边界
对于确实需要可访问、但不需要单独收录的参数页,常见做法是让参数页自身指向无参数的规范版本,规范版本保持自指。有两点要注意:
- canonical 是建议而非指令。如果两个版本内容差异明显,或者站内大量链接指向参数版本,搜索引擎可能选择保留参数版本。
- 用 robots.txt 的 Disallow 屏蔽参数路径,会阻止蜘蛛读取页面里的 canonical 和 noindex,反而可能让 URL 以无摘要的形式留在索引里。要屏蔽抓取,先确认这些 URL 没有被外部链接指向。
能独立成页的筛选组合,值得留下
不是所有参数页都该收敛。如果某个筛选组合有稳定的搜索需求,页面上也有独立的标题、描述和足够内容,把它做成路径形式的独立页面(例如 /red-dress/ 而不是 ?color=red)会更清晰。判断标准很直接:这个页面如果单独存在,能不能给用户一个明确用途。
处理参数 URL 的核心不是让它们消失,而是决定哪些版本值得被索引,然后让链接、canonical、sitemap 三处说法保持一致。
自查清单
- 在索引报告里筛选带 ? 的 URL,看占比和近期增长趋势。
- 抽查几个参数页:内容与规范版本差异有多大,canonical 是否指向自己。
- 看服务器日志,参数页消耗了多少抓取次数,是否挤占了重要页面的抓取。
- 检查搜索框、筛选组件、分享按钮生成的链接是否带参数。
参数收敛通常需要一到两轮抓取周期才能看到变化,观察时以抓取比例和索引数量两条曲线为准,不要只盯着某一天的数字下结论。