站内搜索结果页被收录,是中小站索引膨胀最常见的来源之一。搜索框一上线,参数地址就开始被生成,一个关键词一个地址,量级几乎不可控。等到发现时,索引里已经混进几百上千条没有独立价值的列表页。处理这类问题,重点不在「删」,而在顺序:先把入口收住,再谈清理已收录的条目。
这类页面为什么容易被抓走
- URL 由查询参数动态生成,结构简单,翻页和排序参数一叠加就成倍增长。
- 页面本身有标题、有列表、有内链,从抓取视角看和正常的列表页没有明显差别。
- 搜索框常出现在导航、侧栏、页脚,蜘蛛顺着内链可以反复进入。
- 用户分享、论坛转载、聚合工具留下的地址,会绕开站内入口直接被收录。
先确认:索引里到底有哪些形态
动手之前先把地址分类,不同形态的处理方式并不一样。常见的有几类:以 ?s=、?q=、?keyword= 结尾的参数页;以 /search/关键词 形式存在的伪静态路径;搜索无结果但依然返回 200 的空列表页;以及带分页、排序参数的二次叠加地址。
用站点查询和日志交叉确认
站点查询能大致看出收录数量,但不够准确;服务器日志能告诉你蜘蛛实际抓了哪些地址、频次如何。两边对照,才能判断是「少量被收录」还是「每天都在新增」。
别忽略无结果页
搜索一个不存在的词,页面返回 200 并显示「没有找到相关内容」,这类页面既没有内容也没有导航价值,是最容易被判定为低质的一类。
收敛的第一步是断掉发现路径
只要入口还在,清理就永远追不上新增。建议按下面的顺序处理:
- 把导航、侧栏、页脚里的搜索链接,改成由按钮触发或本地表单提交,不要保留可被直接抓取的 a 标签。
- 检查 sitemap 文件,剔除所有搜索结果类地址,包括自动生成的插件留下的条目。
- 排查「热门搜索」「相关搜索」这类模块,如果它们指向搜索结果页,改成指向对应的分类页或专题页。
- 查一次外链引用最多的几个搜索地址,能联系修改就改,改不了的按后面的步骤单独处理。
- 检查站内是否有程序自动生成的搜索页互链,比如「看过此页的人还搜了」,这类互链会把参数页连成一张网。
noindex 与 robots.txt 的先后关系
这里有个常见误区:直接在 robots.txt 里屏蔽搜索目录,以为就干净了。但被屏蔽的地址,蜘蛛无法抓取,自然也读不到页面里的 noindex 指令,已经收录的条目可能长期留在索引中,只显示旧快照或空描述。
- 想让已收录地址退出索引:先允许抓取,同时让页面返回 noindex,等索引里逐步消失后,再考虑加屏蔽以减少抓取消耗。
- 地址数量极大、抓取已被明显拖累:可以先屏蔽抓取,同时提交移除请求,但要接受清理周期更长的预期。
- 不要既不抓取又指望 noindex 生效:两个信号会互相抵消,结果是页面留在索引里,你也拿不到反馈。
页面标记怎么写
搜索引擎结果页通常用 noindex, follow 保留内链传递,如果页面本身就是空洞的列表,用 nofollow 也可以。无结果的空页面,更合适的做法是明确返回 404 或提示无结果的同时做 noindex,而不是让一个 200 空页长期存在。
什么情况下可以保留
如果某类搜索结果稳定、有独立使用价值,比如固定的城市列表、固定的分类组合,与其让参数页被收录,不如把它改造成静态专题页:固定 URL、补上手写简介与筛选说明、canonical 指向自身、纳入 sitemap。这样它就有资格作为一个正常页面参与收录,而不是一堆参数地址里的偶然幸存者。
清理之后盯什么
- 索引数量是滞后指标,通常要几周才会明显变化,不要每天刷新。
- 用站点查询观察剩余条目数量的大致趋势,而不是追求精确数字。
- 看日志里这些地址的抓取频次是否下降,频次下来了,说明屏蔽或入口收口起了作用。
- 如果数量不降反增,回头检查是不是有新的参数组合、新的入口在持续生成地址。
搜索结果页的清理不是一次性动作。搜索框入口、内链写法、外链引用会持续把新地址送进来,隔一段时间复查一次,比一次清干净更现实。