跳至正文
WordPress 与 WooCommerce · Google SEO

WordPress 搜索结果页除了 noindex 还能怎么处理

// / / 光算科技

站内搜索结果页是"给自己人用"的页面,可它默认对外可访问、可被抓取、可被索引。除了输出不索引规则,实际能做的还有四层:抓取、索引、站内入口、对外引用,每一层解决的是不同问题。只做其中一层,通常是漏掉了别的层。上一篇WordPress 站内搜索页被收录:先查 noindex 有没有真正输出讲的是规则有没有落地,这一篇讲的是规则之外的那几层。

搜索结果页的四层处理方式分区示意,标出每层解决的是哪一种被访问的可能,以及相互之间不能互相替代的关系
原创示意:图中为搜索结果页四层处理方式与各自解决范围的示意,不是真实后台截图或数据。

先看它在核心里是什么

Rewrite API 文档列出了 search_rewrite_rules,描述是"过滤为搜索地址生成的重写规则",和日期归档、作者归档的规则并列。搜索地址在核心里是一条独立规则族,默认状态是对外可访问的。WordPress 官方文档没有对搜索页的索引状态给出任何默认建议,也没有承诺任何搜索侧效果——它只负责把地址生成出来,后面怎么处理是站长自己的决定。

这一条很关键。核心不区分"这个页面该不该被看到",它只管规则和输出。所以"WordPress 默认会把搜索页藏起来"这种说法并不成立,默认状态恰恰是开放的那一边。

四层分别是什么

层次解决什么用哪种手段
能不能被抓到不希望抓取方花时间在搜索页上robots.txt 拒绝,或让页面不再被站内链到
能不能被索引抓到了也别进结果页面级 noindex,或 X-Robots-Tag 响应头
站内有没有入口别让抓取方顺着链接发现一堆搜索地址清掉模板、页脚、小工具里的搜索表单输出
有没有被别的页面引用别让站内其他内容指向搜索页检查正文、标签页、附件页里的搜索链接

这四层不能互相替代,而且有一处容易踩反。Google 关于 robots meta 与 X-Robots-Tag 的说明写得很明确:这些设置只有在抓取方被允许访问该页面的情况下,才能被读到并遵守;如果某个地址在 robots.txt 里被禁止抓取,那么页面上关于索引或展示的规则根本不会被发现,会被忽略。也就是说,挡住了抓取,就等于同时废掉了页面上的不索引规则——它不是"更彻底地挡索引",而是"这条规则没人读"。

但这不意味着搜索页就该用抓取拦截。Google 关于 URL 结构的说明在修复建议里写的是:通常可以考虑用 robots.txt 阻止抓取有问题的地址,并明确点名了会生成搜索结果的地址这类动态地址。同一页在常见问题里还提到,网址里带会话 ID 的地址应当尽量避免,改用 cookie 替代。官方在这里给的是抓取层面的建议,因为它要解决的是"地址数量爆炸"这个问题,不是"某一页要保留但不进索引"。两种诉求对应两种手段,选错会出现"既没挡住抓取,又没挡住索引"的中间状态。

怎么落地:按这个顺序做

  1. 先清站内入口。全站找一遍有没有输出搜索表单的地方——页脚、小工具、主题设置里的搜索框、以及某些模板里为了方便留的搜索链接。入口少一个,搜索地址就少一批来源。
  2. 再确认有没有别处链到搜索页。检查正文里的内链、标签页底部、附件页这类自动生成的页面。这两类入口最容易漏,因为它们不在你关心的模板里。
  3. 然后处理地址形态。搜索参数里的会话标识如果出现在网址中,属于 Google 点名过的应当避免的情形,这类问题不需要插件介入,先确认它是不是真实存在。
  4. 最后才决定规则层。搜索页如果既不需要被抓取、也不需要被索引,robots.txt 拒绝是官方在这一场景下给出的方向;如果需要被抓到(比如想确认它确实没被索引),那就必须允许抓取并输出不索引规则。两者不能同时用。

第 1 步的排查方式和为 SEO 关闭 WordPress REST API:先查编辑器和前台依赖是同一个思路:先找依赖,再动手。搜索表单的依赖通常在主题设置和小工具里,清单化之后一次改完比反复试要快。

什么时候不适合全封

三种情况。一是站内有真实被外部使用的检索需求,比如客户在客户中心用搜索找订单,这种搜索页是产品功能的一部分,封闭之前要先确认它不在对外承诺的流程里。二是站内搜索替代了分类导航,而你的导航其实做得不够好——这种情况下更该修导航,而不是把搜索页当成唯一入口又封掉它。三是你自己需要用它做内容检查,那就用登录态或站内工具看,不要依赖它的公开状态。

另外提醒一句:搜索页被封不等于站内搜索功能不能用。这两件事在不同层次,抓取与索引的规则不影响登录用户在站点内发起搜索。

怎么验证这一层真的生效

验证按地址逐条做,而不是看整体感觉。挑三条不同的搜索地址,分别核对四件事:地址能不能被抓到,页面级规则是否按预期输出,站内还有没有入口链到它,抓取日志里最近还有没有它的访问记录。四个答案里只要有一个和预期不符,就还有工作没做完。

还有一层要一起看。Google 关于帮助搜索引擎理解站点结构的说明里提到,Googlebot 一般不会试着在抓取过程中往搜索框里提交搜索——这说明搜索页被收录通常不是因为爬虫"用"了它,而是因为它有入口、可以被链到。入口清干净之后,剩下的零星地址才需要规则处理。抓取与索引都不是即时的,批量清理之后按两周为单位看数据;粗查可以用 site:,但索引与检索存在限制,结论以 Search Console 的网址检查工具为准。