robots.txt配置避坑指南:常见错误与正确写法实操

📍 WDQWDWQD987AAAAA:216.73.216.47
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /1c3861fedddb.html
📄

搜索引擎爬虫访问网站时,第一件事往往是读取根目录下的 robots.txt 文件。这份文件就像给爬虫画出的"通行地图",决定了哪些页面可以被抓取、哪些必须绕行。配置得当,能保护后台数据不被收录,还能让抓取资源集中到核心内容上;配置出错,轻则某些页面莫名消失,重则整个站点从搜索结果中"隐身"。用对这份文件,对你的搜索表现影响不小。

1. 基础指令盘点:看懂规则才能写出对的规则

robots.txt 必须放在站点根目录,比如 https://yourdomain.com/robots.txt,文件名严格区分大小写,保存时尽量用 UTF-8 编码。每条规则独占一行,行尾别留多余空格。想写出有效配置,下面几个关键字段要心里有数。

除了上面的指令,许多人还会加一条 Sitemap 行,主动告诉爬虫网站地图的存放地址。下面是一个典型的组合写法:

User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://yourdomain.com/sitemap.xml

这段配置的意思很明确:全站默认放行,唯独 /admin/ 目录不许抓取,但其中 /admin/public/ 子目录作为特例放行。这里面藏着一个高频坑:对于不认 Allow 指令的爬虫,它们眼里只有 Disallow 的限制,/admin/public/ 对它们来说依然是禁区,所以别指望每个爬虫都会按你的意图"灵活处理"。

2. 常见场景配置模板:照着改就能用

不同网站的策略天差地别,robots.txt 的内容也各不相同。下面列出三种最常见的配置模式,覆盖多数普通站点的需求,你可以直接对照着替换自己的路径。

2.1 全站内容完全开放

内容型网站或刚上线的新站点,一般恨不得所有页面都被尽快收录。这时候只需要最简单的一行:

User-agent: *
Disallow:

其实把 Disallow 那行整个删掉,效果也一样。真正该防的是手滑写成 Disallow: /,那就等于把爬虫全挡在大门外,收录量会直线归零。改完配置后,务必用站长平台的抓取测试工具验证一次,别等收录异常了才回头查。

2.2 单独屏蔽某一个搜索引擎

如果不想让某个特定搜索引擎收录你的站点,只需给对应的爬虫单独设规则:

User-agent: Bingbot
Disallow: /

这种写法不会干扰其他爬虫的正常抓取。但要留意,每款爬虫的用户代理标识可能随官方更新而变化,比如 Googlebot 还分桌面版、移动版和图片版,屏蔽时最好确认你写的那串名字是否覆盖了想拦的所有分身。

2.3 只放行指定目录

有些网站内容集中在某个子目录,比如 /blog/ 或 /news/,其余部分不准备对外开放,可以用如下配置:

User-agent: *
Allow: /blog/
Disallow: /

这里有个容易踩的排序坑:若某爬虫不支持 Allow,它只会读取 Disallow: /,然后全站屏蔽,包括你想开放的 /blog/ 也保不住。所以这种写法对爬虫兼容性要求高,生产环境前先拿主流搜索引擎的测试工具试一遍。

3. 高频错误清单:这些坑几乎人人踩过

许多人写完 robots.txt 后信心满满,结果收录数据异常,回头排查才发现问题出在细节上。下面几个错误出现频率最高,值得逐条对照。

另外,robots.txt 文件体积也别超过 500KB,且单个 Disallow 路径长度不要累加过多,超出部分爬虫会截断处理,后面的规则等于白写。

4. 上线前的验证流程与调整思路

写完配置直接上线是很多人的习惯,但更稳妥的做法是先验证再发布。以下是一套推荐的检查步骤:

  1. 用文本编辑器打开 robots.txt,检查编码是否为 UTF-8,行尾是否有隐藏的 BOM 或空格字符,避免解析异常。
  2. 逐条核对路径与服务器实际目录结构,尤其注意大小写、结尾斜杠、通配符是否恰当。
  3. 用 Google Search Console 的 robots.txt 检查器或同类工具模拟抓取几个典型页面,确认规则生效情况。
  4. 查看服务器访问日志,观察各爬虫的抓取频率是否合理,若某款爬虫完全不来了,多半是规则把它误伤了。
  5. 上线后隔几天复查一次收录量变化,若突然骤降,优先回头排查 robots.txt 的 Disallow 规则。

值得提醒的是,robots.txt 是"建议性"协议,并非强制让爬虫遵守。部分恶意爬虫会无视这套规则强行抓取,这时候应结合 IP 白名单或服务器防火墙做更硬性的访问控制,不能指望一份文本文件就能挡住所有不速之客。

5. 常见问题

5.1 robots.txt 写错了会影响网站安全吗

robots.txt 本身不提供任何安全防护,它只是给守规矩的爬虫看的公开文件。它既不会让网站更安全,也不会让网站更危险,但配置失误可能导致后台或敏感路径被搜索引擎收录,间接让不该暴露的内容流出。真正保护数据要靠权限控制、登录认证和服务器层面的安全策略。

5.2 为什么改了 robots.txt 后收录量没有立刻变化

搜索引擎的爬虫不会一秒内就重新读取 robots.txt,它有自己的抓取周期和缓存机制。Googlebot 通常每 24 到 48 小时重新获取一次,其他搜索引擎可能更慢。如果你想加速,可以在站长后台手动请求重新抓取,或者耐心等待两到三天再观察数据变化。

5.3 robots.txt 里能不能同时屏蔽多个不同目录

完全可以。Disallow 指令可以重复出现多次,每行一个路径,它们之间是"或"的关系,只要匹配其中任意一条就会被拒绝。例如先用一行屏蔽 /tmp/,再用一行屏蔽 /private/,两条规则会同时生效。不过路径尽量写精确,避免用宽泛规则误伤其他正常目录。

6. 总结

robots.txt 是一把双刃剑,配置到位能帮你管好抓取资源、保护隐私页面,写错一个字也可能让整站从搜索结果里蒸发。建议你花点时间把现有文件逐行核对一遍,确认路径大小写、结尾斜杠、Allow 和 Disallow 的先后关系都符合预期,同时用站长工具实测几个关键页面。改完别急着丢一边,观察几天的抓取和收录数据,如果一切平稳,这份配置就算真正过关了。

图1 图2

nginx