Robots.txt 是网站与搜索引擎爬虫之间的"沟通协议",通过这份纯文本文件,站长可以明确告诉 Google、百度等爬虫哪些页面值得抓取、哪些路径应当跳过。一份编写得当的 robots.txt,既能保护后台和隐私文件不被收录,又能引导爬虫集中资源抓取核心内容,对 SEO 的长期效果有直接影响。
robots.txt 必须存放在网站根目录,例如 https://example.com/robots.txt,文件名不可更改大小写。文件由若干条记录组成,每条记录以 User-agent 开头,指明该段规则适用于哪种爬虫,星号 * 代表所有爬虫。紧随其后的是 Disallow(禁止抓取)和 Allow(允许抓取)指令,每条指令单独成行。
解析时有三个关键点要牢记:其一,路径区分大小写,且相对根目录书写,不要写完整 URL;其二,若同时存在 Allow 和 Disallow,匹配路径最长的规则优先;其三,规则按顺序读取,如果长度相同,则最后一条有效。因此,设计复杂规则时务必注意指令的排列顺序,避免意外覆盖。
网站处于改版或临时维护阶段,希望完全停止被索引时,可写入:
User-agent: * Disallow: /这个指令虽能阻止新页面收录,但搜索引擎已经索引的历史页面不会自动消失,需要配合 Search Console 或百度搜索资源平台的删除工具才能真正移除。
默认情况下爬虫可以访问所有公开内容,但显式声明会让规则更清晰:
User-agent: * Allow: /这种做法适合作为新站上线的基础模板,也方便在日后修改时快速对照排查问题。
管理后台、缓存目录和隐私页面应禁止被访问,常见的写法如下:
User-agent: * Disallow: /admin/ Disallow: /tmp/ Disallow: /private.html注意目录路径末尾必须带斜杠,而单个文件路径则不需要。避免误用路径是此处的头号避坑点,例如把 /admin/ 写成 /admin 就会导致后台内容被爬虫抓取。
当希望不同爬虫看到不同的抓取规则时,可以分段书写,例如禁止百度爬虫抓取站内搜索结果页,但允许 Google 正常访问:
User-agent: Baiduspider Disallow: /search/ User-agent: Googlebot Allow: /search/这种分组方式适合多语言站点或针对不同市场做差异化处理,但务必检查各段之间没有逻辑冲突,否则爬虫可能陷入混乱而忽略整份文件。
在文件末尾附上 Sitemap 声明,可以加速搜索引擎发现并更新你的网址列表,写法为:
Sitemap: https://www.example.com/sitemap.xml这一行独立于所有 User-agent 段,不受任何 Disallow 规则的约束,且必须使用规范的完整 URL 格式。
绝大多数主流搜索引擎都支持 * 匹配任意数量的字符,$ 匹配路径结尾。例如想禁止抓取所有 PDF 文档,可以这样写:
User-agent: * Disallow: /*.pdf$通配符虽然强大,但不宜滥用。在不需要灵活匹配时,直接列明具体路径反而更容易维护,也降低了规则意外生效的风险。
编写 robots.txt 时,有几个高频错误需要警惕。第一,文件末尾缺少换行符,可能导致最后一条规则失效;第二,路径中混入了中文字符或空格,会直接导致规则无法匹配;第三,将 Disallow 留空,例如写 Disallow: ,这在多数爬虫中代表"允许抓取所有",与很多人的直觉相反。
写完文件后,建议通过 Google Search Console 的"robots.txt 测试工具"或百度搜索资源平台的对应功能进行验证,检查是否有语法错误以及规则是否符合预期。同时,定期审查文件内容,因为随着站点结构变化,旧的规则可能成为爬虫抓取的障碍。
通常需要数小时到几天不等。Google 会周期性重新抓取 robots.txt 文件,百度也有类似的刷新机制,具体时间取决于爬虫的抓取频率。如果急于生效,可以通过 Search Console 或百度搜索资源平台手动提交该文件请求重新抓取。
不加 Disallow 指令时,爬虫默认允许抓取所有公开内容;而写 Disallow: (冒号后无内容)在绝大多数爬虫的解析中等同于允许抓取,但这一写法容易引发歧义,不推荐使用。想要明确允许抓取时,直接写 Allow: / 更清晰。
不能。robots.txt 只是对合规爬虫的礼貌要求,恶意爬虫会无视该文件。真正涉及隐私或需要权限控制的内容,应同时配合登录验证、IP 白名单或前端不可见等安全措施,把 robots.txt 作为第一道防线而非唯一保障。
写好 robots.txt 不是一劳永逸的事,它需要与站点结构调整保持同步。建议读者立即检查根目录下的文件,确认其中的路径与实际目录结构一致,删除不再使用的旧规则,并在每次改版后重新测试。把这份文件当作站内抓取资源的分配器来对待,你的 SEO 基础就会更加稳固。