搜索引擎的爬虫并不是网站里所有内容都该被收录,后台目录、临时页面或敏感数据如果被抓取并索引,既可能泄露信息,也会占用服务器带宽。robots.txt 就是用来告诉爬虫哪些路径可以抓取、哪些路径应当绕行的配置文件。掌握它的语法和常见写法,能让你在控制爬取范围时更得心应手。下面从放置位置和基础指令开始,逐步拆解实际配置中的关键点。
robots.txt 必须放在网站根目录,也就是通过域名直接访问到的位置。比如你的站点是 example.com,那么文件地址就是 https://example.com/robots.txt。文件内容由多个规则块组成,每个块都必须先声明 User-agent,指定这条规则适用的爬虫。
一个最基本的开放示例,允许所有爬虫访问并提交地图文件:
User-agent: *
Disallow:
Sitemap: https://example.com/sitemap.xml
编写时每条指令独占一行,冒号后保留一个空格,行尾不要有多余字符。
不同网站的抓取需求差异较大,以下几个是日常使用频率较高的配置组合,可以直接参考调整。
网站还在测试或未正式上线时,用 Disallow: / 可以阻止所有爬虫进入。相比单独屏蔽某个目录,这种方式更彻底,也能避免测试环境被意外收录到搜索结果中。
User-agent: *
Disallow: /
大多数情况下,只需要屏蔽一小部分区域,比如后台管理页面或用户订单记录。想禁止爬虫访问 /admin/ 和 /private/,写法如下:
User-agent: *
Disallow: /admin/
Disallow: /private/
需要注意,Allow 指令并非所有爬虫都支持。如果不确定,只列出 Disallow 即可,因为没有被 Disallow 声明的路径默认是允许抓取的,不需要额外写 Allow。
较大的站点可能需要区别对待不同搜索引擎。例如允许 Googlebot 抓取全站,同时限制其他爬虫访问下载资源目录:
User-agent: Googlebot
Allow: /
User-agent: *
Disallow: /downloads/
这种分段写法在同一个文件里可以重复多次,按从上到下的顺序匹配,优先级会取最具体的 User-agent 声明。
很多站点在配置时容易忽略一些细节,导致规则没有按预期生效。以下是几个常见的避坑点:
配置完成后,不能直接认为爬虫就会按你的想法行动。建议按照以下步骤检查一遍:
建议在修改规则后的 24-48 小时内持续关注日志变化,避免因误配置导致整站从索引中消失。
不能。robots.txt 只是给爬虫的请求,屏蔽了抓取,但如果其他网站通过外链指向了你的敏感页面,搜索引擎仍可能根据链接内容生成摘要并展示。真正敏感的数据不应当只依赖 robots.txt,还需要设置登录验证或服务器层面的访问限制。
如果 robots.txt 文件存在但内容为空,或者文件不存在,爬虫会默认抓取网站所有公开可访问的内容。如果你想保持全站开放,直接使用 User-agent: * 加 Disallow: 留空的写法即可,这样既声明了规则又不会误屏蔽任何路径。
规则按文件中的顺序从上到下匹配,以最先匹配到的规则为准。Googlebot 支持 Allow,且更长的路径会优先匹配。但为了减少歧义,建议同一组规则的编写顺序保持 Disallow 在前、Allow 在后,并且不要混合多个相同层级的路径声明。
robots.txt 的核心作用是用最少的规则控制爬虫的抓取范围,配置时遵循两个原则即可:一是只写必要的 Disallow 声明,二是每个修改都通过测试工具验证效果。先根据现有网站结构列出需要屏蔽的路径,再针对不同搜索引擎设置权限,最后提交站点地图完成闭环。保持文件简洁、注释清晰,后续维护时就能省去很多排查时间。