先把当时的情况摆出来。为了省事,全站 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 侧没有变化,两个引擎的信号终于一致。
容易忽略的是,两家引擎对响应头的支持不一样,要屏蔽就两个地方都写。这类问题最好一次改到位,反复小改反而容易把原因搅混。
