遇到这种情况先别急着重装,多半是某处配置或状态没对上,按下面的顺序查一般十分钟内能看出方向。 站内搜索地址是 /?s=关键词 的形式,robots.txt 里加了 Disallow: /?s=,三个月后用 site 查询仍能看到上万条搜索页。这些页面标题都是「你搜索的关键词」,内容几乎完全一样。

如果线上正在跑业务,建议先留一份日志和配置快照,再开始改动。

先分清是哪一类原因

  1. Disallow 只阻止抓取,已经进索引的 URL 不会自动删除
  2. 规则被写在错误的 User-agent 分组下,对 Googlebot 根本没生效
  3. 搜索页模板没有输出 noindex,外链一指向就被直接收进索引

按顺序处理

1. 先看线上 robots 的实际内容与分组位置

curl -s https://www.example.com/robots.txt | head -30

2. 给搜索页模板补 noindex 标签

add_filter('wp_robots', 'wp_robots_noindex');

3. 在网址移除里批量清理已经收录的搜索页

site:www.example.com/?s=

怎么确认已经恢复

两周后 site 查询的结果从五位数降到三位数,覆盖率报表里搜索页条目同步消失,服务器日志中 ?s= 请求也归零。

容易忽略的地方

只写 Disallow 等于让蜘蛛看不到 noindex,两个信号必须同时给,否则 URL 会长期卡在已发现状态,既不抓取也不删除。 涉及改配置的操作,改完记得做一次完整的回归,别只看当前这个报错有没有消失。

作者 9823189