robots.txt本质上是一个存放在网站根目录下的纯文本文件,它的作用是向搜索引擎爬虫传递明确的抓取指令,告知哪些内容可以被收录、哪些路径应当绕开。对于网站管理者来说,合理配置这个文件,可以有效引导爬虫把精力集中在核心页面上,同时避免后台目录、用户数据等敏感区域被搜索引擎索引。下面从语法结构出发,梳理不同场景下的配置思路与实操中容易忽略的细节。
一份完整的robots.txt文件由多个指令块组成,每个指令块通过以下几个核心字段界定抓取范围:
一个常见的配置示例:
User-agent: *
Disallow: /tmp/
Allow: /tmp/public/
Sitemap: https://www.example.com/sitemap.xml
书写时需要留意两点:路径是区分大小写的,且所有符号必须使用半角格式。任何一行的拼写或格式错误,都可能导致整条规则被忽略。
根据站点所处阶段和内容结构的不同,robots.txt的写法也会有所差异。以下整理了几类典型场景及对应的推荐写法。
一般用于新网站上线前的调试阶段,或站点需要短期停摆维护时。需要提醒的是,屏蔽抓取并不会立刻移除搜索引擎已有的页面快照,若想清除旧有收录记录,还需配合站长工具中的索引删除功能。
User-agent: *
Disallow: /
如果网站全部内容都适合被收录,不需要隐藏任何资源,那么可以不添加Disallow规则,只需声明Sitemap地址即可。这种配置最简单,也有助于爬虫顺利遍历整个站点。
User-agent: *
Allow: /
Sitemap: https://www.example.com/sitemap.xml
无论是企业官网还是内容型站点,通常都需要屏蔽后台登录入口、个人账户页面以及临时生成的文件夹,以防敏感信息泄露或遭到批量抓取。
User-agent: *
Disallow: /admin/
Disallow: /member/
Disallow: /backup/
这一做法能明显降低后台地址出现在搜索结果中的可能性,从而减少被定向扫描和攻击的风险。不过要注意,robots.txt只是君子协定,对于真正恶意的爬虫并无强制约束力,关键数据仍应在服务端做好访问权限控制。
若希望主流搜索引擎正常收录,同时限制某些来源不明的爬虫抓取资源,可以为不同爬虫分别书写独立的指令块。
User-agent: BadBot
Disallow: /
User-agent: *
Allow: /
书写顺序上,建议把针对特定爬虫的规则放在前面,通配规则放在后面,便于后续维护时快速定位。
很多站长在配置robots.txt时容易陷入几个误区,这里逐一说明:
robots.txt必须放在域名根目录下,且文件名严格为全小写字母。放置完成后,可通过浏览器直接访问 https://你的域名/robots.txt 来查看文件是否正常返回。如果想测试具体规则是否生效,可以使用搜索引擎提供的抓取诊断工具,模拟某条URL,确认返回的抓取状态是否与预期一致。
另外,对文件做任何修改后,改动通常不会立即同步到所有搜索引擎,一般需要等待数小时到数天不等。若修改了Sitemap地址,建议同时到站长平台提交更新,以加速通知。
不会。robots.txt只能影响爬虫之后的抓取行为,对已经收录的页面没有作用。若希望尽快让已收录页面从索引中移除,需要在搜索引擎的站长工具中主动提交删除请求。屏蔽抓取并不等于删除收录。
Allow规则优先于Disallow规则。也就是说,即便某个目录整体被禁止抓取,只要该目录下存在单独的Allow路径,那一条路径仍然可以被爬虫访问。这个机制常用于"屏蔽整个文件夹但保留其中一个子页面"的场景。
可以。使用井号(#)开头即可添加注释内容,注释行会被搜索引擎忽略。建议在文件顶部写明配置日期和修改目的,方便后续维护时理解当初的设置意图。
robots.txt的配置并不复杂,但精细程度直接关系到搜索流量的质量。建议你在调整时先想清楚每个目录的用途,再动手修改;同时养成定期查看抓取报告的习惯,确认没有误伤重要页面。对大多数站点而言,"声明Sitemap + 精准屏蔽少量目录"的保守方案,往往比激进的全站屏蔽更有利于长期的自然搜索增长。