robots.txt 里写 Disallow: /admin,上线后 /administrator 帮助文档也被屏蔽,百度收录掉了两百条,规则里根本没写这个目录。

一开始怀疑是「百度对前缀匹配的处理和 Google 存在细微差异」,查了一圈,方向不对。

真正麻烦的地方在于,几个原因的现象几乎一样。robots 的路径匹配是前缀匹配,/admin 会命中 /administrator。少数情况下是规则末尾没加斜杠,无法限定到目录本身。

少数情况下是改动前没在测试属性里验证命中范围。

先确认被屏蔽的具体路径

curl -s https://www.example.com/robots.txt | Select-String admin

接着把规则收窄到目录并补放行

Disallow: /admin/
Allow: /administrator/

然后用测试工具核对命中结果

curl -s "https://www.google.com/search?q=site:www.example.com/administrator" | Select-String administrator

提交被误伤的页面重新抓取

curl -s https://www.example.com/sitemap_index.xml | Select-String administrator

这台环境是别人交接的,不少默认值被动过,只能一项项核。

改完先别撤,确认这几项。/administrator 下的页面重新出现在索引里,/admin 后台路径仍被挡住,robots 测试显示命中正确。

robots 没有精确匹配写法,路径越短误伤面越大,能写到目录层级就别只写单词。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189