SVG brand cleaner for Etsy and Shopee sellers

Paste an Illustrator, Inkscape, Figma or Canva SVG export and get a smaller, well-formed SVG back, with the metadata gone and the drawing untouched. Nothing is uploaded.

🔒 100% client-side · zero server upload

Malaysian rules & edge cases

A designer export is a drawing wrapped in editor machinery. Illustrator adds an XML header, a generator comment, an Adobe namespace and a metadata block; Inkscape adds thousands of Sodipodi and Inkscape namespaced attributes for its own layers, guides and labels. None of that changes a single pixel. The table below is the engine's output for a real export, already cleaned:

What the editor wroteWhat the cleaner does
<?xml version="1.0" …?> and a <!DOCTYPE …>Dropped — the output is one bare <svg> document
<!-- Generator: Adobe Illustrator … -->Removed (counts in the summary)
<metadata>, <title>, <desc>, <sodipodi:namedview>Removed with their whole content; kept only if you switch the option off
inkscape:*, sodipodi:*, sketch:*, figma:*, adobe:*, i:* attributes, and ns1:* when that prefix is used nowhere elseRemoved, along with the matching xmlns:* declarations — a leftover declaration would make the document invalid
width="1000.123456" on the rootRemoved so the viewBox governs scaling; width and height on other elements are kept
123.4567 in path data, geometry and lengthsRounded to the decimals you ask for — 2 by default — by decimal-string half-up, so 1.005 becomes 1.01, never 1.00 from float maths
  • Only known numeric attributes are rounded. Text content, id and class values, fill and stroke colours, style strings, hrefs, and anything inside <text>, <style>, <script>, <foreignObject>, CDATA or a comment, are never touched — id="iphone13.5" survives exactly as written.
  • Numbers are read in every shape SVG allows: negative values, exponents like 1e-3, a leading .5, a trailing 1., and compound lists such as M0 0L10.005 10.005 or matrix(...).
  • Geometry semantics are unchanged. The cleaned file renders identically apart from the removed metadata and the rounding you asked for — no other claim is made about the drawing.
  • The output is still well-formed. An editor namespace can only be stripped when its xmlns: declaration goes with it; quotes, brackets and closing tags are carried through, and the cleaner verifies the result as valid XML.
  • Refusals are stated, not silent. Empty input, text over 2 MB, and text with no <svg> root each get their own message.

Nothing you paste leaves your browser: the page is static JavaScript with no network calls.

Before and after

Before

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generator: Adobe Illustrator 28.5.0, SVG Export Plug-In -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" width="1000.123456" height="800.98765" viewBox="0 0 1000 800">
  <metadata><rdf:RDF>creator data</rdf:RDF></metadata>
  <title>Logo</title>
  <desc>Storefront logo</desc>
  <sodipodi:namedview id="base" pagecolor="#ffffff" />
  <defs>
    <style>.cls{fill:#0071ce;stroke:#1d6f42}</style>
  </defs>
  <g inkscape:label="Layer 1" sodipodi:insensitive="true">
    <rect id="iphone13.5" x="10.005" y="20.0049" width="100.125" height="50.5" rx="4.4444" fill="#0071ce" stroke="#000000"/>
    <path d="M0 0 L 123.4567 78.9123 Z"/>
    <text x="11.5" y="22.1212" font-size="14.567">Kopi Ahmad 10.005</text>
  </g>
</svg>

After

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" viewBox="0 0 1000 800"><defs><style>.cls{fill:#0071ce;stroke:#1d6f42}</style></defs><g><rect id="iphone13.5" x="10.01" y="20" width="100.13" height="50.5" rx="4.44" fill="#0071ce" stroke="#000000"/><path d="M0 0 L 123.46 78.91 Z"/><text x="11.5" y="22.12" font-size="14.57">Kopi Ahmad 10.005</text></g></svg>

How it works

  1. Export the design from Illustrator, Inkscape, Figma or Canva as SVG and open the .svg file in a text editor — copy its contents.
  2. Paste the text into the Input box, leave the six options as they are or switch them off one by one, then press Run. The Output box holds the cleaned SVG; the stats line shows bytes before and after, what was removed, and which namespaces were found.
  3. Copy the result and save it as a .svg file for a print template or a vector editor, or paste it into your page HTML as an inline <svg> element — the drawing is unchanged.

FAQ

Will the logo look different after cleaning?

No. The tool only removes metadata, comments, editor namespaces and the root width/height, and rounds numbers only when you ask it to. At 2 decimals a path point can move by at most half a thousandth of a user unit — far below a visible pixel. If you switch rounding off, the geometry is byte-identical.

Why does my exported SVG contain xmlns:inkscape and sodipodi attributes?

Inkscape writes its own layer, guide and label data back into the SVG as namespaced attributes so it can reopen the file the same way. Browsers ignore them; they only make the file larger and leak editor information. Stripping them, together with their xmlns declarations, keeps the document valid.

Why is 1.005 cleaned to 1.01 and not 1.00?

1.005 cannot be stored exactly in binary floating point; it is stored as 1.00499999999999989…, so 1.005 times 100 is 100.49999999999999 and a float-based round gives 1.00. The cleaner rounds on the digit string itself, half-up, so 1.005 at two decimals is 1.01, and the test suite pins that exact case.

What does removing width and height from the root do?

An SVG with a viewBox scales to whatever box it lands in. A fixed width and height on the root overrides that and forces the export size everywhere, which is wrong for a logo reused at twelve sizes. Removing them hands control back to the viewBox; the drawing itself is unchanged.

Is my SVG uploaded anywhere?

No. The cleaner is static JavaScript in your browser: open the Network tab and you will see zero requests. A brand file is your trade dress, and it never leaves the machine.