Step 1: Open the SVG and audit it
Drag the .svg onto app.svgsketch.com. Open the XML Inspector (F12) to see the raw markup. Most "bloated" SVGs have one of these problems: long base64-encoded fonts, redundant <g> wrappers, identical gradient definitions, ten-decimal-place coordinates, or hidden metadata from the original tool.
Step 2: Remove unused defs and metadata
In the Elements panel, delete unused imported definitions - source tools often duplicate gradients, filters, and patterns. In the SVG export options, enable "Deduplicate identical gradients and patterns" so duplicated paint definitions collapse to one. It is off by default, because merging definition ids is a lossy change to addressable structure rather than a free win.
Clear "Include metadata" in the same panel to drop the document's <metadata> block along with any <link> and <meta> a source tool left behind. The title and description are always written: they are the SVG's accessible name, not bookkeeping, and they cost a few dozen bytes.
Step 3: Flatten unnecessary groups
Select redundant single-child <g> wrappers and use Object > Ungroup (Ctrl+Shift+G), or run Object > Clean Up Empty Groups. A grouping that does not have a transform, opacity, or class is just bytes - the SVGO "Collapse groups" toggle handles the rest at export time.
Step 4: Round numeric precision
Open the Export panel and set the Precision field to 2 or 3 decimals. Path coordinates like "M127.87349832 482.10283745" become "M127.87 482.1" - visually identical, dramatically smaller.
Step 5: Enable "Optimize with SVGO"
In the SVG export options, check "Optimize with SVGO". This runs the industry-standard SVGO optimizer, and reveals fourteen per-plugin toggles - all on by default: Cleanup IDs, Remove doctype, Remove comments, Remove empty attrs, Remove empty containers, Remove unused namespaces, Remove hidden elements, Remove empty text, Collapse groups, Optimize path data, Optimize transforms, Merge paths, Remove useless stroke/fill and Cleanup numeric values.
Step 6: Turn off pretty-printing for the smallest file
SVGO does not control whitespace here - Pretty-print output does, and it is on by default. That is the right default for markup you are going to read or commit, but it works against you on a file that arrived minified: the indentation goes back in and the file can finish larger than it started. Clear the checkbox when size is what matters.
Step 7: Verify and compare
Open the optimized SVG in a browser, compare it side by side with the original, and confirm the rendering matches. Compare the sizes in your file manager or shell - the Export panel reports no before-and-after figure, so the comparison happens outside the editor.
What the numbers actually look like
The honest answer is that it depends on what the file already is, and the spread is wide. Running the editor's own SVGO settings over 114 real-world SVGs - the corpus SVGSketch uses for import regression testing - the median file loses 19%. A quarter lose less than 8%, a quarter lose more than 34%, and 7 of them come out bigger because pretty-printing put whitespace back into an already-minified file. With that checkbox cleared the median rises to 25% and nothing grows.
Files exported from a drawing application have the most to lose, which is the case this article is usually read for: across the 16 Illustrator-, Inkscape- and Sketch-authored files in the same corpus the median saving is 36%, and the best of them drops 87%.
Reduce the geometry, not just the markup
SVGO rewrites how the geometry is spelled; it does not remove points. When a path came out of the vectorizer or a freehand stroke it may carry far more nodes than the silhouette needs. Select it and use Shape > Simplify Path (Ctrl+Shift+{), which removes nodes within a tolerance you set from the Edit tool toolbar - the split caret beside the button opens Simplify Options and its "Tolerance (% of bounds):" field. That is an edit to the document, so check the result before exporting.
Note that there is no optimize command for the working document. SVGO runs on the bytes leaving the editor, so the document you keep editing is unchanged and you can re-export at different settings whenever you like.