站内搜索几乎是标配功能:访客输入关键词,站点返回一列结果。它对访客有用,但对搜索引擎来说,这类页面既没有稳定主题,也没有固定内容,属于典型的动态结果页。运营时如果不加区分地放开抓取,这些地址会一点点占掉本该留给正文页的抓取时间。
站内搜索页常见的问题
把搜索结果页单独拿出来检查,通常会看到几类现象:
- 地址随参数无限扩展:同一个搜索功能可以拼出成千上万个 URL,彼此内容高度重复。
- 页面主题不固定:今天返回这一类结果,明天可能返回另一类,标题和描述随查询词变化,很难稳定表达一个主题。
- 空结果页返回正常状态:搜索词没有匹配内容时,页面依然返回 200,看起来像正常页面,实际没有有效信息,接近软 404。
- 站内入口互相串联:搜索结果里带上“相关搜索”或筛选项,页面之间互相链接,数量越滚越多。
先分清:搜索功能要,搜索页不一定要
需要明确的是,受影响的只是“搜索结果页能不能被抓取”,而不是搜索功能本身。搜索框、搜索接口、结果展示都可以保留,访客体验不受影响。真正要决定的是:这些由输入触发的动态地址,要不要进入搜索引擎的索引。多数内容型站点的答案是不需要。
常见的处理方式与取舍
robots.txt 屏蔽
在 robots.txt 里禁止抓取搜索路径,是最省事的一种做法。好处是蜘蛛不会在搜索页上消耗时间;代价是蜘蛛看不到页面里的 noindex 指令,如果站内其他地方有链接指向这些地址,仍可能被索引成没有描述的条目。
meta robots noindex
在搜索结果模板里输出 noindex,允许抓取但明确要求不索引。这种方式更可控,配合 follow 还能让蜘蛛从搜索页继续走到正文页。缺点是蜘蛛仍会访问这些地址,抓取次数并不会因此减少。
保留少量可索引的固定页面
如果某些搜索词的组合确实有稳定需求,可以考虑把它们做成固定的专题页或聚合页,单独设定标题、描述和正文,再正常开放抓取。这里的关键是“固定”,而不是让参数随时生成新页面。
自查清单
- 确认站内搜索的 URL 结构,看看结果是否能被参数无限拼接。
- 检查搜索结果模板是否输出了 noindex,或者是否有对应的 robots.txt 规则。
- 检查站内导航、面包屑、正文内链是否直接指向搜索结果页,如果有,考虑换成固定栏目页。
- 确认搜索结果页没有出现在 XML 站点地图里。
- 检查空结果页的状态码和文案,给出清晰的“没有找到”提示和替代入口。
- 检查排序、筛选、翻页参数是否产生了大量近似地址。
- 用访问日志观察这些地址被访问的频率,判断是否需要进一步收口。
- 改版或更换搜索组件后,重新核对以上几项,模板很容易被覆盖。
把搜索日志用起来
处理完抓取问题,搜索日志本身还有另一层价值:它记录的是访客真实输入过的词。哪些词反复出现却没有匹配内容,往往就是内容缺口;哪些词搜出来一堆无关结果,说明站内标签或分类需要整理。
访客愿意自己敲进搜索框的词,是最直接的需求表达。与其凭空猜选题,不如定期翻一遍搜索日志,把高频、无结果的词整理进选题池。
小结
站内搜索结果页不是坏东西,只是它的形态不太适合作为被索引的页面。把抓取边界划清楚,保留搜索功能,把有稳定需求的词转成固定页面,既不浪费蜘蛛的访问次数,也不影响访客使用。