网站收录

URL 参数与收录:追踪、筛选、会话三类参数该怎么处理

带参数的 URL 在站内很常见,追踪、筛选、会话三类参数对收录的影响并不相同。本文说明如何区分它们,并给出内链清理、canonical、noindex 与 robots.txt 的使用顺序,减少同一份内容被拆成多个可抓取地址。

网站收录

URL 参数与收录:追踪、筛选、会话三类参数该怎么处理

做站内运营时,很容易在链接后面顺手加一串参数:投放渠道带 utm_source,分享按钮带 share_token,后台报表带 ref,列表页带排序和筛选条件。对用户来说这些地址打开的是同一篇文章,但在搜索引擎眼里,它们是不同的 URL。如果不做区分,同一份内容可能被拆成很多版本参与抓取和收录。

先把参数分成三类

1. 追踪参数

常见的有 utm_source、utm_medium、utm_campaign、gclid、fbclid、ref、from、spm 等。它们只记录来源,不改变页面内容,是重复 URL 的主要来源。

2. 筛选与排序参数

例如 ?color=red、?price=100-200、?sort=new。这类参数通常会改变页面上展示的结果,可能对应真实的搜索需求,不能一概当成垃圾处理。

3. 会话与分页参数

PHPSESSID、sid 这类会话标识会为每个访客生成一个新的 URL,属于需要优先清理的类型;page=2 这类分页参数则是正常内容的一部分,一般保留。

参数 URL 多了会怎样

  • 同一内容出现多个地址,搜索引擎需要自己挑一个作为代表版本;
  • 收录量看起来变大,实际有效页面没有增加,反而稀释了页面信号;
  • 抓取量被大量重复地址占用,新内容和真正需要更新的页面排队更久;
  • 筛选条件可以自由组合时,可能生成成百上千个近似空结果的地址。

处理顺序建议

  1. 内链和站点地图只写干净 URL。追踪参数放在外部渠道、广告落地页和邮件里,不要写进站内导航、正文链接和 sitemap。
  2. 会话 ID 改到 Cookie。让 URL 不随访客变化,这是最省事的做法。
  3. 内容相同的带参地址,用 canonical 指向无参版本。canonical 要写绝对地址,并且目标页面本身能正常访问、返回 200。
  4. 筛选页按质量取舍。有真实搜索量、结果内容充实的筛选组合,可以保留并让它们自指 canonical;只是把参数随便拼出来的组合页,可以设置 noindex,或者干脆不生成可抓取的链接。
  5. 谨慎使用 robots.txt 屏蔽带参地址。屏蔽抓取可以省下抓取预算,但被屏蔽的 URL 上写的 canonical 和 noindex 也不会被读到,容易让旧地址长期停留在索引里。
判断一个参数要不要处理,最简单的标准是:它会不会真的改变用户在页面上看到的主要内容?不会,就收敛到一个地址;会,就当成独立页面来判断质量。

怎么确认问题存在

在服务器日志里按 URL 统计,看带参数地址的抓取占比;在收录结果里搜索 utm_source、ref 之类的关键词,看是否有带参地址被收录;再看后台的抓取统计,确认重复抓取是否在挤占正常页面的空间。三步做完,基本能判断问题出在追踪参数、筛选参数还是会话参数上。

几个容易踩的坑

  • 把所有带参数的地址一律 301 到无参版本,连带把有真实需求的筛选页也砍掉;
  • canonical 写成相对路径,或者指向一个本身带参数的地址,等于没写;
  • 只改了 robots.txt,站内链接和 sitemap 里的带参地址没有同步清理;
  • 以为加了 canonical 就一定会被采纳,忽略了页面本身的内容质量和内链是否一致。

参数本身没有对错,问题在于同一份内容是否被拆成了多个可抓取的地址。先分类、再收敛,通常比一刀切屏蔽更稳妥。