robots.txt 生成器

robots.txt 生成器,是指按爬虫分组可视化填写 Allow、Disallow 规则与 Sitemap 地址,一键生成根目录 robots.txt 文件的前端工具。它免费、无需注册,内置屏蔽 AI 训练爬虫、WordPress 后台等预设,可粘贴现有 robots.txt 做语法体检,并输入网址测试 Googlebot、百度等爬虫能否抓取、命中哪一条规则。内容全在浏览器本地生成,不上传。

一键套用预设

编辑规则

分组 1
User-agent(爬虫)
*
规则
分组 2
User-agent(爬虫)
GPTBotClaudeBotCCBotGoogle-Extended
规则
Sitemap(完整网址,可多条)
高级:文件头注释、Host、Clean-param

规则只在本页内存里,刷新即恢复示例;不写入本地存储,也不上传。

生成结果

User-agent: *
Disallow: /admin/

# AI 训练爬虫
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: CCBot
User-agent: Google-Extended
Disallow: /

Sitemap: https://example.com/sitemap.xml

2 个分组 · 2 条规则 · 1 条 Sitemap · 192 字节(Google 上限 500 KiB)

语法体检(2 条)

  • 提示第 5 行单独列出的爬虫不会继承 * 组的规则,* 里禁止的路径对它们放开了
  • 提示第 8 行这个 token 只在 robots.txt 里生效,访问日志里永远搜不到它;屏蔽它不影响搜索收录(Google-Extended)

抓取测试:这个网址能被抓吗

测试的就是上面代码区那份即将下载的文本,按 RFC 9309 与 Google 公开规则判定,个别搜索引擎可能不同。

✕ 禁止抓取

禁止抓取:* 组第 2 行 Disallow: /admin/ 命中(遵守 robots 协议的爬虫不会抓取这个网址)

实际参与匹配的路径:/admin/login

批量矩阵:网址 × 爬虫

最多 50 条网址 × 12 个爬虫,点格子看判定理由。

网址GooglebotBaiduspiderbingbotGPTBotClaudeBotGoogle-Extended
/
/admin/
/blog/hello

如何使用robots.txt 生成器

1

robots.txt 在线生成:点一个预设,或在分组卡片里从爬虫名录添加 User-agent,再逐条添加 Allow / Disallow 路径,最后填上 Sitemap 完整网址;已有文件可以切到「源码」粘进去,点「解析为表单」接着改。

2

看语法体检清单,按必须改、注意、提示三级逐条处理;再在「抓取测试」里输入网址、选爬虫,确认它被哪一组哪一行规则判为允许或禁止,批量矩阵能一次看多个网址 × 多个爬虫。

3

复制或下载 robots.txt,上传到网站根目录,让 https://你的域名/robots.txt 能直接打开;Next.js 项目可以切到 robots.ts 页签,把生成的代码放进 app/robots.ts。

关于robots.txt 生成器的常见问题

robots.txt 生成器会上传我的网站信息吗?
不会上传。你填的路径、域名、Sitemap 地址和粘贴进来的 robots.txt,全部在浏览器本地拼接、解析和判定,不发给任何服务器,本工具也不会替你去抓取线上的 robots.txt。规则只放在当前页面的内存里,刷新即恢复示例,不写进本地存储;只有输出格式、组间空行和测试器默认爬虫这几项展示偏好会记在本机。站点本身仅有匿名访问量统计,与你填的内容无关。
robots.txt 怎么写才规范,最少要写哪几行?
最少两行:一行 User-agent: * 表示下面的规则对所有爬虫生效,一行 Disallow: 加路径表示禁止抓取的目录,Disallow 后面留空就是不禁止任何内容。规范的写法还有三点:路径必须以斜杠开头,写成 admin/ 不会匹配任何网址;每个分组至少要有一条规则;Sitemap 要写带 https 和域名的完整网址。文件名必须全小写叫 robots.txt,用 UTF-8 编码。本工具生成时会自动补齐空分组,体检清单会把不规范的写法逐行标出来。
robots.txt 屏蔽 AI 爬虫怎么写,会影响收录吗?
给 AI 训练爬虫单独写一组:User-agent 依次写 GPTBot、ClaudeBot、CCBot、Google-Extended、Applebot-Extended、Bytespider 等,下面一行 Disallow: /。这样不影响搜索收录,因为 Googlebot、百度蜘蛛走的是 * 组或它们自己的组。要分清三类:训练抓取、用户在 AI 对话里点链接时的实时抓取(ChatGPT-User 等)、AI 搜索抓取(OAI-SearchBot 等),屏蔽后果各不相同。本页预设默认只屏蔽训练类。名录会过时,也有爬虫不遵守协议,不能宣称屏蔽了全部 AI 爬虫。
robots.txt 里 Allow 和 Disallow 冲突时听谁的?
听路径更长、更具体的那一条,和谁写在前面无关。比如 Disallow: /wp-admin/ 和 Allow: /wp-admin/admin-ajax.php 同时命中 admin-ajax.php 时,Allow 那条更长,所以允许抓取。两条一样长、一个允许一个禁止时,按 RFC 9309 与 Google 的规则 Allow 胜出。有些老教程说先写的优先,这是错的。本工具的抓取测试会把命中的规则、落选的规则以及落选原因(更短或平局让给 Allow)逐条列出来。
robots.txt 通配符 * 和 $ 怎么用,问号要转义吗?
星号匹配任意长度的任意字符,包括斜杠,所以 Disallow: /*.pdf 能挡住任意目录下的 PDF。美元符只有放在末尾才表示网址到此结束,Disallow: /*.pdf$ 挡得住 /a/b.pdf,挡不住带参数的 /a/b.pdf?x=1;放在中间的美元符只是普通字符。问号在 robots.txt 里就是问号本身,不是通配符,也不需要转义,Disallow: /*?sort= 挡的是网址里任意位置出现的 ?sort=。路径区分大小写,/Fish 和 /fish 不是同一条。
robots.txt 能阻止网页被百度收录吗?
不能保证。robots.txt 禁止百度抓取的只是抓取:被别的网站链接到的地址,仍可能只带网址、不带摘要地出现在搜索结果里。要让页面不被收录,应该在页面里写 noindex(meta robots 或 X-Robots-Tag 响应头),而且这个页面不能同时被 robots.txt 禁止抓取,否则爬虫根本看不到那句 noindex,形成死循环。测试站、后台这类真正不想公开的内容,最可靠的是加密码或只允许内网访问。
robots.txt 的 Crawl-delay 对百度和谷歌有用吗?
没用。Google 官方文档写明只支持 user-agent、allow、disallow、sitemap 四种指令,Crawl-delay 会被忽略;百度的抓取频次要到百度搜索资源平台里调整;Yandex 也已不再读取它。Bing 支持 Crawl-delay,部分 SEO 工具爬虫也认。所以如果你是为了减轻服务器压力,与其写 Crawl-delay,不如去各家站长平台设置抓取频率,或者在服务器层做限速。本工具在对 Google、百度生效的分组里写了 Crawl-delay 时会给出提示。
robots.txt 为什么单独列出的爬虫不受 * 组限制?
因为爬虫只认最匹配自己的那一组:一旦某个分组点名了 GPTBot,GPTBot 就只看这一组,* 组里的规则对它完全不生效,两组不会叠加。于是常见的翻车是:* 组禁止了 /admin/,又给 GPTBot 单独写了一组只禁止 /private,结果 GPTBot 反而能抓 /admin/。正确做法是把 * 组里想保留的禁止规则在专属分组里再写一遍。本工具的抓取测试遇到这种情况会明确提示专属分组不继承 * 组。
robots.txt 放在哪里才生效,改完多久生效?
必须放在网站根目录,用 https://你的域名/robots.txt 能直接打开才算数,放在子目录里无效。它只管同一协议、同一域名、同一端口下的网址,www 与不带 www、http 与 https、各个子域名都要各放一份。改完不会立刻生效:搜索引擎会缓存 robots.txt,Google 通常最长缓存约 24 小时,可以在 Search Console 的 robots.txt 报告里请求重新抓取。文件超过 500 KiB 时 Google 只读前 500 KiB。
Next.js 项目的 robots.ts 和 robots.txt 怎么写?
Next.js 13.3 及以上的 App Router 可以在 app 目录下放一个 robots.ts,默认导出一个返回 MetadataRoute.Robots 对象的函数,里面写 rules、sitemap、host,构建时自动生成 /robots.txt;也可以直接把静态的 robots.txt 放进 app 或 public 目录。本工具的 robots.ts 页签会把同一份规则转成这种写法。注意 Clean-param、Noindex 等指令在这个对象里没有对应字段,工具会把无法表达的条目列出来,不会静默丢掉。
robots.txt 能挡住采集脚本和 curl 吗?
挡不住。robots.txt 是君子协定,只约束主动遵守协议的爬虫,curl、python-requests、各类采集脚本根本不会去读它,所以本工具的爬虫名录也不收这类 HTTP 客户端,免得让人误以为写上就能挡住。对不守规矩的抓取,要靠服务器层手段:按 User-Agent 或 IP 拦截、限速、验证码、登录墙等。另外 robots.txt 是公开文件,任何人都能看到你禁止了哪些路径,所以别把它当成隐藏后台地址的办法。
robots.txt 检测工具怎么测试网址能否被抓取?
把现有 robots.txt 粘进本页的源码框(或直接用表单生成一份),在抓取测试里输入完整网址或以斜杠开头的路径,再选一个爬虫,就会给出允许或禁止的结论、生效的是哪一组、命中第几行哪条规则,以及其他命中但落选的规则为什么输了。中文路径会按 UTF-8 百分号编码后再匹配,网址里的锚点会被丢掉。批量矩阵可以一次看最多 50 个网址乘 12 个爬虫。判定按 RFC 9309 与 Google 公开规则,个别搜索引擎可能不同。

功能特点:生成、体检、测试一页完成

  • robots 文件生成:按爬虫分组可视化编辑,实时输出 UTF-8、LF 换行的 robots.txt,空分组自动补一行空 Disallow,路径里的换行会被删除、井号编码为 %23,防止一条路径注入一整行新指令。
  • robots.txt 检测:内置 25 条体检规则,按必须改、注意、提示三级标出孤儿规则、路径缺斜杠、拼写错误、屏蔽 CSS/JS 等常见问题。
  • 抓取测试与矩阵:输入网址选爬虫即给出允许或禁止,并指出生效分组与命中行;批量网址 × 多爬虫的网格让整份规则一目了然。
  • 6 个预设:允许全部抓取、禁止全部抓取(测试站)、屏蔽 AI 训练爬虫、WordPress 常用、屏蔽站内搜索与排序参数、只允许主流搜索引擎。其中「屏蔽 AI 训练爬虫」一键屏蔽 GPTBot 等训练抓取,WordPress robots.txt 预设顺带演示了最长匹配。
  • 与 User-Agent 解析共用爬虫名录:56 个 robots token,按搜索、AI 训练、AI 用户触发、AI 搜索、社交、SEO 工具分类,名录版本 2026.10。
  • Next.js robots.ts 写法:同一份规则一键转成 App Router 的 MetadataRoute.Robots 代码,表达不了的指令明确列出。
  • 粘贴反解析:把线上的 robots.txt 粘进来转回表单,注释归属、行内注释、未知指令保留与否都有说明。

英文里这类工具叫 robots.txt generator 或 robots.txt tester;本页把两件事放在一起,并且测试的就是你即将下载的那份文本——模型先生成文本,再把文本重新解析后判定,保证「测的就是你下载的」。

robots.txt 测试工具的判定规则:三条最常见的误解

  1. 专属分组不继承 * 组:爬虫只看最匹配自己的那一组。给 GPTBot 单独写了组,User-agent: * 下的禁止规则就对它不生效。
  2. 只看最长匹配,不看先后顺序:同时命中多条规则时路径更长的胜出,一样长时 Allow 胜出;规则写在文件里的先后与结论无关。
  3. 中文路径按 UTF-8 百分号编码后再比:Disallow: /产品/ 同样挡得住浏览器发出的 /%E4%BA%A7%E5%93%81/,十六进制大小写不影响结果,但 %2F 和斜杠不是一回事。

指令速查:Disallow 和 Allow 的区别、robots.txt Sitemap 与 Crawl-delay

Disallow 和 Allow 的区别一句话:Disallow 划出不许抓的范围,Allow 在这个范围里开口子,两者冲突时按最长匹配裁决。robots.txt Sitemap 行写在文件任意位置都行,但必须是完整网址。各家搜索引擎对指令的支持不同,下表查不到官方说法的格子写「未公开」,不猜。

robots.txt 指令 × 搜索引擎支持对照(共 8 条)
指令写法作用Google百度BingYandex搜狗360
DisallowDisallow: /admin/禁止抓取以该路径开头的网址;留空表示不禁止支持支持支持支持支持支持
AllowAllow: /admin/public/在 Disallow 范围里放行更具体的路径,按最长匹配胜出支持支持支持支持未公开未公开
通配符 *Disallow: /*?sort=匹配任意长度的任意字符(含 /)支持支持支持支持未公开未公开
结尾符 $Disallow: /*.pdf$只放在末尾,表示网址到此结束支持支持支持支持未公开未公开
SitemapSitemap: https://example.com/sitemap.xml告诉爬虫站点地图在哪,必须写完整网址支持未公开支持支持未公开未公开
Crawl-delayCrawl-delay: 10两次抓取之间至少间隔的秒数不支持不支持支持不支持未公开未公开
HostHost: example.com指定主镜像域名不支持未公开未公开已弃用未公开未公开
Clean-paramClean-param: utm_source /声明不影响页面内容的参数,避免重复抓取不支持未公开未公开支持未公开未公开

想让 robots.txt 禁止百度抓取整站,写 User-agent: Baiduspider 加 Disallow: / 两行即可;但它挡的只是抓取,不保证已收录的网址消失。

常见爬虫 robots token 对照(含 Google-Extended)

robots.txt 里写的是 robots token,不一定等于访问日志里的 UA 名。Google-Extended、Applebot-Extended 只存在于 robots.txt,日志里永远搜不到;屏蔽 GPTBot 也不等于屏蔽 ChatGPT-User,它们是两个不同的 token。下表与 User-Agent 解析工具共用同一份名录。

常见爬虫 robots token、运营者、用途与屏蔽后果(名录版本 2026.10)
robots token运营者用途屏蔽后果
GooglebotGoogle搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
Googlebot-ImageGoogle搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
Googlebot-NewsGoogle搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
Googlebot-VideoGoogle搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
Google-InspectionToolGoogle搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
Storebot-GoogleGoogle搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
AdsBot-GoogleGoogle搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
Mediapartners-GoogleGoogle搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
Baiduspider百度搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
Baiduspider-render百度搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
bingbotMicrosoft搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
adidxbotMicrosoft搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
Sogou web spider搜狗搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
360Spider360搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
HaosouSpider360搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
YisouSpider神马搜索(UC / 阿里)搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
PetalBot华为(花瓣搜索)搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
YandexBotYandex搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
DuckDuckBotDuckDuckGo搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
SlurpYahoo搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
ApplebotApple搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
YetiNAVER搜索引擎屏蔽后该搜索引擎不再抓取,排名与摘要会逐步受影响
GPTBotOpenAIAI 训练屏蔽后内容不再被抓去训练模型,不影响搜索收录
ClaudeBotAnthropicAI 训练屏蔽后内容不再被抓去训练模型,不影响搜索收录
anthropic-aiAnthropicAI 训练屏蔽后内容不再被抓去训练模型,不影响搜索收录
CCBotCommon CrawlAI 训练屏蔽后内容不再被抓去训练模型,不影响搜索收录
Bytespider字节跳动AI 训练屏蔽后内容不再被抓去训练模型,不影响搜索收录
meta-externalagentMetaAI 训练屏蔽后内容不再被抓去训练模型,不影响搜索收录
AmazonbotAmazonAI 训练屏蔽后内容不再被抓去训练模型,不影响搜索收录
cohere-aiCohereAI 训练屏蔽后内容不再被抓去训练模型,不影响搜索收录
DiffbotDiffbotAI 训练屏蔽后内容不再被抓去训练模型,不影响搜索收录
Google-ExtendedGoogleAI 训练屏蔽后内容不再被抓去训练模型,不影响搜索收录;只在 robots.txt 里生效
Applebot-ExtendedAppleAI 训练屏蔽后内容不再被抓去训练模型,不影响搜索收录;只在 robots.txt 里生效
ChatGPT-UserOpenAIAI 用户触发屏蔽后用户在 AI 对话里点开你的链接会打不开
Claude-UserAnthropicAI 用户触发屏蔽后用户在 AI 对话里点开你的链接会打不开
Perplexity-UserPerplexityAI 用户触发屏蔽后用户在 AI 对话里点开你的链接会打不开
OAI-SearchBotOpenAIAI 搜索屏蔽后你的页面不会出现在该 AI 搜索的引用结果里
PerplexityBotPerplexityAI 搜索屏蔽后你的页面不会出现在该 AI 搜索的引用结果里

robots.txt 通配符与匹配示例

下表「挡得住 / 挡不住」由本工具的匹配函数现场算出,不是手写的结论。

通配符 * 与结尾符 $ 的匹配示例(路径区分大小写)
规则路径挡得住挡不住
/fish/fish、/fish.html、/fishheads/yummy.html/Fish.asp、/catfish
/fish//fish/、/fish/salmon.html/fish、/fish.html
/*.pdf$/a/b.pdf/a/b.pdf?x=1、/a.pdfx
/*?/list?page=2、/a/?/list
/a$b/a$b/ab

robots.txt 检测:体检覆盖的 25 条常见问题

体检规则表(共 25 条,页面与工具用的是同一份数据)
级别判据提示
必须改第一条 User-agent 之前出现规则这几行规则不属于任何分组,所有爬虫都会忽略它们
必须改非空非注释且没有冒号这一行不是「指令: 值」格式,会被忽略
必须改路径不以 / 或 * 开头路径要以 / 开头,写成 admin/ 不会匹配任何网址
必须改Sitemap 不是完整网址Sitemap 必须写完整地址(含 https:// 与域名),例如 https://example.com/sitemap.xml
必须改Sitemap 用了 javascript: 等危险协议这个地址的协议不安全,已不写入文件
注意* 组 Disallow: / 且没有放行规则所有爬虫都被禁止抓取全站;注意这不等于「不被收录」
注意指令名拼写不标准拼写不标准,Google 能容错读入,其他搜索引擎未必认
注意User-agent 带版本号或多余后缀robots token 不带版本号,写 Googlebot 即可
注意出现 Noindex 指令robots.txt 里的 Noindex 已不被 Google 支持,要用 meta robots 或 X-Robots-Tag
注意Disallow 了 CSS / JS 或静态资源目录屏蔽 CSS / JS 会让搜索引擎渲染不出页面,可能影响排名
注意文件超过 500 KiB超过 500 KiB,Google 只读前 500 KiB,后面的规则会被忽略
提示User-agent 不在爬虫名录名录里没有这个爬虫,请确认 token 拼写(大小写不敏感)
提示对 Google / 百度适用的分组写了 Crawl-delayGoogle 和百度不读 Crawl-delay,抓取频率要去各自的站长平台调
提示出现 Host 指令Host 只有 Yandex 曾识别,且已弃用
提示有 * 组禁止规则,同时有单独列出的爬虫单独列出的爬虫不会继承 * 组的规则,* 里禁止的路径对它们放开了
提示同一爬虫出现在多个分组这些分组会被合并处理,建议写在一起更好读
提示同组同一路径既 Allow 又 Disallow长度相同时 Allow 胜出,这条 Disallow 不生效
提示$ 不在路径末尾$ 只在末尾表示「以此结尾」,中间的 $ 是普通字符
提示路径里有 ?? 在 robots.txt 里就是问号本身,不是通配符
提示路径里有 ## 之后会被当成注释;生成时已编码为 %23
提示路径含中文等非 ASCII 字符中文路径会按 UTF-8 百分号编码后匹配(测试器已按此处理)
提示文件开头有 BOM文件开头有 BOM,多数爬虫能处理,建议另存为无 BOM 的 UTF-8
提示分组没有任何规则空分组已自动补一行空 Disallow:(等于允许全部)
提示Disallow: / 点名了 AI 用户触发抓取这类是用户在 AI 对话里点开你链接时的抓取,屏蔽后用户在 AI 里打不开你的页面
提示用了 Google-Extended / Applebot-Extended这个 token 只在 robots.txt 里生效,访问日志里永远搜不到它;屏蔽它不影响搜索收录