使用方法
Robots.txt生成器是「填目录、点生成、整段复制」三步:
- 「站点地址」填站点根地址,必须以 http:// 或 https:// 开头,演示值 https://example.com;它只参与 Sitemap 行的拼接。
- 「屏蔽路径」里每行写一条要挡的目录,演示值写了 /admin/、/private/、/cgi-bin/ 三行;想从屏蔽范围里放行一部分,就填到「放行例外」,演示值是 /public/。
- 「目标爬虫」选全部爬虫,或单独选 Googlebot、Baiduspider、Bingbot,生成只针对某一家引擎的分组。
- 「抓取延迟」填 0~60 的整数秒,演示值 10;「是否输出 Sitemap 行」默认输出,会拼成站点地址加 /sitemap.xml。
- 点「生成 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 行是历史遗留或私有写法:
| 指令或写法 | 作用 | 取值示例 | 本页是否生成 |
|---|---|---|---|
| User-agent | 指定这组规则对哪个爬虫生效 | * 、Googlebot | 生成 |
| Disallow | 禁止抓取的路径前缀 | /admin/ | 生成 |
| Allow | 在被禁止的范围内放行 | /public/ | 生成 |
| Crawl-delay | 两次抓取之间的间隔秒数 | 10 | 生成(填 0 时省略) |
| Sitemap | 站点地图的绝对地址 | https 开头的完整地址 | 生成(可选) |
| Disallow 留空 | 表示不禁止任何路径 | Disallow: | 生成(允许全站策略) |
| Disallow 根斜杠 | 禁止抓取整站 | / | 生成(禁止全站策略) |
| * 星号通配符 | 匹配任意长度的字符序列 | 斜杠星号点 pdf 美元符 | 按原样输出,不改写 |
| $ 美元符 | 表示匹配到网址结尾 | 斜杠星号点 php 美元符 | 按原样输出,不改写 |
| # 井号注释 | 说明文字,爬虫读取时忽略 | 井号加中文说明 | 不生成 |
| 分组空行 | 分隔不同爬虫的规则块 | 单独一个空行 | 生成(Sitemap 行之前) |
| 文件放置位置 | 必须放在站点根目录才生效 | 站点根下的 robots.txt | 不生成(部署注意项) |
| Request-rate | 旧版抓取频率限制,已废弃 | 1/5 | 不生成 |
| Visit-time | 旧版允许抓取时段,已废弃 | 0100-0600 | 不生成 |
| Clean-param | Yandex 私有,忽略网址参数 | Clean-param 加参数名 | 不生成 |
| Host | Yandex 私有,指定首选镜像 | Host 加域名 | 不生成 |
表里最该记住的一条是「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」时没有任何请求发出。
相关工具
- XML站点地图生成器:配套生成站点地图文件。
- HTML校验:上线前顺手查一遍页面结构。
- CSS压缩工具:压缩样式表以减少传输体积。
- IPv4转IPv6转换器:核对服务器地址格式。
- 文本转数据URI转换器:把小图标内联进页面。
- JSON转CSV转换器:整理配置类数据。
- 比特转数字转换器:换算带宽与流量单位。