SVG optimizer & minifier
Updated Nothing is uploaded
Shrink SVGs exported from Illustrator, Inkscape, Figma or Sketch — often by 30–70% — without changing how they look. Every result is rendered next to the original and compared pixel by pixel, so you can see that nothing broke.
Your SVG
Options
Result
Removed: XML declaration, comments, version attribute, editor data, <metadata>, unused ids, empty groups.
How to optimize an SVG
- Choose an SVG file or paste the code (a sample from Inkscape is loaded so you can try it).
- Leave the safe defaults on, or adjust the options and number precision.
- Check the Visual match badge and the side-by-side preview.
- Copy the code, copy it as a CSS data URI, or download the .min.svg file.
What gets removed (and what never does)
| Removed | Always kept |
|---|---|
| XML declaration, doctype (unless it defines entities), comments | viewBox, width, height and the SVG namespace |
| <metadata>, Inkscape/Sodipodi/Illustrator/Sketch/Figma attributes | Every shape, path, gradient, filter, mask and clip path |
| Ids that nothing references | Ids used by url(#…), href, CSS or animations, and on <symbol> (sprites) |
| Groups without attributes, empty <defs> | <title>/<desc> (unless you opt in), text and its spacing |
| Excess decimals, redundant path commands and separators | Scripts and styles (whitespace in CSS is minified) |
How number precision works
Most savings come from coordinates like 56.333333. “Auto” picks the decimals from the drawing size: about 3 significant digits after the units that matter. For a 24 × 24 icon that's 4 decimals; for a 1000 px illustration, 2. A rounding error of 0.005 units on a 1000-unit canvas is 0.0005% — invisible.
| viewBox size | Auto decimals | Max error |
|---|---|---|
| 24 | 4 | 0.00005 units |
| 100 | 3 | 0.0005 units |
| 1000 | 2 | 0.005 units |
| 10000 | 1 | 0.05 units |
Path data before and after
Before: d="M 38.000000,66.000000 L 56.333333,84.000000 L 91.666667,46.000000"
After: d="M38 66L56.333 84 91.667 46"Repeated commands are implied, separators are dropped where the grammar allows (1-2, .5.5), and arc flags are kept intact.
Private by design
Everything runs in your browser — your images are never uploaded, stored or seen by anyone.
Related tools
Frequently asked questions
Is this the same as SVGO?
It applies the same family of safe optimizations as SVGO's defaults, implemented independently and running in your browser. It doesn't do riskier transforms like merging paths or converting shapes.
Why is the visual match not exactly 100%?
Rounding coordinates can move an anti-aliased edge by a fraction of a pixel. Values above 99.5% are not visible; raise the precision if you need a perfect match.
Should I gzip SVGs too?
Yes — servers usually gzip or Brotli-compress SVG automatically. Minifying and compressing stack: the Gzipped figure shows both together.
Will it break my CSS or JavaScript that targets ids?
Ids referenced inside the file are kept. If a page's external CSS or JS targets an id in an inline SVG, turn off "Remove unused ids".
Your business here? Sponsor this tool from $9/week. See placements