站点运营

站点运营:站内搜索页自查,别让搜索结果页被当成内容页收录

站内搜索结果页由参数动态生成,数量和标题都难以控制,容易被蜘蛛大量抓取并进入索引,挤占真正内容页的抓取预算。本文从日志核对、入口收敛、noindex 与 robots 的分工、空结果与分页处理几个方面,给出一份可执行的站内搜索页自查清单。

站点运营

站点运营:站内搜索页自查,别让搜索结果页被当成内容页收录

站内搜索是给用户用的,但对蜘蛛来说,它只是一串带参数的地址。只要搜索结果页可以被无限制地生成,站点就相当于给自己开了一个源源不断产出低质页面的入口。这类页面通常标题相似、正文稀薄、内容随查询词随机组合,既占抓取预算,也容易在索引里和真正的内容页打架。

先确认:蜘蛛到底抓走了多少搜索页

自查的第一步不是马上动手屏蔽,而是先看数据。

  • 在服务器日志里筛选带搜索参数的请求,统计各搜索引擎蜘蛛的访问量与状态码分布。
  • 用站长平台或 site 查询,看已被收录的搜索页大致有多少,标题是否呈现同一模板。
  • 看这些页面是否出现在站内链接里——很多问题不是蜘蛛主动发现,而是模板把搜索页链接铺到了每个页面底部。

常见成因

  1. 搜索结果页的链接被写进导航、标签云或“热门搜索”模块,全站可见。
  2. 地址参数没有做收敛,同一组搜索结果因为排序、分页、筛选生成多个地址。
  3. 搜索结果为空时依然返回 200,并输出一段“没有找到相关内容”的页面。
  4. 模板没有区分用户访问与蜘蛛访问,蜘蛛拿到的页面和用户看到的一样多。

处理方式:分三层来做

第一层:收敛入口

先切断蜘蛛发现搜索页的路径。把“热门搜索”“相关搜索”这类模块的链接改为不可爬取的形式,或者只保留少量指向真实栏目页的入口。搜索页本身不建议放进站点地图,也不建议出现在导航里。

第二层:标记与拒绝抓取

对搜索结果页加 noindex,让已经抓到的页面不进入索引;如果搜索页数量极大且没有保留价值,可以在 robots.txt 里对搜索路径做整段屏蔽。注意两者不是二选一:noindex 需要蜘蛛能抓到页面才生效,而 robots 屏蔽后蜘蛛看不到 noindex。选择哪种,取决于你更在意“别再被抓”还是“抓到了也别收录”。

第三层:空结果与分页

  • 空结果页返回 404 或 410 更合适,至少不要返回 200 的正常内容页。
  • 搜索页的分页同样会生成大量地址,如果保留,至少要限制翻页深度。
  • 筛选参数建议只保留必要的一两个,其余用固定顺序或路径化处理,减少组合膨胀。

别把用户也一起挡住

处理搜索页时容易顺手把站内搜索功能做没了。需要分清楚的是:屏蔽蜘蛛抓取不等于关闭功能,robots 与 noindex 只影响抓取和索引,用户仍然可以正常搜索。真正要避免的是把搜索页当成栏目来运营,用搜索结果页去承接关键词流量——这类页面的内容由查询词拼凑,稳定性差,也很难持续维护。

判断标准很简单:这个页面是给用户找内容用的,还是打算让搜索用户直接落地看的?前者应该关在索引外,后者才需要认真做内容。

改动之后的检查

  • 观察一两周日志,看搜索路径的抓取量是否下降,抓取是否转向真实内容页。
  • 在站长平台重新提交受影响的目录或站点地图,让蜘蛛把精力放到该抓的地方。
  • 抽查几组搜索页,确认返回的状态码、meta 标记和预期一致,别出现整站被误屏蔽的情况。

站内搜索页本身不是问题,问题是它太容易被批量生成。定期做一次自查,把它从索引里请出去,抓取预算花在哪里、收录质量如何,都会清楚一些。