站点运营

站点运营:站内搜索页自查,别让搜索结果页变成无穷 URL 源

站内搜索对用户友好,却容易生成大量参数化地址,占用抓取配额、制造重复页面。本文梳理搜索页的常见风险,给出自查清单,并对比 robots.txt 屏蔽与 noindex 标记的适用场景,帮助把用户功能和抓取入口的边界划清。

站点运营

站点运营:站内搜索页自查,别让搜索结果页变成无穷 URL 源

很多站点在导航栏或侧边栏放一个搜索框,用户输入关键词就能跳到结果列表页。这个功能对访客很友好,但对搜索引擎来说,搜索结果页往往是一类需要单独对待的页面:它由参数生成、数量近乎无限、内容随时变化,又常常和正文页高度重复。

站内搜索结果页为什么容易出问题

常见的搜索地址形如 /search?q=关键词&page=2&sort=new。只要有人搜索、有筛选条件组合,就会出现新的地址。蜘蛛沿着这些链接爬下去,很容易陷入几种局面:

  • URL 数量失控:参数组合是乘法关系,几十个筛选值就能组合出成千上万个地址。
  • 空结果与低质页面:搜不到内容的页面同样会返回 200 状态码,形成大量没有实质内容的页面。
  • 抓取配额被占用:蜘蛛的抓取量有限,花在结果页上,分给正文页的份额就少了。
  • 地址分散:同一篇文章可能通过多个搜索词的结果页被链接到,权重线索被打散。

自查清单:先确认这几处

  • 搜索结果页是否被站内链接大量引用,比如侧边栏的“热门搜索”直接给出可点击链接。
  • 搜索结果页的 meta robots 是什么,是否输出了 noindex。
  • robots.txt 里有没有对搜索路径做限制,限制是否写得太宽导致误伤。
  • XML 站点地图里是否混入了搜索结果地址。
  • 服务器日志中,搜索路径的抓取占比是多少。

处理方式:屏蔽、标记还是放行

没有统一答案,要看站点自身情况。内容量大的站点通常倾向把结果页挡在索引之外;内容极少的小站,甚至可以不做参数化搜索。常见的几种做法:

用 robots.txt 限制路径

如果搜索路径固定,比如 /search/ 或 /so/,可以在 robots.txt 中写 Disallow。需要注意两点:一是别把包含正文的路径一起误伤,比如把 /search 误写成 /s,那所有以 s 开头的目录都会被挡住;二是 robots.txt 是建议而非强制手段,遇到不遵守协议的抓取者未必有效。

用 noindex 标记页面

noindex 需要页面能被抓取才能生效。也就是说,不能同时用 robots.txt 屏蔽又加 noindex——被屏蔽的页面蜘蛛看不到 noindex,标签形同虚设。如果希望结果是“可抓取但不收录”,就只加 noindex,不加 Disallow。

减少搜索链接的暴露

把搜索入口做成表单提交而不是可点击链接,或对结果页链接加 rel="nofollow"(注意 nofollow 现在更多是提示,不是指令),都能降低被大量发现的机会。同时把“热门搜索”这类模块的链接指向固定专题页,而不是带参数的搜索地址。

观察效果,而不是加完标签就不管

处理之后隔一段时间回来看:搜索路径在日志里的抓取比例是否下降,正文页的抓取是否增加,索引里是否还有残留的结果页。如果站点有筛选功能,也要一并检查,筛选参数和搜索参数往往属于同一类问题。

站内搜索是给用户用的功能,不一定要成为搜索引擎的入口。把两者的边界划清,比一刀切地全部禁止更稳妥。

最后提醒一点:调整前先记录当前状态,改完再对比,否则很难判断变化是来自你的处理,还是来自内容更新或流量波动。