网站收录

带参数的 URL 该不该收录:筛选、排序与追踪链接的处理顺序

筛选、排序、追踪参数会生成大量 URL 变体,处理不当会让索引里多出一批内容雷同的页面。本文按参数来源分三类,说明哪些可以保留、哪些应重定向或规范化,并给出内链控制、301、canonical 与 noindex 的处理顺序和验证方法。

网站收录

带参数的 URL 该不该收录:筛选、排序与追踪链接的处理顺序

站内筛选、排序、广告追踪这些功能,都会在 URL 后面挂上参数。对用户来说方便,对搜索引擎来说,可能意味着同一个页面出现了十几个可访问地址。参数 URL 要不要收录,不能一刀切,先看它有没有独立价值,再决定收口方式。

参数 URL 通常从哪来

把站内链接翻一遍,常见的参数大致分三类:

  • 功能参数:筛选(?color=red)、排序(?sort=price_asc)、分页(?page=2)。这类页面通常由用户主动操作产生,内容会随参数变化。
  • 追踪参数:utm_source、gclid、fbclid、from=wechat 等。它们不改变页面内容,只用于统计来源。
  • 会话与临时参数:sessionid、sid、timestamp、随机缓存标记。这类参数对用户和搜索引擎都没有意义。

三类参数混在一起时,URL 组合会迅速膨胀。一个列表页加上颜色、尺寸、排序、页码,很容易生成几百个入口。

搜索引擎会怎么处理

搜索蜘蛛发现带参数的链接后,通常会先抓取一部分。如果参数页面内容与原页面高度相似,搜索引擎可能选择忽略参数、归并到主版本,也可能把参数版本单独收录。具体行为并不固定,所以不建议把收口完全交给算法判断。

参数本身不是问题,参数带来的重复内容和抓取消耗才是。

先判断:这个参数页面有没有独立价值

处理之前,先给参数页分堆。

可以保留的参数

  • 筛选组合本身是用户常见需求,比如“城市 + 户型 + 价格区间”,并且页面有独立标题、描述和可读内容。
  • 分页参数指向不同批次的内容,第 2 页有独立收录价值。
  • 站内搜索结果的参数页面通常不建议收录,除非你已经为它做了独立优化。

应当收口的参数

  • 追踪参数:utm_*、gclid、fbclid、来源标记。
  • 会话与随机参数:sessionid、sid、时间戳。
  • 排序参数:同一批内容换个顺序,不产生新页面。
  • 容易被爬虫无限组合的筛选参数:多选叠加、空值组合。

处理顺序:从影响小的做法开始

  1. 内链和站点地图只放干净 URL。站内跳转尽量使用无追踪参数的地址,减少蜘蛛发现参数入口的机会。
  2. 追踪参数用 301 或规范化处理。如果参数不影响内容,可以让带追踪参数的 URL 重定向到无参数版本,或者在页面 head 里用 canonical 指向主版本。
  3. 排序、会话参数优先重定向。这类参数没有独立内容,301 到默认列表页比 canonical 更直接。
  4. 筛选参数按价值决定。有独立价值的保留,但每一组可索引筛选都要有明确入口和 canonical 自指;没有独立价值的,用 robots.txt 屏蔽抓取或加 noindex。
  5. 分页参数保持可抓取。分页不要用 robots.txt 屏蔽,也不要在第 2 页加 canonical 指向第 1 页,这样容易让后续内容失去被抓取的机会。

注意 robots.txt 控制的是抓取,不是索引。如果参数 URL 已经被外链指向,屏蔽抓取后仍可能出现在索引里,只是没有摘要。要让它退出索引,需要配合 noindex 或 301。

几个容易踩的点

  • canonical 指向了带参数的 URL。检查模板输出,别让 canonical 跟着当前 URL 走,把 utm 参数也带进去。
  • JS 筛选直接改写地址栏。用 pushState 生成大量可访问 URL,蜘蛛执行脚本后可能逐一发现,需要在路由层做收口。
  • 筛选和分页叠加。?color=red&page=5 这样的组合,如果没有独立内容,建议只保留一种参数维度。
  • 站内搜索页被大量外链。搜索结果页参数多、内容重复,通常不值得收录,发现后尽早加 noindex。

怎么验证收口有没有生效

  • 看服务器日志里带参数请求的占比,如果持续偏高,说明蜘蛛还在反复抓取这些地址。
  • 在 Search Console 的覆盖率报告里,关注“已排除”中与参数相关的分类是否在下降。
  • 随机抓几个参数 URL,检查返回状态码、canonical 和页面标题是否与预期一致。

参数 URL 不是一律要屏蔽。先分清哪些有独立价值,再按“内链控制—重定向—canonical—noindex”的顺序逐层处理,比一次性全站屏蔽更稳妥,也更容易在后续排查中定位问题。