站内搜索页被收录,是很多站点做索引自查时都会撞见的问题:搜一下站内,发现一批 /search?q=... 的地址躺在索引里。这类页面不能一刀切处理——全站屏蔽可能连带影响正常页面,放任不管又会持续占用抓取和索引资源。先分清楚哪些该留,再决定动作,通常更稳妥。
站内搜索页为什么会进索引
搜索功能本身没有问题,问题在于它被发现和生成的方式。多数站点的搜索框提交后会生成一个带参数的固定 URL,这个 URL 对蜘蛛来说就是一个普通链接,只要页面上存在可爬入口,它早晚会被抓到。
- 站内搜索框以 GET 方式提交,URL 直接暴露在页面源码里;
- 热门搜索、相关搜索模块把结果页互相连起来;
- 用户复制搜索结果链接发到外部平台,形成外链入口;
- 结果页模板既没有 noindex,也没有在 robots.txt 里做限制。
这些入口叠加起来,一个中型站点很容易生成成百上千个搜索 URL,其中大部分内容是重复的结果列表,页面质量低,也没有稳定的搜索需求。
先分类:哪些值得留,哪些该收
判断标准可以简单一点:这个 URL 是否稳定存在、是否有独立价值、是否可能被用户从外部直接打开。
- 可以保留的:由编辑维护的热门专题页、固定关键词的聚合页。它们内容稳定、有明确搜索量,并且是人工挑选的入口,本质上已不完全是搜索结果页。
- 通常该退出的:任意关键词生成的结果页、结果为空或只有“没有找到”的页面、搜索结果的第 2 页之后、按时间或热度排序的参数页。
- 需要单独看的:如果把站内搜索做成了商品或内容的筛选组合页,先确认这些组合有没有稳定搜索量,再决定去留。没有流量、也没人维护的组合页,一般不值得留在索引里。
处理的顺序
决定让页面退出索引时,动作顺序会影响效果,建议按下面的顺序推进。
- 先确认 robots.txt 没有把这些 URL 挡住。已经被禁止抓取的页面,蜘蛛读不到 noindex 指令,反而可能因为外链继续留在索引里。
- 在搜索页模板上输出 noindex,让已收录页面逐步退出。退出速度取决于蜘蛛下一次抓取的时间,不会立刻生效。
- 减少可爬入口:搜索框改为表单提交或走接口,热门搜索、相关搜索模块改用不易被抓取的方式渲染,避免继续产生新的搜索 URL。
- 无结果页可以返回 404 或 410,比返回一个空壳的 200 页面更清楚。
- 回头检查站点地图,确认没有把搜索页、排序参数页写进去;如果写了,先清理掉。
常见误区:一边用 robots.txt 屏蔽搜索页,一边期待它们从索引里消失。屏蔽解决的是抓取,不是索引,两件事要分开处理。
处理之后看什么
- 索引量在接下来几周的变化,重点是这类 URL 的数量有没有下降;
- 服务器日志里搜索页的抓取频次,如果还在持续增长,说明入口没有真正收干净;
- 外部是否还有链接指向具体结果页,这类页面退出会慢一些,属于正常现象;
- 站内搜索的替代方案是否影响用户体验,收录处理不该以牺牲可用功能为代价。
站内搜索页的收录问题,本质上还是页面质量与抓取资源分配的问题。把有稳定价值的人工聚合页留下,把机器批量生成、没有搜索需求的结果页收干净,索引里留下的东西才会更接近你真正希望被搜到的内容。