robots.txt 配置方法:从语法细节到常见错误速查

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

搜索引擎的爬虫访问一个网站时,第一站通常是读取根目录下的 robots.txt 文件。这个简单的文本文件,是网站向爬虫传递抓取边界的主要方式。配置得当,可以让爬虫把精力集中在重要页面上,同时避免后台页面或临时目录被收录。理解并正确使用它,是每个站长的基本技能。

1. 文件和字段规则:先把基础语法梳理清楚

robots.txt 必须放在域名根目录,比如 https://yourdomain.com/robots.txt。文件本身是纯文本,用 UTF-8 编码保存,每一条指令占一行,路径区分大小写。任何语法格式错误,都可能让整份文件失效,反而带来收录问题。

构成一份完整配置的关键字段包括:

一个容易忽略的细节是,Allow 并非所有搜索引擎都认可。假如某个爬虫不理解 Allow,它最终执行的是更严格的 Disallow 规则,所以不要把放宽权限的希望寄托在 Allow 上。

考虑下面这份配置的实际含义:

User-agent: *
Disallow: /private/
Allow: /private/shared/
Sitemap: https://yourdomain.com/sitemap.xml

这段规则表示:整个站点的内容都可被爬虫抓取,但 /private/ 目录默认是禁区,只有其中的 /shared/ 子目录例外。如果那个爬虫不支持 Allow,那么 /private/shared/ 也将无法被抓取。

2. 常见场景的配置写法:从全开放到精确屏蔽

不同类型的站点,对爬虫策略的需求差别明显。针对下面三种场景,可以快速套用对应的思路。

2.1 内容为主的站点:全站开放抓取

对于资讯平台或新上线的内容站,目标是让爬虫尽量走遍所有页面。此时可以写空白的 Disallow:

User-agent: *
Disallow:

这一行 Disallow 后面什么都不写,就表示没有限制。甚至完全删掉 Disallow 这行,效果一样。最需要警惕的写法,是把 Disallow 误写成 /,那样会导致所有爬虫立刻停止抓取,网站收录会全面中断。

2.2 定向屏蔽:只针对某个搜索引擎

如果希望拒绝某一个爬虫,又不想影响其他引擎,可以单独为它写一段规则:

User-agent: Baiduspider
Disallow: /

这段配置只对百度爬虫生效,Google、Bing 等不受波及。动手前建议去对应搜索引擎的官方文档确认爬虫名称,拼写错误时规则不会报错,但等于白写。

2.3 预留后台入口:常用的组合策略

很多站点不希望搜索结果里出现后台或测试页面,但又要保留给正常的运维人员访问,这类需求可以这样处理:

写清楚后台路径的屏蔽规则,是在不牺牲可用性的前提下维护搜索体验的常用手段。

3. 配置中的重要细节:多久生效与影响范围

很多改动 robots.txt 的站点都会关心生效时间。实际上,文件更新后并不会立刻生效,爬虫重新抓取 robots.txt 的周期通常以天计算,这意味着新规则需要一段时间才会被完整执行。

关于影响范围,有一个认知上的常见误区:robots.txt 只能阻止爬虫抓取页面,无法阻止其他网站引用或复制你的内容。甚至有部分搜索引擎会忽略不适用的规则,或者在移除页面后依然展示其他来源的链接。对于真正敏感的内容,更稳妥的做法是使用密码保护或 noindex 标签,而不是单纯依赖 robots.txt。

4. 避坑清单:这些写法变化会导致规则失效

除了把 Disallow 误写成 / 之外,以下几类问题也值得在写完后检查一遍:

5. 常见问题

5.1 robots.txt 写错了会封锁整个网站吗?

会。只要出现 Disallow: /,绝大多数搜索引擎都会停止抓取全站页面,且已收录的页面也可能逐渐从索引中移除。恢复方法是尽快修改文件内容,并等待爬虫下一次抓取 robots.txt 后重新处理,必要时可以借助搜索引擎的抓取测试工具验证。

5.2 robots.txt 能阻止别人直接访问我的后台链接吗?

不能。它是一个面向爬虫的约定,不具备任何安全防护作用。用户只要知道链接地址,依然可以直接打开。要真正保护后台,请使用账号登录验证或其他安全插件。

5.3 Allow 和 Disallow 同时出现时,谁说了算?

以最长匹配的规则为准,这是大多数搜索引擎的统一做法。例如 Disallow: /admin/ 和 Allow: /admin/public/ 同时存在时,爬虫会放行 public 子目录。但前提是爬虫支持 Allow 指令,不少爬虫只认 Disallow,此时规则效果会与预期不同。

6. 结语

配置 robots.txt 并不复杂,但要避免想当然。先确认爬虫名单,再规划路径的放行与受限区域,最后用官方工具测试是否达到预期。每做一次修改,建议保留一份旧版内容备查,方便出现问题时快速回退。上线后隔几天再观察一次日志,确认主要搜索引擎确实按照你的规则来访问站点。一个正确的 robots.txt,是搜索可见性的基础保障。

图1 图2

nginx