不少站点的抓取日志里,占比最高的往往不是正文页,而是一串带问号的地址:站内搜索结果、排序方式、价格区间、品牌筛选、时间范围。这些页面由程序自动生成,组合数量可以无限延伸,蜘蛛顺着一个链接进来,就可能带走几千上万条地址。抓取配额是有限的,被这类页面吃掉一部分之后,真正需要更新的内容反而排不上队。
先分清两类页面
站内搜索页是用户输入关键词后生成的结果页,地址里通常带 q 或 keyword 参数。筛选与排序页是列表页叠加条件后的形态,比如颜色、排序、页码同时出现。两者看起来都是列表,性质却不同:搜索页的关键词来自用户,几乎无穷;筛选页的维度由站点自己定义,是可以收窄的。
从日志里找证据
判断问题是否存在,不用凭感觉,先看几项指标:
- 带参数的地址在抓取总量中占多少比例;
- 同一个搜索参数出现了多少种不同取值;
- 排序与页码参数是否被反复抓取;
- 这些地址返回的状态码是 200,还是 404、301;
- 抓取时间与页面最后更新时间是否对得上。
如果某个筛选条件被反复抓取,但每次返回的内容几乎一样,这批地址基本就是在消耗资源。
处理顺序:先止损,再收敛,最后决定留谁
- 内部链接自查。导航、面包屑、正文里是否直接链到搜索页或排序地址。先断掉这些入口,比改代码见效快。
- 搜索页统一加 noindex。让蜘蛛可以抓取、可以读到标签,但不进入索引。
- 筛选页定维度。只保留内容确有差异的少数组合,其余组合用 canonical 指回主列表页。
- 排序参数规范化。排序通常不该产生独立页面,建议用前端切换,或统一指向默认排序。
- 留一个观察周期。过一段时间再看日志,确认带参数的抓取占比是否下降。
noindex 和 robots 屏蔽别叠着用
被 robots.txt 屏蔽的页面,蜘蛛拿不到页面内容,也就读不到页面里的 noindex。结果可能是地址仍留在索引中,只是描述变空。想让它退出索引,就让它可抓但加 noindex;想省抓取配额,就用 robots 屏蔽。同一批地址上,这两件事不要同时做。
筛选维度怎么定才算合理
判断标准不是“这个筛选好不好用”,而是“这个组合有没有独立的内容价值”。颜色、尺码这类维度拼出来的结果页,内容与主列表高度重合;而“某个城市加某个品类”“某个价位段加某类产品”这种组合,如果确实对应着具体内容和介绍文字,做成可索引页面才有意义。数量上宁少勿多,先做十几个验证,看它们有没有稳定的自然流量,再考虑扩展。
一份可执行的检查清单
- 搜索页是否已加 noindex;
- 站内是否还有指向搜索结果的链接;
- 排序参数是否生成了独立可抓地址;
- 筛选组合是否设了上限;
- 同一批内容是否会在多个筛选组合里重复出现;
- 日志中带参地址的占比是否下降。
这件事不需要一次改完。先看日志确认问题存在,再按“断内链、加标签、收维度”的顺序推进,每改一步留一段时间观察抓取变化。搜索页和筛选页对访客本身是有用的,不必删掉,关键是别让它们成为蜘蛛进入站点的主要入口。