Robots.txt生成器

填站点地址和要屏蔽的目录,本页按 robots 抓取排除协议拼出可整段复制的 robots.txt 全文,不用的指令一律不写。文本只在你浏览器里拼装,不联网、不限次数。

生成口径:第一行写 User-agent,接着按你填的顺序写 Disallow 与 Allow,再写 Crawl-delay,最后空一行写 Sitemap;演示值输出 8 行。两个文本框里按 Ctrl 或 Cmd 加 Enter 可直接生成。

使用方法

Robots.txt生成器是「填目录、点生成、整段复制」三步:

  1. 「站点地址」填站点根地址,必须以 http:// 或 https:// 开头,演示值 https://example.com;它只参与 Sitemap 行的拼接。
  2. 「屏蔽路径」里每行写一条要挡的目录,演示值写了 /admin/、/private/、/cgi-bin/ 三行;想从屏蔽范围里放行一部分,就填到「放行例外」,演示值是 /public/。
  3. 「目标爬虫」选全部爬虫,或单独选 Googlebot、Baiduspider、Bingbot,生成只针对某一家引擎的分组。
  4. 「抓取延迟」填 0~60 的整数秒,演示值 10;「是否输出 Sitemap 行」默认输出,会拼成站点地址加 /sitemap.xml。
  5. 点「生成 robots.txt」,结果进下方文本框;按「复制结果」整段拿走,粘进站点根目录的 robots.txt 即可。两个文本框里按 Ctrl 或 Cmd 加 Enter 也能触发生成,单独按 Enter 留给换行。

Robots.txt生成器能解决什么

它解决「手写 robots.txt 时漏写一行就挡错目录」的问题,适合三类场景:

  • 后台与隐私目录:/admin/、/private/、/cgi-bin/ 这类不该被抓取的地址,一次生成三条 Disallow,比手打少出错;演示输出里这三条紧跟在 User-agent 之后,顺序一眼可读。
  • 只挡某一家引擎:把「目标爬虫」切成 Baiduspider,就生成只对百度生效的分组,其它引擎照常抓取,不用自己手写多段 User-agent 块。
  • 降低抓取压力:小站点带宽吃紧时设 Crawl-delay: 10,让两次请求至少隔 10 秒;同时带上 Sitemap 行,让引擎能主动发现新页面。

本页不做的事:不生成已废弃的 Request-rate、Visit-time,也不生成 Yandex 私有的 Clean-param 与 Host;不校验目录是否真的存在(写错的路径会被原样输出);不替你上传文件——生成后要自己放到站点根目录。

原理和变量

① 用了哪个具体函数:读取用 textarea.value.split('\n') 按行切开,再用 Array.prototype.map 去掉每行首尾空白、filter 丢掉空行,最后用 join('\n') 拼回整段。全程不对你填的路径做正则匹配,避免把路径里的特殊字符当成语法处理。

② 关键参数为什么这样取:路径一律按「以斜杠开头」的前缀写,是因为 robots 协议里的 Disallow 是前缀匹配而不是精确匹配——写 /admin 会把 /administrator 一起挡掉。页面因此保留你填的结尾斜杠,并在提示里建议目录写成 /admin/,减少误伤同类路径。

③ 遵循哪个标准:遵循 1994 年形成的 robots 排除协议(Robots Exclusion Protocol)与 Google 公布的 robots.txt 规范;只输出 User-agent、Disallow、Allow、Crawl-delay、Sitemap 这五条被主流引擎公认的指令,不掺入任何私有扩展。

④ 输入怎么变成输出:演示值里第一行写 User-agent: *;接着把三行屏蔽路径依次拼成 Disallow: /admin/、Disallow: /private/、Disallow: /cgi-bin/;再把放行例外拼成 Allow: /public/;然后写 Crawl-delay: 10;最后空一行补 Sitemap: https://example.com/sitemap.xml,一共 8 行。

⑤ 边界与阈值:Crawl-delay 限 0~60 秒,超过 60 会提示「过大等于变相拒绝抓取」;屏蔽路径最多 200 行,超出提示拆成多个分组;站点地址不是 http:// 或 https:// 开头会被拦下并提示补全;路径全空时按「默认策略」输出 Disallow:(允许全站)或 Disallow: /(禁止全站)。

⑥ 常见误用的正确解释:robots.txt 管的是「抓不抓」,不是「收不收录」——被 Disallow 的地址仍可能因为外链出现在搜索结果里,真要不收录得用 noindex;另一个误区是把它当访问控制,它只是志愿协议,拦不住恶意采集,敏感目录必须做登录鉴权。

完整示例(数值仅作演示)

保持演示值:站点 https://example.com、策略「按下方路径屏蔽」、目标爬虫全部、延迟 10 秒、输出 Sitemap。

  • 第 1 行 User-agent: *,表示下面这组规则对所有爬虫生效。
  • 第 2~4 行是三条 Disallow:,分别挡掉 /admin/、/private/、/cgi-bin/ 三个目录下的所有地址。
  • 第 5 行 Allow: /public/,在屏蔽范围内放行 /public/,同时命中时以 Allow 优先。
  • 第 6 行 Crawl-delay: 10,两次请求之间至少间隔 10 秒;填 0 时这一行会被省略。
  • 第 7 行留空,第 8 行 Sitemap: https://example.com/sitemap.xml,由站点地址加固定文件名拼出。

这 8 行与页面默认文本框内容完全一致;把「目标爬虫」换成 Baiduspider,第 1 行会变成 User-agent: Baiduspider,其余各行不变。

输入范围与对照表

下表列出 robots.txt 常见指令与本页的生成支持情况,前 12 行是日常会用到的写法,后 4 行是历史遗留或私有写法:

robots.txt 指令对照(最后一列说明本工具会不会写这一行)
指令或写法作用取值示例本页是否生成
User-agent指定这组规则对哪个爬虫生效* 、Googlebot生成
Disallow禁止抓取的路径前缀/admin/生成
Allow在被禁止的范围内放行/public/生成
Crawl-delay两次抓取之间的间隔秒数10生成(填 0 时省略)
Sitemap站点地图的绝对地址https 开头的完整地址生成(可选)
Disallow 留空表示不禁止任何路径Disallow:生成(允许全站策略)
Disallow 根斜杠禁止抓取整站/生成(禁止全站策略)
* 星号通配符匹配任意长度的字符序列斜杠星号点 pdf 美元符按原样输出,不改写
$ 美元符表示匹配到网址结尾斜杠星号点 php 美元符按原样输出,不改写
# 井号注释说明文字,爬虫读取时忽略井号加中文说明不生成
分组空行分隔不同爬虫的规则块单独一个空行生成(Sitemap 行之前)
文件放置位置必须放在站点根目录才生效站点根下的 robots.txt不生成(部署注意项)

表里最该记住的一条是「Disallow 按前缀匹配」:想只挡目录就写成 /admin/,写成 /admin 会连 /administrator 一起挡掉。

结果边界和舍入

输出性质:结果是纯文本,不涉及任何数值计算,因此没有小数位与舍入问题;行尾统一用换行符,可直接粘进任意文本编辑器。

什么时候会提示:站点地址不是 http:// 或 https:// 开头时;抓取延迟不是 0~60 的整数时;屏蔽路径超过 200 行时。每种情况都会点名具体字段并给出可填范围,不会静默产出半截文件。

顺序与去重:输出顺序固定为 User-agent、Disallow、Allow、Crawl-delay、空行、Sitemap;完全相同的路径行只保留第一次出现的那一条,避免同一目录被重复写两遍。

结果用途:这是符合主流规范的文本草稿,不保证每个引擎都遵守(robots.txt 本身是志愿协议),上线前建议再用搜索引擎站长平台自带的 robots 测试工具验一遍。

常见问题

生成的 robots.txt 要放在哪里?

必须放在站点根目录,也就是「你的域名加 /robots.txt」这个地址能直接访问到的位置。放在子目录里对任何引擎都不生效,因为爬虫只会请求根目录那一份。

已经屏蔽了,为什么还能搜到?

因为 Disallow 只阻止抓取,不阻止收录。被挡的地址如果被别的站点链接了,仍可能以「只有网址、没有摘要」的形式出现在结果里。要彻底不收录,请在页面上加 noindex。

通配符 * 和 $ 怎么用?

星号匹配任意长度的字符序列,美元符表示匹配到网址结尾。想屏蔽全站 PDF 就写 Disallow 后面跟斜杠星号点 pdf 美元符。本页按原样输出,不会改写你写的符号。

能只对百度设规则吗?

能。把「目标爬虫」选成 Baiduspider,生成的分组第一行就是 User-agent: Baiduspider,只对百度生效,谷歌与必应不受影响。需要多家各一套规则时,把几次生成的结果按顺序拼进同一个文件。

Crawl-delay 所有引擎都认吗?

不都认。必应和 Yandex 支持 Crawl-delay,谷歌明确不支持,谷歌要在 Search Console 里调抓取频率。因此填了这一行不代表谷歌会照做。

多个爬虫能共用一组规则吗?

能。robots 协议允许连续写多行 User-agent,后面接同一组 Disallow;本页一次只生成一组,需要共用时把生成的 User-agent 行复制成多行即可。

Sitemap 行必须写吗?

不是必须,但强烈建议写,而且必须写绝对地址(带 http 或 https 前缀)。本页用你填的站点地址加 /sitemap.xml 拼出,如果你的地图文件名不同,生成后手动改一下再上传。

我填的路径会被上传吗?

不会。整段文本在浏览器里拼装,刷新即清空;可以在 Network 面板复查,点「生成 robots.txt」时没有任何请求发出。

相关工具