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