上线之后搜索流量断崖,站点查询显示大量页面被 robots.txt 屏蔽,翻出文件看只有短短几行规则,怎么读都不像写错了。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,Disallow 后面接的是路径前缀,写成单独一个斜杠就等于屏蔽全站,任何地址都会命中;只想挡某个目录,路径必须写全,也不能用斜杠单独结尾。
「robots.txt Disallow 误拦」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
curl -s https://example.com/robots.txt # 重点看有没有单独一行的 Disallow: /
同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
具体做法是,先把规则收窄成只挡具体的那个目录;用 robots 测试工具逐条验证,确认命中的是哪条规则;确认无误之后再放开其他需要抓取的目录。
最后用这个标准收尾,测试工具里首页和文章页都显示允许,抓取量开始回升。
