robots.txt 是放置在网站根目录下的纯文本文件,用来向搜索引擎爬虫声明站内哪些路径可以抓取、哪些需要绕行。如果配置合理,爬虫能更集中地收录核心页面,同时避免后台或测试目录被索引;如果写错,可能造成整站收录异常甚至从搜索结果中消失。本文从语法基础讲起,帮你避开那些常见的坑。
这份文件本质上是一份面向爬虫的公开声明,描述抓取边界,它并非安全屏障,更像是一种约定。主流搜索引擎大多会遵守其中规则,但恶意程序或非标准工具并不一定理会。因此,它对 SEO 的价值主要体现在三个方面:第一,阻止后台、测试页等内部内容被抓取;第二,减少带大量动态参数的 URL 被频繁抓取带来的服务器压力;第三,声明 Sitemap 地址,帮助爬虫更快发现新内容。
需要明确的是,任何人都能直接访问并查看这份文件。凡涉及真实用户数据、数据库接口或敏感信息路径,绝不能只靠它来保护,必须配合登录验证、IP 白名单等更可靠的手段。
语法结构很简单,按“字段: 值”的格式书写,每条指令占一行。字段名不区分大小写,但路径部分严格区分大小写。
假设你的后台目录为 /admin-area/,但其中有一个公开说明页希望被收录,同时你想告知爬虫站点地图位置,可以这样写:
User-agent: *
Disallow: /admin-area/
Allow: /admin-area/faq.html
Sitemap: https://www.example.com/sitemap.xml
这段配置表达三层含义:所有爬虫不可读取 admin-area 下的内容;其中的 faq.html 作为例外可以抓取;同时告知了 sitemap 地址。
理解匹配规则是写出可靠配置的前提,不少失误源于对规则的一知半解。
匹配基于路径前缀进行。比如 Disallow: /private 会禁止 /private、/private.html 以及 /privateshop/ 的访问。要精确匹配某个目录,结尾必须带上斜杠,写成 /private/。另外,标准中并不支持通配符(*),虽然部分搜索引擎扩展支持,但为了最大兼容性,建议避免依赖通配符。
路径大小写敏感,/Admin 和 /admin 是两个不同路径。如果服务器上实际目录是 /Admin,配置中写成 /admin 就会失效。关于根目录,Disallow: / 表示禁止所有爬虫访问整个站点,这是“临时整站屏蔽”的做法,常用于站点未完成时。一旦配置上线并生效,务必及时移除,否则会导致整站从搜索结果中消失。
例如,想屏蔽 /tmp 目录却写成 Disallow: /tmp 而非 /tmp/,结果 /tmp-page/ 也被一并屏蔽;或者误将 Sitemap 地址写成相对路径,爬虫无法解析。判断配置是否生效,可访问 /robots.txt 查看文件内容,并用搜索引擎的抓取测试工具验证规则是否按预期执行。
编写时尽量保持简洁,避免冗长规则影响爬虫效率。建议在文件顶部用注释标明更新时间,方便后续维护。若站点有多个子域名,需为每个子域名单独放置 robots.txt,因为该文件仅对当前域名生效。
一个常见陷阱是“Allow 不生效”。当同时出现 Disallow 和 Allow 规则时,搜索引擎会按最长匹配前缀优先的原则处理。例如 Disallow: /admin,Allow: /admin/faq.html,由于后者路径更长,会被优先应用,从而成功放行。理解这一点能避免反复调试无效规则。
可以。当 Disallow 规则生效时,搜索引擎会拒绝抓取对应 URL,页面通常不会被收录。但需注意,若其他网站通过外链指向该页面,搜索引擎可能仍会索引 URL 本身(不显示内容)。彻底移除收录需结合 noindex 标签或验证码等更严格手段。
没有固定时间。搜索引擎通常定期抓取该文件,短则几分钟,长则数天。更改后建议使用搜索引擎的抓取测试工具主动请求重新抓取,可以加快规则生效速度。
如果站点结构简单、无敏感目录需要屏蔽,也可以不建。新建时需确保文件存放在站点根目录且可通过 https://example.com/robots.txt 直接访问。注意不要将文件放在子目录中,否则不会生效。
写好 robots.txt 的关键在于明确边界、精确匹配路径并验证结果。建议每次修改后都检查文件内容,用抓取测试工具确认规则符合预期,尤其是涉及 Disallow: / 这样的全局规则时要格外谨慎。从今日起,为你的站点建立一份清晰且经过验证的配置,让爬虫资源更集中于真正重要的页面。