问题出现得很突然,日志倒是留得挺全。给两千条筛选页加了 noindex,Google 那边十天内清掉了九成,必应搜索里两周后还能搜到八成。团队以为标签没生效,差点把 noindex 撤掉换成 301,实际上只是必应的重抓节奏更慢。

刚开始盯着「页面还被 CDN 缓存着旧版本 蜘蛛拿到的是没有标签的副本」,折腾了半个多小时,排掉了。

这类报错背后常见的原因有几处,逐个排除就行。必应对已收录页面的重抓间隔更长 标签要等下次抓取才被读到。另一种情况是noindex 只能阻止收录 不能立刻把已有结果移除。

另外,sitemap 里仍包含这些地址 持续给蜘蛛发送抓取信号。

上来先确认线上返回的标签确实存在

curl -s -A 'bingbot' https://www.example.com/filter/1 | grep -o '<meta name="robots"[^>]*>'

然后把这些地址从 sitemap 里移除

grep -vc '/filter/' sitemap.xml

接着对已无价值的页面同时返回 410 加快移除

location ^~ /filter/ { return 410; }

等前面都确认过,再在必应后台提交移除请求

curl -s -X POST 'https://www.bing.com/webmaster/api/1.0/RemoveUrl?apikey=KEY&siteUrl=https://www.example.com' -d 'url=https://www.example.com/filter/1'

怎么算真的好了,看的是同一批现象。等到第四周必应里的筛选页从八成降到一成以内,期间没有再改动标签,说明只是生效节奏的差异。

不同搜索引擎对标签的响应时间差得很远,验证时至少留三到四周,过早回滚会把已经生效的信号推翻。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。

作者 9823189