svgcleaner is an alternative to SVGO that offers lossless optimizations (https://github.com/RazrFalcon/svgcleaner). In comparison with SVGO, which has the potential to break things, svgcleaner promises to never break an SVG file. Browse their charts (https://github.com/RazrFalcon/svgcleaner#charts) to see how they compare themselves to SVGO and scour (another alternative).
What's more, there's also a downloadable GUI (https://github.com/RazrFalcon/svgcleaner-gui/releases) that you can run on your desktop. The following screenshot shows it in action. All that's happened to get to this state is to load an SVG element and to hit the Play button, which runs the optimization:
Since it's built-in Rust and isn't a native Node.js application, it doesn't play as nicely with the npm/node world, but it's still a great tool.
...