很多站点为了方便用户,会在页头或侧栏放一个站内搜索框。功能本身没问题,但它生成的搜索结果页(通常是 /search?q=xxx 这类 URL)经常在不知不觉中被蜘蛛抓走,甚至进入索引。等到索引报告里出现一批带参数的页面,才发现这些低价值 URL 已经在和真正的内容页争位置。
站内搜索结果页为什么容易被收录
这类页面通常具备几个让蜘蛛愿意持续抓的特征:
- 入口多:搜索框出现在几乎每个页面上,结果页之间还可能互相链接,形成数量近乎无限的 URL 空间。
- URL 可访问:不需要登录,没有 robots 限制,返回 200 状态码和完整 HTML。
- 内容看着不一样:不同关键词的结果页文字组合不同,不容易被直接判定为重复模板。
- 被顺带提交:有些采集或生成工具会把抓到的 URL 一并塞进 sitemap 或提交接口。
被收录之后,实际影响有哪些
- 索引膨胀:收录量数字好看,但真正有业务价值的页面被大量结果页盖住。
- 占用抓取额度:蜘蛛在这些页面上花时间,留给新页面和更新页面的份额就少。
- 产生空结果页:搜索无结果的页面往往只有一句提示语加空白列表,属于典型的薄内容。
- 拉低整站质量判断:低价值页面占比过高,对整站评估没有好处。
先确认:是抓取了,还是真的进了索引
这是两件事。日志里出现蜘蛛访问 /search?q=...,只能说明它抓过;是否进入索引,要另外核对索引报告或对具体 URL 做查询验证。常见的误判是看到日志里有访问量,就认为已经被收录并开始处理,结果动作做在了不必要的地方。
被 robots.txt 挡住的 URL,仍可能因为没有 noindex 而留在索引里,标题和摘要由外链锚文本拼出。所以挡抓取和移出索引不是同一个动作。
收敛顺序:从入口控制到页面级处理
- 先看入口:搜索结果页的链接通常是站内自动生成的,先判断是否真的需要让蜘蛛顺着走。若只是给用户用,可以减少这些链接被发现和跟随的机会。
- 页面级加 noindex:让蜘蛛仍能抓到页面并读到 noindex,是移出索引最直接的路径。前提是这个标签能被读到。
- 再考虑 robots:只有在页面不再需要出现在索引里、且不希望继续被抓时才用 Disallow。顺序反了,noindex 读不到,移除会更慢。
- 清理 sitemap 与提交列表:确认 sitemap 中没有混入这类 URL,采集生成的提交清单也同步清理。
- 处理历史存量:已收录的页面不会立刻消失,要等重新抓取后状态才会更新。参数规范或 canonical 对这类页面有一定作用,但不如从入口和页面级处理直接。
处理之后看什么
不要只看一次查询结果就下结论。可以按周观察索引报告中该 URL 模式的数量变化,同时对比日志里蜘蛛对这些路径的访问频次是否下降。如果数量长时间不动,先确认 noindex 是否真的被读到,再检查是否还有其他入口在持续产生链接。
站内搜索是必要的功能,问题不在功能本身,而在于这些页面是否被当成了可收录内容来对待。把入口、标签和提交三个环节理顺,通常比事后逐条清理省力得多。