每个运营网站的人都绕不开 robots.txt 这个文件。它存放在站点根目录,用纯文本写成,作用是告诉搜索引擎爬虫"哪些地方可以去,哪些地方需要回避"。配置得好,爬虫能更有效率地分配抓取资源,让关键页面更快被收录;配置不当,则可能引发整站索引被清空的严重风险。下面我们就一步步拆解它的语法规则、实际写法和容易踩的坑。
文件的访问地址是固定的,就是在你的域名之后加上 /robots.txt,比如 https://example.com/robots.txt。它的职责是调度爬虫的访问节奏,相当于一个路口的指挥员,但注意,它并不能最终决定页面是否出现在搜索结果里。如果你不想让某个页面被收录,要靠 noindex 标签来实现;robots.txt 能做的,只是阻止爬虫去抓取。
这里必须强调一点:robots.txt 对爬虫来说是一份"君子协定"。正规搜索引擎的爬虫会遵守,但许多恶意采集程序根本不会理会它。所以涉及用户隐私、支付接口或核心商业资料的内容,绝对不能只靠 robots.txt 来防护,一定要叠加登录验证、IP 白名单或防火墙等硬性安全手段。
robots.txt 中的规则按组划分,每组必须以 User-agent 字段打头。书写格式是"字段名: 值",建议全部使用小写字母,并在冒号后留一个空格,这样兼容性更好。
这个字段用于声明规则块针对哪个爬虫。比如写上 User-agent: Googlebot,就只对谷歌的爬虫生效;如果希望涵盖所有搜索引擎爬虫,就用通配符 User-agent: *。一个文件中可以建立多组规则,针对不同爬虫分别设置权限。
Disallow 声明禁止抓取的路径,Allow 则声明允许抓取。有个容易忽略的细节:当 Disallow 后面留空,即写成 Disallow: 时,表示解除所有限制,允许爬虫抓取整个站点。当 Allow 和 Disallow 同时匹配同一个 URL 时,搜索引擎遵循"最长匹配优先"原则,即路径写得更具体的那条规则胜出。例如同时存在 Disallow: /api/ 和 Allow: /api/public/ 时,/api/public/ 下的链接依然可以被抓取。
Sitemap 指令用来声明网站地图的完整 URL,有助于爬虫更快获取站点内容,一般放在文件末尾。Crawl-delay 在字面上是设定抓取间隔,但谷歌官方已经明确表示会忽略此指令。如果确实需要控制抓取频率,应当到 Google Search Console 的后台进行配置。
以下列举几个出现频率较高的配置需求,你可以直接参考并替换成自己的实际路径。
实际使用中要经常检查文件,确认没有误将关键页面屏蔽,否则首页或核心内容目录可能从索引中消失。
配置错误往往比不配置更麻烦。最典型的几个问题包括:把禁止抓取的路径写得太宽,导致整个栏目或全站都无法被抓取;语法格式不规范,比如缺少 User-agent 字段,或者冒号后没有空格,使规则被忽略;以及用 robots.txt 去保护敏感数据,却忽视安全漏洞。
建议的做法是:每做一次修改,都用网址检查工具或爬虫模拟工具确认页面是否仍然正常抓取。
这取决于搜索引擎的抓取频率。通常爬虫会定期访问 robots.txt,发现新规则后停止抓取,但已收录页面的索引清除可能需要数天到数周。若要更快移除,建议配合 noindex 标签使用。
搜索引擎通常不会因为规则错误直接惩罚网站,但可能会导致大量页面无法被抓取,从而影响收录和排名。更危险的是误将整个站点屏蔽,所以修改前务必备份原始文件。
搜索引擎采用"最长匹配优先"原则,路径更具体的那条规则优先。如果两条规则路径长度相同,则 Allow 优先于 Disallow。因此,你可以通过写更精确的路径来实现"除了某区域,其余都放行"的效果。
配置 robots.txt 的核心在于:明确抓取边界,保护敏感数据,且不阻碍正常索引。建议每季度检查一次文件内容,及时清理失效路径;任何规则改动后,用在线检测工具验证效果,再决定是否正式生效。记住,它只是一份"告知函",真正的安全防线还需要其他技术手段来支撑。