PicConvertAdvertise

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

Choose an SVG file
or paste the code below · 🔒 processed on your device, never uploaded
Options

Result

Before
1.7 KB
After
509 B
Saved
70.1%
Gzipped
—
Original
Original
Optimized
Optimized

Removed: XML declaration, comments, version attribute, editor data, <metadata>, unused ids, empty groups.

Optimized SVG

How to optimize an SVG

  1. Choose an SVG file or paste the code (a sample from Inkscape is loaded so you can try it).
  2. Leave the safe defaults on, or adjust the options and number precision.
  3. Check the Visual match badge and the side-by-side preview.
  4. Copy the code, copy it as a CSS data URI, or download the .min.svg file.

What gets removed (and what never does)

RemovedAlways kept
XML declaration, doctype (unless it defines entities), commentsviewBox, width, height and the SVG namespace
<metadata>, Inkscape/Sodipodi/Illustrator/Sketch/Figma attributesEvery shape, path, gradient, filter, mask and clip path
Ids that nothing referencesIds 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 separatorsScripts 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 sizeAuto decimalsMax error
2440.00005 units
10030.0005 units
100020.005 units
1000010.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