搜索抓取

站内搜索页与筛选聚合页:自动生成的入口要不要留给蜘蛛

站内搜索页、筛选页和标签聚合页往往由系统自动生成大量 URL,容易占用抓取资源。本文梳理这些地址的来源,给出判断是否开放给蜘蛛的三个角度,并说明决定保留后如何收敛参数、分页与内链范围,最后用日志观察调整效果。

搜索抓取

站内搜索页与筛选聚合页:自动生成的入口要不要留给蜘蛛

站点上线一段时间后,抓取日志里常常会多出一批意料之外的地址:站内搜索结果页、带筛选条件的列表页、标签聚合页。它们没有人工维护,却数量庞大,而且彼此之间还能互相链接,形成一片看起来很深、实际内容高度重复的区域。要不要让蜘蛛走进这些入口,需要先弄清楚它们是怎么产生的。

这些地址是怎么被造出来的

站内搜索页通常来自搜索框:用户输入关键词,页面跳到带查询参数的地址。如果页面上还挂着筛选、排序、分页,同一个关键词很快能衍生出几十个 URL。筛选页同理,颜色、价格区间、排序方式任意组合,就得到一批结构相似、内容重叠的页面。标签聚合页则由内容系统按分类、作者或关键词自动生成。

问题不在于这些页面本身,而在于它们会占用抓取资源。蜘蛛在有限时间里能走的路径是有限的,如果大量时间花在翻动这类页面,留给真正需要更新的内容页的份额就会减少。

站内搜索结果页:一般不建议开放

站内搜索页的内容由用户输入决定,边界无法穷举。更麻烦的是,结果页之间还容易互相链接,形成“结果页指向结果页”的循环。常见的处理方式是:

  • 用 robots.txt 屏蔽搜索路径,或至少屏蔽带查询参数的版本;
  • 在搜索页 HTML 里加 noindex,避免被当作普通内容页处理;
  • 结果列表里的链接加上 nofollow,减少蜘蛛沿着结果继续扩散。

如果站内搜索本身就是一个重要的入口,也可以只开放少量固定关键词的静态结果页,其余参数一律挡住。

筛选与聚合页:分情况看

筛选页的价值差别很大。品牌、品类这类有稳定需求的筛选组合,可能确实需要被访问;纯粹按价格排序、按上架时间排序的组合,则基本没有独立价值。判断时可以从三个角度问自己:

  1. 这个筛选组合,用户会不会主动去搜?如果不会,它被访问的价值就很低。
  2. 页面上的商品或内容集合,和其他筛选组合是否高度重合?重合度越高,越接近重复内容。
  3. 这个地址是蜘蛛自然发现的,还是你主动挂在内链上的?只有自己挂上去的入口,才需要为后果负责。

决定保留之后,怎么把范围收住

如果判断某些聚合页确实要留下,重点就变成控制数量,而不是全部放行:

  • 限制可组合的参数,只保留白名单内的筛选维度,其余参数在服务端直接忽略;
  • 分页只开放前若干页,更深的页面对蜘蛛屏蔽,同时保证核心内容能从列表前几页走到;
  • 聚合页里指向详情页的链接保持稳定,避免每次请求都输出不同的链接顺序;
  • 给这些页面设置合理的缓存,减少蜘蛛反复请求时对服务器的压力。

观察一段时间再决定

处理完之后不要立刻停手。可以按周对照服务器日志,看两个指标:一是这些路径上的抓取请求占比有没有下降;二是剩下的抓取是否更多落在内容页上。如果屏蔽之后整体抓取量明显减少,而内容页并没有得到更多机会,说明屏蔽范围可能过大,需要逐条放开验证。

抓取路径的取舍没有统一答案,更多是“限制总量、保留必要入口”的平衡问题。少而稳定的入口,通常比铺得满天飞的聚合页更容易管理。