很多站点的 URL 参数是“自然长出来”的:投放同事加 utm、产品加筛选排序、前端加会话标识,几年下来同一个列表页可能有几十种参数组合。对访客来说只是地址长一点,对搜索引擎来说却是几十个内容几乎相同的地址,抓取预算、收录判断和流量统计都会受到影响。下面整理一套可落地的参数治理思路。
一、先分清:哪些参数是真需求,哪些是噪音
治理的第一步不是动手屏蔽,而是把参数分类,因为不同类别的处理方式完全不同。
- 追踪类:utm_source、utm_medium、gclid、fbclid 等,不改变页面内容,属于最该被规范化的一类。
- 筛选排序类:?color=red、?size=40、?sort=price 等,会改变页面呈现的内容,是否要被抓取取决于这些组合本身有没有搜索需求。
- 分页类:?page=2、?p=3,属于正常导航的一部分,通常不该屏蔽。
- 会话与随机类:sessionid、sid、时间戳、随机数,每次访问都不同,最容易制造出无穷无尽的地址。
- 功能类:?print=1、?preview=1、?ref=xxx,多数没有独立价值。
二、几种处理手段,各自适合什么场景
1. canonical 指向规范地址
对内容相同、只是参数不同的页面,在参数页输出指向无参数版本的 canonical,是最省事也最安全的做法。注意 canonical 要指向真实可访问的地址,不要指向 404 页面或需要登录才能看到的页面。
2. robots.txt 屏蔽,要谨慎使用
Disallow 能阻止抓取,但被屏蔽的 URL 依然可能因为外链而被收录,只是没有内容摘要。如果这个参数页本身有价值,屏蔽反而会让它失去被发现的机会。只对确认无用、且数量可能无限增长的参数(比如会话 ID、随机排序值)使用。另外,屏蔽规则写得太宽,例如直接写 Disallow: /*?,很可能连正常的筛选路径一起挡掉。
3. 从源头减少参数
- 追踪参数只在投放落地页出现,站内跳转时统一去掉。
- 筛选结果能用静态路径就不要用参数,例如 /phone/black/ 优于 ?color=black。
- 会话标识优先用 Cookie 承载,不要写进 URL。
- 排序、视图切换等纯展示类参数,尽量用前端交互处理。
4. 301 重定向到规范版本
对于已经产生外链、但确实不需要独立存在的参数页,可以做 301 跳转到规范地址。注意别做成链式跳转,也别让跳转目标又跳回来,否则蜘蛛和访客都要多绕几圈。
三、一套可执行的治理流程
- 从服务器日志或搜索后台导出近 30 天被访问的带参数 URL,按参数名归类,统计各自数量。
- 给每个参数打标签:保留、canonical、屏蔽、重定向,写成清单存档。
- 先在测试环境验证规则,确认没有误伤列表页、搜索结果页等正常功能。
- 上线后观察 2–4 周,对比抓取量与带参数 URL 数量的变化。
- 把这份清单写进发布流程,新加参数前先过一遍。
四、几条容易踩的坑
- 用 robots.txt 屏蔽 ?page= 或 ?sort=,结果分页和排序页里的内容再也没机会被发现。
- canonical 全站无差别指向首页,等于告诉搜索引擎所有页面都是首页的副本。
- 参数页和规范页同时可访问、都返回 200,彼此之间又没有任何关联信号。
- 只在 robots.txt 里屏蔽,却没有在站内链接里去掉参数,导致蜘蛛反复撞墙。
参数治理不是一次性任务。站点功能一改,参数就可能多出来几个。定期(比如每季度)复查一次日志里的参数分布,比出问题后再回头找原因要省事得多。