robots.txt 是网站根目录下的一个纯文本文件,它的作用是告诉搜索引擎爬虫哪些内容可以抓取、哪些内容应该绕行。合理设置这个文件,既能保护敏感页面不被收录,也能帮助搜索引擎更高效地抓取网站重点内容,对 SEO 优化起着基础性的作用。掌握它的语法规则和灵活用法,是网站管理者必做的一项功课。
爬虫每次访问网站时,都会优先请求根目录下的 robots.txt 文件。如果文件中写明了规则,爬虫就按规则行事;如果文件缺失或返回错误状态码,爬虫便默认整个网站都可以抓取。理解这一点,就能明白为什么不能随意删除或忽略这个文件。
文件中最核心的两条指令是 User-agent 和 Disallow。User-agent 用来指定这条规则适用于哪个爬虫,比如写上 User-agent: Googlebot 就只对谷歌爬虫生效;写成 User-agent: * 则表示对所有爬虫生效。Disallow 则用来声明禁止访问的具体路径。
举个例子,如果写下这两行:
这就意味着所有爬虫都不能抓取 /admin/ 目录下的内容。想要允许爬虫抓取所有页面,则让 Disallow 后面留空。需要特别留意的是,每条指令的冒号后必须加一个空格,语法写错可能导致整条规则无效。
不同类型的网站在运营中,会遇到各种需要调整抓取权限的情况。下面列出几个典型场景以及对应的写法。
当网站还在开发测试阶段,或者准备进行大调整时,不希望任何页面被收录。这时只需将 Disallow 设为斜杠 /,表示禁止访问根路径下的所有内容,爬虫便不会再抓取任何页面。
电商平台通常不希望购物车、登录页、搜索结果这类动态页面被索引。可以通过以下规则实现:
Disallow: /cart/
Disallow: /login/
Disallow: /search?
这里有几个细节值得注意:路径区分大小写,/Cart/ 与 /cart/ 是不同的;如果只写 /search 而不带问号,就无法拦截带查询参数的搜索结果页面。
站内若有大量 PDF、压缩包等文件不希望被搜索引擎收录,可以利用通配符完成。比如只想屏蔽 PDF 文件,可以写成:
Disallow: /*.pdf$
这里的 $ 符号表示路径结尾,这条规则会精准拦截所有 .pdf 扩展名的文件,同时不影响其他类型的内容。
有时希望某些搜索引擎抓取所有内容,另一些则只能抓取部分页面。可以在同一文件中分块书写规则,先写针对某一爬虫的规则,再写面向所有爬虫的规则。爬虫会自动匹配名称最具体的那个规则块,不会产生冲突。
除了 Disallow 之外,robots.txt 还支持一些进阶指令,能让访问控制更加灵活。
如果一个网站大部分区域都不开放,但恰恰希望爬虫抓取其中一个子目录,可以先写 Disallow: /,让所有路径都处于禁止状态,紧接着写 Allow: /public-content/,打开这个目录的访问权限。这样的组合写法可以实现全站关闭、指定开放的效果,在资源管理上非常实用。
在该文件中还可以注明网站地图的位置,例如写上 Sitemap: https://www.example.com/sitemap.xml,可以让爬虫更快地发现新内容更新的位置。需要确认网站地图文件的真实地址是否有效,避免填错。
Crawl-delay 指令可以规定爬虫连续两次请求之间的等待时长,用于降低服务器压力。不过并非所有搜索引擎都认可这条指令,更多是一种友好的建议,不宜过度依赖。
需要特别强调的是,robots.txt 只是防君子不防小人的协议,它无法阻止恶意爬虫或未经授权的访问。如果页面涉及敏感信息,绝不能只依靠它来保护,必须配合登录验证等安全措施。
配置完成后并不是万事大吉,发布前做好自查能避免很多隐患。
写错文件最直接的后果是页面抓取受限或完全不被抓取,进而影响收录,排名自然也会受到影响。不过这一过程通常不会在几分钟内体现,搜索引擎需要时间重新抓取并处理更新后的规则。发现错误时及时修正,大多数情况下能在下一次抓取周期中恢复正常。
谷歌等主流搜索引擎会遵循更具体、更长的匹配规则。如果 Disallow 与 Allow 指向同一路径,引擎会以匹配长度更长的指令为准。这也是为什么先写 Disallow: / 再写 Allow: /public/ 可以生效的原因。但不同搜索引擎对规则的解析有细微差异,关键路径建议用各站点的站长工具进行测试确认。
可以。语法规则允许在行首使用井号 # 添加注释说明,用于解释某条规则的目的,方便团队协作时理解。需要注意的是,注释必须单独占一行,不能附加在指令行的末尾,否则可能会导致整条规则解析失败。
robots.txt 的配置不算复杂,却直接影响着网站在搜索引擎中的表现。从基础语法到进阶指令,再到发布后的自我检查,每一步都需要细心对待。建议制定好规则后先在测试环境里验证效果,再逐步应用到正式站点,并且养成定期复查的习惯。合理利用这个文件,既能为网站保留核心内容的抓取入口,也能有效避免无价值页面占据索引资源。