Robots.txt 生成器
在线快速生成标准 robots.txt 文件。配置 User-agent 规则、Allow/Disallow 路径及 Sitemap URL,无需注册,即开即用。
- 在浏览器中处理
- 数据不离开你的设备
- 免费 · 无需注册
用微信扫描以下二维码即可分享
示例、说明与常见问题 带实际输出的示例、与同类工具的差别,以及常见问题。
示例:百度帮助中心“屏蔽百度、放行图片搜索”的写法怎么读
百度帮助中心的「Baiduspider 常见问题解答」列出了各产品使用的 user-agent:网页搜索为 Baiduspider,图片搜索为 Baiduspider-image,并给出“禁止所有来自百度的抓取,但允许图片搜索抓取 /image/ 目录”的写法。在工具里删除初始块,添加两个块,分别用“自定义…”填 Baiduspider(禁止 /)和 Baiduspider-image(允许 /image/),输出为:
User-agent: Baiduspider
Disallow: /
User-agent: Baiduspider-image
Allow: /image/
按 RFC 9309 的规则读这个文件:爬虫按名字(不区分大小写)找到与自己匹配的组,只遵守这一组,组内没有匹配的规则时,网址视为允许。所以 Baiduspider 不能抓 /news/。Baiduspider-image 读自己的组,/image/logo.png 可以抓,而 /news/ 没有规则匹配,同样是允许。文件里没有 * 组,Googlebot 等其他爬虫不受任何限制。百度没有公开图片爬虫的解析代码,以上是按标准得出的读法。想让图片爬虫只抓 /image/,在它的组里再加一条“禁止 /”:
User-agent: Baiduspider
Disallow: /
User-agent: Baiduspider-image
Disallow: /
Allow: /image/
Allow: /image/ 比 Disallow: / 长,RFC 9309 规定匹配字节最多的规则生效,与两行的先后无关,因此 /image/ 下的文件仍可抓取,其余路径被禁止。同一页帮助还写明 Baiduspider-cpro 与 Baiduspider-ads 不遵守 robots 协议,以及已经建立的索引可能需要数月才会清除。
示例:Sitemap 要写完整网址
工具不检查 Sitemap 地址,填 /sitemap.xml 也会原样写出:
User-agent: *
Disallow: /search/
Sitemap: /sitemap.xml
Sitemaps 协议要求在 robots.txt 里写网站地图的完整 URL,所以要填成 https://www.example.cn/sitemap.xml 这样带协议和主机名的地址。上面这个文件里,站内搜索结果 /search/?q=手机 被 Disallow: /search/ 禁止,商品页 /product/1001.html 不受影响。
User-agent: *
Disallow: /search/
Sitemap: https://www.example.cn/sitemap.xml
写好后可以用百度搜索资源平台的 Robots 工具检测。该页面说明工具支持 48k 以内的文件内容,目录最长不超过 250 个字符。
常见 robots.txt 配置
- 屏蔽所有爬虫:
User-agent: *+Disallow: / - 允许所有爬虫:
User-agent: *+Disallow:(留空)。工具里一个块没有任何规则时,就会写出这样的空Disallow:。 - 屏蔽特定目录:
Disallow: /admin/ - 只允许某一个爬虫:先用
*块禁止/,再为该爬虫单独加一个不含规则的块
工具不做的事与 robots.txt 的边界
- 不校验:路径去掉两端空白后原样写出。RFC 9309 的路径以
/开头,admin/这样的值不是有效规则;空路径写成空规则。 - 只有一行 Sitemap:有多个网站地图时,复制这一行手动补上。不生成
Crawl-delay等非标准指令。 - 通配符:
*和$属于 RFC 9309,可以直接写进路径,例如Disallow: /*?sessionid=,工具不检查写法。 - 禁止抓取不等于从搜索结果删除:其他页面链接到被禁止的网址时,它仍可能以无摘要的形式出现在结果中。要让页面不出现在结果里,应允许抓取并在页面上发送
noindex,可以用 Meta 标签生成器写出。 - 大小与错误:RFC 9309 要求爬虫至少解析文件的前 500 KiB。robots.txt 返回 4xx 时爬虫可以抓取全部内容;返回 5xx 或无法访问时,应视为全部禁止。
- 每个主机各一份:文件上传到网站根目录,使其可以通过
https://你的域名/robots.txt访问。example.cn上的规则管不到m.example.cn,移动站或子域名要各放一份。
FAQ
robots.txt 是什么?
robots.txt 是放在网站根目录(如 https://example.com/robots.txt)的纯文本文件,告诉网络爬虫哪些页面或目录可以抓取、哪些不可以。它遵循机器人排除协议(Robots Exclusion Protocol),该协议已标准化为 RFC 9309。
robots.txt 能阻止所有爬虫吗?
不能。robots.txt 是约定,不是安全措施。Googlebot、Baiduspider 等守规矩的爬虫会遵守它(百度说明 Baiduspider-cpro、Baiduspider-ads 例外),恶意爬虫可能完全无视。要真正限制访问,请在服务器层面做访问控制。
'Disallow: /' 是什么意思?
它让对应的 User-agent 不抓取站点上的任何页面。'User-agent: *' 加 'Disallow: /' 会让所有遵守协议的爬虫都不抓取整个站点。这也是工具打开时的初始状态,发布前请改掉。
可以设置多个 User-agent 块吗?
可以,点击“+ 添加 User-agent 块”即可。爬虫只遵守与自己名字匹配的那一组;给 Baiduspider 单独写一组后,Baiduspider 就不再读 * 组的规则,两组共用的规则要在两组里各写一遍。
Sitemap 指令应放在哪里?
放在文件中任何位置都可以。Sitemap 行不属于任何 User-agent 组,位置不影响效果;工具把它写在末尾。它告诉爬虫 XML 网站地图的地址,帮助爬虫发现你希望被抓取的页面。
我输入的路径和网址会被发送或保存吗?
不会。文件在你的浏览器页面里生成。工具不会请求你填写的 Sitemap 地址,也不会把路径或爬虫名称发送到服务器或写入浏览器存储,刷新页面后恢复初始的那一组规则。你确认一次修改(修改输入框后离开、选择爬虫、添加或删除规则或块)时,网站统计会记录一次工具名和动作,不记录你输入的内容。