识别配置互相冲突,关键是看同一份内容是否被多个入口用不同规则处理。删除百度缓存通常涉及三处配置:页面本身的 meta 标签、robots.txt 的抓取规则、以及服务端返回的 HTTP 状态码。冲突的典型表现是:一处允许抓取,另一处禁止收录;一处要求删除,另一处又把页面重新暴露。判断方法不是看单个文件写了什么,而是把同一 URL 在这三处的表现列在一起比对,找出规则方向相反或作用对象不一致的地方。
很多人认为只要在页面里加上禁止收录的 meta 标签,百度缓存就会消失。实际上 meta 标签只作用于当前页面被重新抓取和重新解析之后,它无法直接命令已存在的缓存立即删除。如果同时 robots.txt 又禁止了抓取,百度就无法重新读取这个 meta 标签,删除请求反而更难生效。这就是最典型的配置冲突:禁止抓取与要求移除方向相反。
判断条件很简单:打开 robots.txt,检查目标路径是否被 Disallow 覆盖。如果被覆盖,同时页面又依赖 meta 标签或删除工具来移除缓存,就属于冲突配置。此时应优先解除对该路径的抓取限制,让百度能重新访问页面并读到删除意图,而不是一边屏蔽一边要求删除。
冲突往往不是因为写错,而是因为三种配置的作用对象不一样:
robots.txt:按路径前缀匹配,控制整站或整目录的抓取,不针对单个 URL 的索引状态。<meta name="robots">:只作用于当前 HTML 页面,控制该页是否被索引、是否展示快照。200 表示正常,404 表示内容不存在,301 表示永久跳转,三者对缓存的影响完全不同。假设一个页面返回 200,内容仍可访问,但 meta 写了 noindex,同时 robots.txt 又禁止抓取该目录。这三者叠加后,百度既抓不到页面,也读不到 noindex,缓存可能长期保留。正确做法是先保证页面可被抓取,再让状态码和 meta 表达一致的意图:要删除就返回 404 或 410,要保留但不想展示快照就单独处理快照,不要用多套规则互相覆盖。
多人协作时,返工多半来自各人只改了自己负责的那一份配置。可以按下面的检查项逐条核对同一 URL:
<meta name="robots">,记录 content 值。判断结果:如果四项方向一致,例如都指向移除,则配置不冲突;如果出现一项允许、一项禁止,则冲突成立,需要先统一意图再执行删除操作。适用条件是同一 URL、同一时间点的配置快照,跨版本比较没有意义。
把配置意图写成一句话放在交付说明里,例如“本页需从百度缓存移除,允许抓取,返回 410,不进入站点地图”。所有参与方按这一句核对各自负责的文件,任何一项与之不符即为冲突。修改后重新抓取并观察状态变化,不要假设提交删除请求就一定生效,百度是否移除缓存由平台处理,无法保证固定时间。
下一步:挑一个当前需要删除缓存的 URL,按上面的四项检查列出实际值,先消除方向相反的配置,再提交删除或等待重新抓取。