站点运营

站点运营:搜索蜘蛛的URL发现,从站内搜索与筛选结果的索引污染谈起

站内搜索与筛选组合会产生近乎无穷的URL,稀释搜索蜘蛛对内容页的抓取机会。本文梳理这类页面失控的常见成因,给出robots.txt、noindex、canonical与参数收敛的取舍思路,并附一份可执行的排查清单。

站点运营

站点运营:搜索蜘蛛的URL发现,从站内搜索与筛选结果的索引污染谈起

不少站点运营者第一次去翻服务器日志时,会看到大量形如 /search?q=关键词/list?color=red&size=l&page=3 的访问记录,而且抓取频次不低。这些地址大多不是编辑主动发布的,而是用户在站内搜索、勾选筛选条件时自然生成的链接。它们对用户当下有用,对搜索引擎却往往是负担。

核心矛盾在于:站内搜索与筛选的组合几乎是无穷的,而抓取资源是有限的。当一个站点的可抓取 URL 中绝大部分都是这类低价值页面时,真正需要被发现的栏目页和内容页,拿到的抓取机会就会被稀释。

这类 URL 为什么会失控

常见的成因有几个。搜索框提交后直接把关键词写进 URL,用户每搜索一次就产生一个新地址;筛选器用查询参数表达,颜色、尺码、排序方式可以任意组合;列表页的排序方式(价格升序、销量降序)各自对应一个 URL。这些入口本身都是合理的交互设计,问题出在它们没有边界。

还有一种隐蔽的情况:站内搜索结果页里又列出了指向其他搜索结果的链接,比如“相关搜索”“大家还在搜”。蜘蛛顺着走,就会在搜索页之间来回打转,越抓越多。

先判断它到底是不是问题

不是所有带参数的 URL 都值得处理。判断依据主要有三个:

  • 抓取频次:这类 URL 是否占据日志中相当大的比例,并且持续存在。
  • 内容重复度:不同参数组合出来的页面,正文内容是否高度雷同。
  • 是否有搜索流量:其中是否有一部分页面本身能带来稳定的自然搜索访问。

如果前两条成立、第三条不成立,通常就值得动手收敛;如果某些筛选组合确实有稳定的搜索需求,贸然封堵反而会丢掉流量。

几种处理手段与取舍

robots.txt 屏蔽

在 robots.txt 中禁止抓取搜索路径,是最省事的做法。要注意的是,被屏蔽的页面蜘蛛不再抓取,页面上的内链和外链也不会被继续跟进。假如搜索结果页里恰好有指向重要内容的链接,这条路会被一起切断。因此屏蔽前先确认这条路径上不存在你希望被发现的入口。

noindex 与 canonical

如果希望蜘蛛仍能抓取、但不希望页面进入索引,可以在页面级别使用 noindex。这种方式保留了抓取通道,代价是仍然消耗抓取资源。canonical 则适合处理“同一批内容的多种排序方式”,把它们指向默认排序的列表页。两者目标不同:一个是退出索引,一个是合并信号,不要混用。

收敛入口与参数

更彻底的做法是从产品层面减少 URL 的产生。比如搜索结果的 URL 只保留关键词参数,排序和分页共用一套规则;筛选条件设置可选范围的上下限;不在搜索结果页里放“相关搜索”这类循环链接。这类改动需要前后端配合,但收益是长期的。

筛选页要区别对待

电商类站点的筛选页常常有真实搜索需求,比如“某类目 + 某材质”。处理时可以考虑把稳定、有量的筛选组合固定下来,做成独立的静态路径,并纳入站点地图;而任意组合的临时筛选,则通过参数限制或 noindex 控制。关键是给出一个明确的边界,而不是一刀切。

不要连有意义的路径一起堵

处理这类问题时最常见的失误,是把规则写得太宽。例如用通配符屏蔽了所有带问号的 URL,结果连分页、文章页的追踪参数也被挡在外面。建议规则尽量精确到路径前缀,上线后在日志里持续观察,确认正常的列表页和内容页抓取量没有下滑。

一份检查清单

  1. 导出近一个月的访问日志,按 URL 模式聚合,统计带参数访问的占比。
  2. 抽样检查这些页面,确认正文是否重复、是否有实际搜索流量。
  3. 在 robots.txt 或页面标签层面给出处理规则,注意规则的作用范围。
  4. 清理搜索结果页内部指向其他搜索结果的链接,打断循环。
  5. 把有稳定需求的结果页转为静态路径,并纳入站点地图。
  6. 规则上线两周后复查日志,对比正常页面的抓取频次变化。
站内搜索与筛选是给用户用的工具,不是给蜘蛛铺的路。把它们和内容页区分开管理,抓取资源才会流向真正需要被发现的页面。