htmlnano
Modular HTML minifier, built on top of the PostHTML. Inspired by cssnano.
Documentation
Usage
npm install htmlnano
const htmlnano = require('htmlnano');
const options = {
removeEmptyAttributes: false, // Disable the module "removeEmptyAttributes"
collapseWhitespace: 'conservative' // Pass options to the module "collapseWhitespace"
};
// posthtml, posthtml-render, and posthtml-parse options
const postHtmlOptions = {
sync: true, // https://github.com/posthtml/posthtml#usage
lowerCaseTags: true, // https://github.com/posthtml/posthtml-parser#options
quoteAllAttributes: false, // https://github.com/posthtml/posthtml-render#options
};
htmlnano
// "preset" arg might be skipped (see "Presets" section below for more info)
// "postHtmlOptions" arg might be skipped
.process(html, options, preset, postHtmlOptions)
.then(function (result) {
// result.html is minified
})
.catch(function (err) {
console.error(err);
});
Also, you can use it as CLI tool:
node_modules/.bin/htmlnano --help
STDIN -> STDOUT
cat test.html | node_modules/.bin/htmlnano > test.min.html
Single file
node_modules/.bin/htmlnano test.html -o test.min.html
Multiple files / globs (quote globs so htmlnano expands them itself)
node_modules/.bin/htmlnano "dist/*/.html" --output-dir minified
node_modules/.bin/htmlnano "dist/*/.html" --in-place
More usage examples (PostHTML, CLI, Webpack):
Benchmarks
Updated: 2026-10-11
[html-minifier-terser]: https://www.npmjs.com/package/html-minifier-terser/v/7.2.0 [html-minifier-next]: https://www.npmjs.com/package/html-minifier-next/v/8.10.7 [htmlnano]: https://www.npmjs.com/package/htmlnano/v/3.6.0 [minify]: https://www.npmjs.com/package/@tdewolff/minify/v/2.24.8 [minify-html]: https://www.npmjs.com/package/@minify-html/node/v/0.18.1 [swc-html]: https://www.npmjs.com/package/@swc/html/v/1.16.18
| Website | Source (KB) | [html-minifier-terser] | [html-minifier-next] | [htmlnano] | [minify] | [minify-html] | [swc-html] | | --------------------------------------------------------------- | ----------: | ---------------------: | -------------------: | -------------------: | -------: | ------------: | ------------------: | | developer.mozilla.org | 119 | 39.1% | 41.9% | N/A | 41.2% | 41.1% | 41.6% | | alistapart.com | 64 | 6.8% | 11.0% | 35.6% | 10.3% | 8.0% | 11.0% | | css-tricks.com | 150 | N/A | 14.1% | 25.2% | 12.6% | 9.1% | 13.3% | | en.wikipedia.org | 247 | 4.7% | 7.7% | 9.8% | 6.0% | 6.1% | 6.3% | | html.spec.whatwg.org | 151 | -3.9% | 0.3% | 0.2% | 0.3% | 0.2% | 1.5% | | edri.org | 84 | 7.4% | 13.0% | 32.1% | 12.1% | 7.9% | 12.6% | | home.cern | 292 | N/A | 11.7% | 24.5% | 8.0% | 4.7% | 10.2% | | mastodon.social | 50 | 3.8% | 13.3% | 13.3% | 5.7% | 7.0% | 8.3% | | leanpub.com | 524 | 1.2% | 8.9% | 9.5% | 5.3% | 1.7% | 5.8% | | stackoverflow.blog | 134 | 4.0% | 7.0% | 7.1% | 4.6% | 4.9% | 5.5% | | weather.com | 360 | 0.5% | 8.3% | 8.6% | 6.4% | 0.9% | 6.4% | | eff.org | 54 | 8.6% | 15.6% | 14.9% | 13.1% | 11.1% | 13.1% | | apple.com | 248 | 6.1% | 8.6% | 9.1% | 7.6% | 6.7% | 7.0% | | w3.org | 50 | 17.9% | 23.3% | 23.0% | 22.9% | 19.0% | 22.9% | | bbc.co.uk | 752 | 0.8% | 7.1% | 7.3% | 4.8% | 1.2% | 6.3% | | un.org | 161 | 13.5% | 22.4% | 42.2% | 19.1% | 14.3% | 16.7% | | github.com | 564 | 1.5% | 15.2% | N/A | 5.2% | 4.1% | 4.6% | | faz.net | 1366 | 3.9% | 10.6% | 16.6% | 4.3% | 4.3% | 9.4% | | tc39.es | 7450 | 5.7% | 8.1% | 7.5% | 6.6% | 6.2% | 7.9% | | lafrenchtech.gouv.fr | 184 | 26.4% | 30.6% | 68.3% | 29.8% | 26.9% | 30.5% | | Avg. minify rate | | 6.7% | 12.2% | 19.1% | 9.9% | 7.9% | 10.7% |
Latest benchmarks: