带筛选和排序功能的站点,往往在内容量还没起来的时候,URL 数量就先膨胀了几十倍。原因不复杂:一个筛选页如果有五个维度,每个维度十个可选项,理论组合就是十万级。再叠加排序方式、每页条数、视图模式,实际生成的网址会远远超过站内真正有内容的页面数。
这类问题不会让网站立刻打不开,但会慢慢消耗抓取资源:蜘蛛在一个页面集合里反复进出,真正需要被发现的页面反而排在后面。下面按“先认清参数、再决定去留、最后验证效果”的顺序梳理一遍。
先看清楚站里到底有哪些参数
把最近一段时间的访问日志按 URL 去重,统计问号后面出现过的参数名,通常会看到几类:
- 内容相关参数:分类、品牌、价格区间、地区、标签,这类参数决定了页面上显示哪些内容。
- 排序与视图参数:sort=price、order=desc、view=list,只改变呈现顺序或样式。
- 分页参数:page=2、p=3 之类。
- 追踪与会话参数:utm_source、from、ref、sid,对页面内容没有任何影响。
- 无意义参数:时间戳、随机数、版本号,多出现在前端拼接或缓存刷新时。
分类之后,问题通常一目了然:真正有独立价值的参数只是少数,剩下的都是同一批内容的重复入口。
哪些参数值得保留,哪些该收住
可以考虑保留的
有稳定搜索需求、页面内容确实不同、并且能给出独立标题和描述的筛选组合,比如“城市 + 房源类型”“品牌 + 型号”。这类页面如果数量可控,保留下来对访客和抓取都有意义。
建议收住的
- 排序参数:同一批结果换个顺序,不构成新页面。
- 视图模式与每页条数:纯前端偏好,不改变内容集合。
- 追踪与会话参数:对访客和蜘蛛都没有信息量,最好在服务器或前端统一剥离。
- 空结果和只有一个结果的筛选页:既没有内容,也容易产生大量低质入口。
具体可以用哪些手段约束
- 统一规范版本。给每个内容集合固定一个不带排序、不带追踪参数的规范网址,页面上的 canonical 始终指向它,不要今天指 A 明天指 B。
- 站内链接只链规范版本。导航、面包屑、列表页里不要出现排序链接;如果排序必须存在,用按钮或表单提交,而不是可抓取的 a 标签。
- 给不该收录的页面加 noindex。排序页、视图切换页可以用 noindex, follow,让蜘蛛仍能顺着链接走到详情页,但不把它们当成独立结果。
- 谨慎使用 robots.txt。Disallow 只阻止抓取,不阻止 URL 被其他站点引用后出现在结果里;被屏蔽的页面也无法传递 noindex 信号。用之前先想清楚是想要“不抓”还是“不收录”。
- 控制筛选维度。能合并的维度合并,能限制多选的限制多选,从产品设计上减少组合数量,比事后清理省力得多。
- 处理空结果页。没有结果的筛选组合直接返回 404 或 410,比返回 200 的空页面更清楚。
用抓取数据和搜索表现验证
改完之后不要凭感觉判断。回到服务器日志,看带参数的请求在蜘蛛总请求里占多大比例,以及这些请求集中在哪些参数上。如果半个月后 order=、view= 这类请求明显下降,说明约束起了作用。
同时看看筛选页在搜索里带来了多少真实点击。多数情况下,排序页和视图页的点击接近于零,而少数核心筛选组合会持续有量。这个对比能帮你判断哪些参数值得继续维护。
参数本身不是问题,问题在于同一批内容被拆成几百个入口,让蜘蛛和访客都在原地打转。
落地检查清单
- 日志里统计过参数名和请求占比,知道问题出在哪里。
- 每个内容集合都有唯一确定的规范网址,canonical 指向一致。
- 排序、视图、追踪参数不出现在可抓取的链接中。
- 无内容价值的筛选页设置了 noindex,或被合理返回 404/410。
- robots.txt 的使用范围有明确理由,不是随手加一条。
- 改动后持续观察日志,确认参数请求占比确实下降。
这类调整不必一次做完。先处理量最大、最没价值的参数,观察一段时间,再决定下一步。比起一次性大改,小步迭代更容易看出哪一步真正有效。