站点运营

站点运营:URL 参数自查,别让筛选参数生成一堆重复页面

筛选、排序、跟踪参数会让同一批内容派生出大量地址,抓取预算被分散,真正需要更新的页面反而排在后面。本文梳理内容参数与附加参数的区别,给出跟踪参数清理、筛选参数处理的三种做法,以及一份可逐条执行的 URL 参数自查清单。

站点运营

站点运营:URL 参数自查,别让筛选参数生成一堆重复页面

做列表、筛选、排序的站点,URL 里往往挂着一串参数。对访客来说只是多点一下,对搜索引擎来说,同一批内容可能被拆成几十上百个地址。抓取预算是有限的,参数组合越多,蜘蛛越容易在低价值地址里兜圈子,真正需要更新的页面反而排在后面。下面说的是怎么把参数地址收一收,做法不复杂,但规则要提前想清楚,别今天屏蔽明天放开。

先分清内容参数和附加参数

判断标准只有一条:把参数去掉之后,页面主体内容是否发生变化。

  • 跟踪类:utm_source、utm_medium、ref、from、渠道标记等,去掉后内容完全一样。
  • 会话类:sessionid、sid、phpsessid,以及带时间戳的缓存参数,每次访问可能都不同。
  • 筛选类:分类、价格区间、排序方式、关键词查询,去掉后展示的内容确实不同。

前两类原则上不该出现在给搜索引擎的链接里,第三类才需要认真判断是否值得让它们单独存在。

跟踪参数最好从链接生成端解决

很多跟踪参数不是蜘蛛带进来的,而是站内链接自己带上的。检查模板文件、邮件推送、合作方投放链接,把站内互链里的跟踪参数去掉,比事后在服务端做拦截更省事。服务端如果还有一层兜底,可以按参数名做清理,但要注意别把筛选参数一起清掉。

筛选与排序页:三种处理方式,选一种并保持一致

  1. 交给 robots.txt 屏蔽:能拦住抓取,但拦不住索引。如果别处有链接指向这个地址,它仍可能出现在结果里,只是没有摘要。适合组合数量极大、几乎没人搜索的排序参数。
  2. 用 canonical 指向主版本:适合参数组合有实际搜索需求、内容也还不错的筛选页。注意 canonical 要指向真正对应的那一页,不要把所有筛选页都指向列表首页,那样等于告诉搜索引擎这些页都不算数。
  3. 用 noindex 明确排除:适合确实没必要出现在索引里的排序、视图切换页。noindex 需要页面能被抓取到才会生效,所以不能同时用 robots.txt 屏蔽。

同一个参数不要三种方式混着用。蜘蛛判断规则时的耐心,比你想象中要少。

自查清单

  1. 列出最近一段时间抓取日志里带参数的地址,按参数名归类,看哪些占了大量抓取次数却几乎没带来访问。
  2. 检查这些参数地址是否被站内链接、分页、面包屑带出来,能否从源头减少入口。
  3. 确认被保留的筛选页有独立标题、描述和稳定的内容,而不是换汤不换药。
  4. 检查 robots.txt 与 noindex 是否冲突,是否存在既屏蔽又指望它不收录的情况。
  5. 检查 canonical 是否指向了错误的地址,尤其是分页第二页之后是否误指向第一页。
  6. 确认参数顺序、大小写、默认值参数是否做过归一,例如排序参数默认值和显式写法是否算同一页。
  7. 留意空参数与无效参数,?color= 这类地址如果返回正常页面,同样会被当成独立地址。
调整参数策略后,建议连续观察两到三周的抓取日志,看看被保留的页面抓取频次有没有回升。如果改动后抓取总量反而下降,先回退最激进的那一条,再逐步排查。

几个容易忽略的细节

参数顺序不同会被当成两个地址,?a=1&b=2 和 ?b=2&a=1 需要统一。大小写不一致同理,?Sort=price 和 ?sort=price 最好归为一个。列表默认页通常不加参数,如果 ?page=1 能单独打开,也要考虑它和列表首页的关系。

最后提醒一句:参数治理不是一次性的活儿。新栏目上线、新筛选功能开发时,如果不顺手把参数规则定下来,过几个月又会堆出一批相似地址。把它写进上线检查项里,比事后翻日志省力得多。