站点运营

站点运营:筛选与排序参数自查,别让 URL 组合无限膨胀

筛选、排序、分页这些参数看着方便,却可能让同一批内容生成成千上万个 URL。本文梳理常见的参数陷阱,以及如何用 robots、canonical、站内链接约束和抓取日志,把抓取入口控制在可管理的范围内。

站点运营

站点运营:筛选与排序参数自查,别让 URL 组合无限膨胀

带筛选和排序功能的站点,往往在内容量还没起来的时候,URL 数量就先膨胀了几十倍。原因不复杂:一个筛选页如果有五个维度,每个维度十个可选项,理论组合就是十万级。再叠加排序方式、每页条数、视图模式,实际生成的网址会远远超过站内真正有内容的页面数。

这类问题不会让网站立刻打不开,但会慢慢消耗抓取资源:蜘蛛在一个页面集合里反复进出,真正需要被发现的页面反而排在后面。下面按“先认清参数、再决定去留、最后验证效果”的顺序梳理一遍。

先看清楚站里到底有哪些参数

把最近一段时间的访问日志按 URL 去重,统计问号后面出现过的参数名,通常会看到几类:

  • 内容相关参数:分类、品牌、价格区间、地区、标签,这类参数决定了页面上显示哪些内容。
  • 排序与视图参数:sort=price、order=desc、view=list,只改变呈现顺序或样式。
  • 分页参数:page=2、p=3 之类。
  • 追踪与会话参数:utm_source、from、ref、sid,对页面内容没有任何影响。
  • 无意义参数:时间戳、随机数、版本号,多出现在前端拼接或缓存刷新时。

分类之后,问题通常一目了然:真正有独立价值的参数只是少数,剩下的都是同一批内容的重复入口。

哪些参数值得保留,哪些该收住

可以考虑保留的

有稳定搜索需求、页面内容确实不同、并且能给出独立标题和描述的筛选组合,比如“城市 + 房源类型”“品牌 + 型号”。这类页面如果数量可控,保留下来对访客和抓取都有意义。

建议收住的

  • 排序参数:同一批结果换个顺序,不构成新页面。
  • 视图模式与每页条数:纯前端偏好,不改变内容集合。
  • 追踪与会话参数:对访客和蜘蛛都没有信息量,最好在服务器或前端统一剥离。
  • 空结果和只有一个结果的筛选页:既没有内容,也容易产生大量低质入口。

具体可以用哪些手段约束

  1. 统一规范版本。给每个内容集合固定一个不带排序、不带追踪参数的规范网址,页面上的 canonical 始终指向它,不要今天指 A 明天指 B。
  2. 站内链接只链规范版本。导航、面包屑、列表页里不要出现排序链接;如果排序必须存在,用按钮或表单提交,而不是可抓取的 a 标签。
  3. 给不该收录的页面加 noindex。排序页、视图切换页可以用 noindex, follow,让蜘蛛仍能顺着链接走到详情页,但不把它们当成独立结果。
  4. 谨慎使用 robots.txt。Disallow 只阻止抓取,不阻止 URL 被其他站点引用后出现在结果里;被屏蔽的页面也无法传递 noindex 信号。用之前先想清楚是想要“不抓”还是“不收录”。
  5. 控制筛选维度。能合并的维度合并,能限制多选的限制多选,从产品设计上减少组合数量,比事后清理省力得多。
  6. 处理空结果页。没有结果的筛选组合直接返回 404 或 410,比返回 200 的空页面更清楚。

用抓取数据和搜索表现验证

改完之后不要凭感觉判断。回到服务器日志,看带参数的请求在蜘蛛总请求里占多大比例,以及这些请求集中在哪些参数上。如果半个月后 order=、view= 这类请求明显下降,说明约束起了作用。

同时看看筛选页在搜索里带来了多少真实点击。多数情况下,排序页和视图页的点击接近于零,而少数核心筛选组合会持续有量。这个对比能帮你判断哪些参数值得继续维护。

参数本身不是问题,问题在于同一批内容被拆成几百个入口,让蜘蛛和访客都在原地打转。

落地检查清单

  • 日志里统计过参数名和请求占比,知道问题出在哪里。
  • 每个内容集合都有唯一确定的规范网址,canonical 指向一致。
  • 排序、视图、追踪参数不出现在可抓取的链接中。
  • 无内容价值的筛选页设置了 noindex,或被合理返回 404/410。
  • robots.txt 的使用范围有明确理由,不是随手加一条。
  • 改动后持续观察日志,确认参数请求占比确实下降。

这类调整不必一次做完。先处理量最大、最没价值的参数,观察一段时间,再决定下一步。比起一次性大改,小步迭代更容易看出哪一步真正有效。