先把当时的情况摆出来。推送脚本图省事把全站 URL 表整个提交,里面混着两万多条 /search?q= 地址,一周后必应索引里多出一批空结果页。

这类报错背后常见的原因有几处,逐个排除就行。推送数据源直接取了全站链接表,没有过滤规则。也可能是搜索页本身没有 noindex 兜底。

不容易想到的是,脚本没有按路径白名单校验。

先统计提交数据里的搜索页占比

grep -c '/search?q=' urls.txt

推送前按路径白名单过滤

grep -E '^https://www\.example\.com/(p|category)/' urls.txt > push.txt

给搜索页补 noindex

add_header X-Robots-Tag 'noindex' always;

复检索引里的搜索页数量

site:www.example.com/search

命令输出我都留了记录,免得改完记不清原来的值。

怎么算真的好了,看的是同一批现象。过滤后推送列表只剩文章与栏目地址,三周内搜索页逐步退出必应索引,抓取预算回到正文。

容易忽略的是,推送接口不会替你判断哪些 URL 该提交,脚本里加一层路径白名单,比事后清理便宜得多。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189