Skip to content

HTML Minifier

Strip whitespace, comments and quotes from HTML - in your browser, with a before/after size report.

Runs in your browser

Paste HTML, get a minified version - with a byte-count and percent-saved figure next to the output. Strips comments and runs of whitespace by default; optional toggles remove attribute quotes and collapse boolean attributes for extra savings.

Before 220B → After 162B (26% saved)

How to use it

  1. Paste your HTML

    Any HTML5 fragment or full document.

  2. Pick aggressiveness

    Default trims whitespace + comments. Aggressive also strips redundant quotes and optional tags.

  3. Copy the minified output

    Before/after byte counts shown next to the output.

What is it?

An HTML minifier shaves bytes off an HTML document by removing whitespace and comments that don't affect rendering. The wins are biggest on hand-authored HTML with generous indentation; framework-generated output is usually already compact. Typical savings: 15-30% on raw HTML before gzip.

When to use it

Inlining HTML into a JSON response or an email template where every byte counts. Hand-optimising a critical-path page after a Lighthouse audit. Cleaning up exported HTML from a WYSIWYG editor that left a comment on every line.

Common mistakes

Running it on Jinja / Handlebars / Vue templates - the minifier doesn't understand template tags, so {{ stuff }} survives but the surrounding whitespace might disappear in unwanted places. Removing comments that the build pipeline actually needs (build-info pragmas, IE conditional comments). And expecting big wins on already-gzipped output - HTML minification stacks with gzip but the gzip pass does most of the heavy lifting.

FAQ

Does it preserve <pre>, <textarea> and <code>?
Yes. Whitespace inside these tags is meaningful, so it's left intact. Same for <script> and <style> bodies.
Is the output still valid HTML?
Yes for the default options - we only remove whitespace where it can't change rendering. With 'remove optional tags' on, the output is more compact but relies on HTML5's optional-element rules, so be sure your parser is HTML5-compliant.

More in this category