NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1380 most downloaded on npm
SVGO is a Node.js library and command-line application for optimizing vector images.
Last release 24 days ago
24 Aug 2026
Release timing varies
gaps range from 1 weeks to 8 months
Nearly every release is documented
notes for 35 of 35 stable releases
84 versions withdrawn
withdrawn after publishing
14 years old
119 releases · first in 2012
Required Node.js version has increased to 0.12.
removeElementsByAttr (by IDs or classes) by @elidupuis,
addAttributesToSVGElement by @gjjones,
removeXMLNS (for SVG inlining) by @ricardobeat.collapseGroups.cleanupIDs.sortAttrs by @darktrojan.addClassesToSVGElement no more repeats classes (by @ricardobeat).Nothing published for this version
One column per quarter.
Extra content inserted by editors are now being removed within as well thus fixing bug “Namespace prefix … is not defined“ after applying SVGO.
<foreignObject> as well thus fixing bug “Namespace prefix … is not defined“ after applying SVGO.moveGroupAttrsToElems not to move attributes to g content if it's referenced (has an id).collapseGroups now don't collapse a group if it has an animated attribute (SMIL).Fixed bug in “convertStyleToAttrs” plugin with converting styling properties to non-existent attributes (which are normally removed later by removeUnk
removeUnknownsAndDefaults).--indent option to style pretty-printed SVG. (e.g. --indent 2) (by @scurker).currentColor param to convertColors plugin for converting values like fill and stroke to currentColor (by @scurker).Smart rounding (introduced in 0.4.5) now applies only when rounding is needed, thus making subsequent passes more stable.
xlink:href references are now being checked by local name href, thus correctly working with another namespace prefix.id removing with disabled plugins/convertStyleToAttrs.js.Better error handling and messaging improvements.
--multipass option.plugins/moveElemsAttrsToGroup.js).[1, 0, 0, -1, 0, 0] (scale(1 -1)).id and without stroke-width aren't being trasformed now since stroke-width may be applied later.Added option --quite to suppress output (by @phihag).
--quite to suppress output (by @phihag).lib-cov folder from the package, which was erroneously included before.<style> elements with CDATA content or without content at all.New optimization: circular curves are now being converted to arcs. A notable improvement for circles within paths.
<style> elments content with CSSO by @strarsis (svgo still doesn't understand its content)precision cli-option and full config.clip-path.Nothing published for this version
Nothing published for this version
New parameter useShortTags by @bradbarrow. Now svgo can produce correct non-selfclosing tags (useful in HTML in old browsers).
useShortTags by @bradbarrow. Now svgo can produce correct non-selfclosing tags (useful in HTML in old browsers).Fixed breaking related to rounding functions in “convertTransform”.
url().--show-plugins displaying list of plugins.width and height if there is viewBox) and “removeAttrsPlugin” (by @bennyschudel).Introduced new transformPrecision option for better image quality (defaults to 5) in “convertTransform” and “convertPathData” (for the purpose of appl
transformPrecision option for better image quality (defaults to 5) in “convertTransform” and “convertPathData” (for the purpose of applying transformations) plugins.translate, rotate, scale.arcto command) are now correctly being transformed into another arcs without being converting to Bezier curves.rotate() with optional parameters.<desc> (by @dennari).clone() method to JSAPI (by @jakearchibald)Nothing published for this version
added --multipass command line option which repeatedly applies optimizations like collapsing groups (by @dfilatov)
--multipass command line option which repeatedly applies optimizations like collapsing groups (by @dfilatov)significally improved plugin plugins/convertPathData:
utilizeAbsolute to false.--output option now can be a folder along with --folder, thanks to @mako-taco.prefix option in case you want to combine multiple svg later (by @DanielMazurkiewicz).Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
deprecate svgo-grunt in favor of grunt-svgmin
result attribute from filter primitives (fix #122)plugins/removeNonInheritableGroupAttrs: more attrs groups to exclude (fix #116 & #118)
plugins/transformsWithOnePath: fix curves bounding box calculation
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →