SVG Optimizer

One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.
Drag & drop an .svg file here, or click to browse
Paste SVG markup above or drag & drop an .svg file to get started.
Ctrl+Enter Run  · Ctrl+Shift+C Copy  · Esc Clear

Understand SVG Optimizer

从 SVG 标记中剔除编辑器元数据、注释和无用属性,并报告精确的字节节省量。

How it works

从 Inkscape、Illustrator、Figma 或 Sketch 导出的 SVG 携带着大量浏览器从不读取的信息:XML 处理指令、DOCTYPE、注释、一整块 RDF 的 `<metadata>`,以及诸如 `inkscape:label` 和 `sodipodi:docname` 这样成套的编辑器私有属性命名空间。这些会被移除,像 `style="fill: #5C5BFE"` 这样简单的 `style` 声明会被提升为表现属性(`fill="#5C5BFE"`),文档中无人引用的 `id` 属性会被丢弃,标签之间的空白会被折叠。体积按优化前后的 UTF-8 字节数测量,因此显示的百分比是压缩之前在链路上的真实节省。

When to use it

  • 在把图标集内联进组件库或构建精灵图之前先清理它们
  • 削减将被嵌入 HTML 的 SVG 的体积,那里每一个字节都在关键路径上
  • 在发布文件之前移除编辑器留下的文档名、图层名和作者元数据
  • 让机器生成的 SVG 变得足够可读,以便手工编辑

Watch out for

  • 只被外部 CSS 或 JavaScript 引用的 `id` 看起来像是没用的,因而会被移除。如果你的样式表定位 `#logo-path`,或你的脚本调用 `getElementById`,请在发布前检查输出。
  • 把内联 `style` 提升为属性会降低它的优先级。内联样式胜过任何样式表规则;而表现属性会输给所有规则,因此原本被覆盖的规则现在可能反而生效。
  • 路径数据原封不动。坐标不会被取整,路径不会被合并,图形也不会被转换——一幅精细插画里最深的那部分节省,需要 SVGO 这样的完整优化器。
  • 经 gzip 或 brotli 压缩之后,字节节省会缩水。重复的元数据压缩效果很好,因此 60% 的原始缩减,在网络上可能更接近 25%。

Not the right tool for: 净化不可信的 SVG。这是体积优化器,不是安全过滤器——从用户处接受的 SVG 可能携带 `<script>`、事件处理器和 `foreignObject`,在渲染之前必须先在服务端做净化。

Frequently Asked Questions

SVG 优化能减少多少文件体积?

通常能减少 20–70%。从 Inkscape、Adobe Illustrator 或 Figma 导出的 SVG 含有大量编辑器元数据、注释和冗余属性。一个 50KB 的导出 SVG 优化后往往只有 10–20KB——这对图标精灵图是关键改进。

优化会破坏我的 SVG 动画吗?

有可能。本优化器会删除它没看到被 url(#id) 或 href="#id" 引用的 id 属性,因此通过 ID 定位元素的 CSS 或 JavaScript 可能不再匹配。基于 class 的 CSS 动画和文件内部的 SMIL 不受影响。在替换带动画的 SVG 之前请先检查输出。

压缩和优化有什么区别?

压缩只去掉空白和注释。优化还会改写内容:丢弃编辑器元数据、把简单的样式属性提升为表现属性、删除未被引用的 ID。本工具两者都做。它不会合并路径、折叠分组或把图形转成路径——那是 SVGO 的工作。

How to Use SVG Optimizer

  1. Paste or type your input in the input area above.
  2. The tool processes your input automatically or click Run.
  3. Copy or download the result using the action buttons.
  4. Use Ctrl+Enter to run quickly from the keyboard.