robots.txt 生成器
在线生成 robots.txt:按 User-agent 分组复制 Allow / Disallow 规则,支持 Crawl-delay 与 Sitemap 声明,规则为空时拦住不生成,避免产出等价于全站放行的文件。
每个 User-agent 都拿到同一份规则
上面填的规则会原样复制到每一个 User-agent 组里,顺序不变 —— robots.txt 里没有继承机制,想让百度和谷歌行为不同就得写两组。
User-agent 留空时按通配符 * 处理,也就是对所有爬虫生效。
为什么要拦至少一条
一个 User-agent 组如果一条 Allow/Disallow 都没有,等价于允许抓全站,写进文件里没有意义。
所以规则为空时本页只给提示、不产出文件,避免生成一份看着像限制了、实际什么都没限制的 robots.txt。
光写 Disallow 是什么意思
单独一行 Disallow 等价于 Disallow: /,也就是这个爬虫什么都抓不到。
反过来 Disallow: 后面留空(只有冒号)表示不限制任何路径,含义完全不同,所以这两种写法请分清。
Crawl-delay 只在缺失时补
填了上面的 Crawl-delay 后,它会被追加到每个组的末尾;如果规则里已经写过 Crawl-delay,就以规则里写的为准、不重复追加。
它对 Google 有效,其它爬虫多数不认这个字段,属于提示性质而不是硬性限制。
匹配规则本身
路径按 robots.txt 的标准写法处理,支持 * 通配和 $ 行尾锚点,比如 Disallow: /*.json$ 挡住以 .json 结尾的地址。
本页只负责生成文本,不会去校验路径是否真的存在,也不会检查 robots.txt 是否已被搜索引擎重新抓取。
常见问题
为什么提示「至少写一条规则」?
空的 User-agent 组等于允许抓取全站,写上去没有约束力。所以规则为空时本页不出文件,只给提示。
填了 Crawl-delay 为什么只出现一次?
它被追加到每个 User-agent 组的末尾;规则里如果已经写过 Crawl-delay,就不再追加,避免同组里出现两条互相矛盾的指令。
生成后需要重启或重新发布吗?
需要。robots.txt 是放在站点根目录的静态文件,放到能通过 https://你的域名/robots.txt 访问到才算生效。