站点运营

站点运营:筛选与排序参数自查,别让蜘蛛在 URL 组合里空转

列表页的筛选、排序、视图切换和追踪参数,会悄悄把同一个内容放大成几十上百个地址。本文讲清楚参数 URL 从哪来、哪些值得被收录、哪些只是抓取消耗品,并给出一份可落地的自查清单与处理顺序,帮你把蜘蛛的注意力留在真正有内容的页面上。

站点运营

站点运营:筛选与排序参数自查,别让蜘蛛在 URL 组合里空转

做站点运营,很多人把注意力放在新页面怎么被更快发现上,却忽略了另一件更耗资源的事:站点自己在源源不断地生产 URL。列表页的筛选、排序、视图切换、每页条数、会话标识,每一项都可能让同一批内容对应出几十上百个地址。蜘蛛顺着这些链接爬,抓到的往往是高度重复的页面。

URL 膨胀是怎么发生的

假设一个列表页有 5 个筛选维度,每个维度有 8 个可选值,理论上能组合出三万多条 URL,而里面展示的内容大部分是重叠的。排序参数更典型:默认排序、价格升序、价格降序、销量排序、上架时间排序,只要这些是 HTML 里真实可点的链接,蜘蛛就会一个个爬过去。再叠加“每页显示 20/50/100 条”“列表视图/网格视图”这类参数,数量涨得比想象中快。

这些页面本身不算错误,问题在于它们会把抓取量摊薄。同一份内容被反复抓取,真正需要更新、需要被发现的页面反而排不上队。

先分清哪些参数代表内容

处理之前要先分类,思路大致是三种:

  • 内容型参数:用户会主动搜索这个组合,比如某个颜色加某个尺码,这类组合有独立需求,可能值得保留。
  • 排序与视图型参数:只改变了展示顺序或布局,内容没变,通常不需要被收录。
  • 追踪与会话型参数:utm 来源、会话 ID、ref 之类,对用户和蜘蛛都没有意义,属于纯噪音。

只有第一类存在被收录的理由,后两类基本是抓取预算的消耗品。

一份可执行的自查清单

  1. 在服务器日志里按查询字符串做统计:带问号的请求占总请求的比例是多少,出现频率最高的参数是哪些。
  2. 用站内搜索指令查一下自己域名下带参数的 URL 大概有多少条进入了索引。
  3. 打开列表页源码,确认筛选和排序是普通链接、按钮,还是表单或脚本提交。
  4. 检查站内搜索结果页是否可以被直接抓取和收录。
  5. 检查分页与筛选叠加后产生的 URL,例如同时带 page 和多个筛选条件的地址。

把这五项跑一遍,通常就能看出问题集中在哪几个参数上,不必对全站动手。

处理手段和它们的边界

能改链接形式就先改

排序、视图切换尽量用表单或脚本触发,不在 HTML 里生成可爬的链接。这一步成本最低,也不会带来屏蔽风险,属于优先项。

想清楚是要“少抓”还是“不收录”

这两个目标对应不同手段,混用容易出问题。robots.txt 屏蔽的是抓取,不是索引;被屏蔽的 URL 如果被外链引用,仍可能出现在搜索结果里,只是没有摘要描述。

如果目标是“不希望它被收录”,让页面自己返回 noindex 更可靠;如果目标是“减少抓取压力”,才考虑用 robots.txt 屏蔽。反过来,一旦用 robots 挡住了抓取,蜘蛛就读不到页面上的 noindex,两者很难同时生效。

canonical 指向主版本

对于保留下来的参数页面,可以在页面里把 canonical 指向无参数的主版本,帮助搜索引擎理解哪一个是代表地址。注意 canonical 是建议而不是强制指令,如果参数页本身有独立搜索需求,就不适合强行指向主版本。

站内搜索结果页建议单独处理

站内搜索产生的页面数量不可控,且内容随查询词变化,多数情况下没有独立价值,可以设置为不收录,同时保留用户正常使用。

会话与追踪参数在服务端忽略

如果条件允许,让服务端直接忽略这些参数,用户看到的地址更干净,也不会额外产生新 URL。

改完之后看什么

回到日志里看两个指标:带参数 URL 的抓取占比有没有下降,以及被收录的参数页数量有没有收敛。这类变化通常不是立刻发生的,蜘蛛需要一段时间重新评估,观察周期拉长一点更稳妥。

最后提醒一句:不要一次性把所有带参数的地址全部屏蔽。有些参数确实承载着用户的搜索需求,一刀切会把本来能带来访问的页面一起挡掉。建议先从日志里占比最高、内容重复最严重的几个参数动手,观察一段时间再做下一步决定。