先把当时的情况摆出来。为了省事,全站 noindex 只写了响应头。Google 认这个信号,百度不认,搜索结果里仍收录了这批本不该出现的页面,站长平台也没有任何提示。

原因不止一个,得分开看。百度主要解析 HTML 里的 meta robots,忽略响应头。少数情况下是CDN 把响应头过滤掉了。

还有一种情况,模板里没有输出对应的 meta 标签。另外,两家信号不一致,问题长期没人发现。

动手时先看响应头里有没有 noindex

curl -sI https://www.example.com/p/1 | grep -i x-robots

然后看 HTML 里有没有对应标签

curl -s https://www.example.com/p/1 | grep -i 'name="robots"'

补上 meta 标签

echo '<meta name="robots" content="noindex,follow">'

剩下的就是在

百

中间停过一次,把已经改的东西回滚干净,再重新来一遍。

同样的操作我在测试机上先走了一遍,线上只做验证过的部分。

怎么算真的好了,看的是同一批现象。补上标签后百度在两周内清掉了这批条目,Google 侧没有变化,两个引擎的信号终于一致。

容易忽略的是,两家引擎对响应头的支持不一样,要屏蔽就两个地方都写。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189