网站收录

站内搜索结果页被收录:该收口还是该放行

站内搜索结果页容易被搜索蜘蛛顺着参数一路抓走,在索引里堆积大量相似地址。本文说明这类页面该保留还是收口,robots.txt、noindex、404 三种做法差别在哪,并给出一条可执行的处理顺序和收口后的复查要点。

网站收录

站内搜索结果页被收录:该收口还是该放行

站内搜索页为什么会被抓走

很多站点的站内搜索页是被搜索蜘蛛自己找到的:用户在搜索结果页留下的链接、页面上的热门搜索词、以及结果页之间的互相链接,都会形成一条不断延伸的路径。只要参数组合够多,理论上可以生成近乎无限的 URL。

这类页面的问题不是“能不能被抓”,而是抓走之后对站点有什么影响:占用抓取资源,把有限的抓取配额消耗在低价值页面上,在索引里堆积大量内容高度相似的地址,让真正需要被发现的页面排队更久。抓取、索引、排序是三件不同的事,这里主要影响的是前两件。

先判断:这批页面值不值得留在索引里

不是所有站内搜索结果页都要一刀切。可以先按下面几条过一遍:

  • 是否有稳定的搜索需求,比如固定分类组合,用户会重复使用;
  • 结果页本身是否有足够多且唯一的内容,而不是只显示几条重复条目;
  • 是否有独立的标题、描述和正文结构,而不是纯模板拼装;
  • 数量是否可控,比如几十个固定的聚合页,而不是任意关键词都能生成一个。

满足大部分条件的,可以考虑保留并做规范化处理;纯动态、无差别生成、内容稀薄的,通常更适合收口。

三种处理方式,效果差别很大

常见做法有三种,别混着用:

  • robots.txt 禁止抓取:只能挡住抓取,挡不住收录。已经进入索引的地址可能仍然留在里面,而页面上的 noindex 标签因为抓不到也不会被读到。
  • 页面返回 noindex:让页面可以被抓取,但明确不进索引。前提是抓取没有被 robots.txt 阻断。
  • 返回 404 / 410 或撤掉入口:适合彻底不需要的页面。但要确认没有站内链接继续指向它们。

如果目标是“从索引里去掉”,通常需要先允许抓取、再输出 noindex,等索引里的地址逐步减少后,再考虑是否加回 robots 限制。顺序颠倒,往往两边都做不成。

一个可执行的收口顺序

  1. 从搜索控制台的覆盖率报告和服务器日志里,统计站内搜索页被抓取和被索引的规模,先看量级再决定动作。
  2. 确认这些页面的入口在哪里:站内搜索框、热门词模块、分页链接、站点地图。入口不收,抓取不会停。
  3. 对需要保留的少数页面,固定 URL 结构、去掉无用参数、补上唯一的标题与描述。
  4. 对需要收口的页面,输出 noindex 并保持可抓取,同时把这些 URL 从站点地图中移除。
  5. 减少内部链接:搜索框改用表单提交或加 nofollow,热门词模块限制数量。
  6. 观察两到四周,看索引中的数量是否下降、日志中相关抓取是否减少,再决定下一步。

收口之后还要复查什么

索引的更新不是实时的,地址会在一段时间内继续存在。这段时间里要注意:noindex 是否真的出现在返回的 HTML 里,如果是 JavaScript 注入,可能读不到;服务器是否对这类页面返回了正常状态而不是错误页;分页和排序参数是否又生成了新的变体。

另外,如果站内搜索结果页被大量收录,往往说明站点的内部链接结构有问题——蜘蛛没有更好的路可走,只好沿着搜索参数一路爬下去。这时候改进栏目页和内链,比单纯屏蔽更根本。

抓取和收录是两步:能抓不等于会收,禁止抓取也不等于从索引里消失。处理站内搜索页时,先想清楚目标是把抓取挡在外面,还是把地址从索引里拿掉,两者对应的做法完全不同。