HTML tag minification goes beyond whitespace removal.
Loading HTML Minify…
Collapses whitespace between tags
Removes optional closing tags safely
Preserves all required tag attributes
Free and instant
Drop the HTML Minify into any page — blog post, product docs, intranet, school portal — with a single line of HTML. Your visitors get the full tool, processed entirely in their browser. No backend, no uploads, no signup.
Embed code
<iframe
src="https://www.fixtools.io/html/html-minify?embed=1"
width="100%"
height="780"
frameborder="0"
style="border:0;border-radius:16px;max-width:900px;"
title="HTML Minify by FixTools"
loading="lazy"
allow="clipboard-write"
></iframe>Attribution-friendly: a small "Powered by FixTools" link appears in the embed footer.
Most developers think of HTML minification as whitespace removal, but tag-level optimisation goes further and produces additional savings on top. The HTML5 specification explicitly permits omission of certain closing tags in defined contexts. The closing tags for li, dt, dd, p (when followed by specific sibling elements), colgroup, thead, tbody, tfoot, tr, th, td, option, and optgroup are all optional under specific conditions defined precisely in the spec. A fully optimised HTML minifier removes all of these where the specification permits, shaving additional bytes beyond what whitespace removal alone achieves. For pages with extensive list markup, table structures, or select menus with many options, tag-level optimisation can reduce file size by an additional 3 to 8 percent beyond whitespace removal.
Boolean attribute simplification is another meaningful tag-level optimisation. In HTML5, boolean attributes have a defined shorthand form that is equivalent to the verbose form. The attribute disabled="disabled" is completely equivalent to simply disabled. The attribute checked="true" is equivalent to checked. The attribute required="required" is equivalent to required. A minifier that handles boolean attributes applies the shorthand form to every instance across the document. For forms-heavy pages with multiple required, disabled, readonly, selected, and checked attributes, this can save hundreds of bytes across all form elements on a complex page with many inputs, selects, and checkboxes.
When minifying complex tag structures, always verify the output by running it through the HTML Formatter to expand it and visually confirm the nesting hierarchy is intact. Pay particular attention to table elements, where optional tag removal is most aggressive, and to list elements in navigation and content sections. If the formatter reveals unexpected nesting after expansion, paste the specific problematic section back into the minifier in isolation to identify the edge case.
Comment preservation is the one tag-level decision that genuinely depends on the audience for the page. Standard HTML comments contribute no value to a production response and should be removed without hesitation, yet conditional comments using the legacy IE pragma syntax are still functionally meaningful for sites whose analytics show non-trivial traffic from Internet Explorer 8 or 9. Most teams in 2026 see zero such traffic and can strip conditional comments along with everything else. Some enterprise audiences, government portals, and certain regional markets still record measurable IE usage and continue to need conditional comments preserved. The pragmatic approach is to check the browser breakdown in your analytics platform before configuring the minifier: if old IE versions account for under one tenth of one percent of sessions, strip every comment without exception; if the number is higher, preserve conditional comment blocks while still removing standard developer comments throughout the rest of the document.
Paste your HTML and minify. The output has the most compact tag structure possible while remaining valid HTML.
Step-by-step guide to minify html tags online:
Paste your HTML
Paste HTML with verbose tag structure into the input panel. This includes HTML with full boolean attribute syntax such as required="required", optional closing tags on list items and table cells, and all standard whitespace indentation from a code editor.
Minify
Click Minify to produce compact tag-level HTML. The tool removes whitespace between tags, applies optional tag omission where the HTML5 specification permits, and shortens boolean attributes to their single-word shorthand form.
Verify output
Check the output for correctness, paying particular attention to sections with optional closing tags such as lists, tables, and select elements. Paste the output into the HTML Formatter to expand it and visually confirm the nesting structure matches the original.
Copy and use
Copy the compact HTML for use in production. The output is valid HTML5 that all modern browsers parse identically to the original verbose source.
Common situations where this approach makes a real difference:
Minifying a component library HTML output
Component libraries generate verbose HTML with many optional closing tags and full-form boolean attributes throughout form inputs, buttons, and interactive elements. Minifying a single component template from 4.2KB to 3.1KB saves 1.1KB per template. When that template is used in a component library rendered across 80 pages, the total saving across the site is 88KB of HTML that users no longer download, compounding across every page view.
Compacting form-heavy HTML with many boolean attributes
A registration form with 20 input fields where each uses required="required" saves approximately 18 bytes per field from boolean attribute shortening. Across 20 fields that is 360 bytes from this one optimisation alone. Add disabled="disabled" on conditional fields, selected="selected" on default options, and checked="checked" on default checkboxes, and the total saving from boolean attribute shortening on a single complex form can reach 600 to 800 bytes.
Use this when you want to understand what the minifier does to specific HTML tags, or when you need to minify a fragment of HTML with complex tag structures.
Get better results with these expert suggestions:
Audit optional tag removal with a diff
After minifying and then re-formatting the output, run a diff between the formatted output and the original source to see exactly which optional closing tags were removed. This comparison is educational for understanding which HTML5 optional tag rules are being applied and gives you confidence that the minifier is applying only the removals that the specification explicitly permits, not making conservative guesses about what might be optional.
Boolean shorthand improves readability too
Beyond file size reduction, the boolean attribute shorthand form, writing disabled instead of disabled="disabled", is actually easier to read at a glance because the attribute name alone communicates its meaning without a redundant value. Some development teams adopt this convention in source HTML even without minification as a code style preference, and many HTML linters can be configured to enforce it in source code.
Watch for XHTML legacy patterns
If your HTML was originally written as XHTML with all tags explicitly closed and boolean attributes written as name="name", the minifier will apply more aggressive simplification than you might expect. The output will be valid HTML5 but may look unfamiliar if you are accustomed to XHTML conventions. Verify the output renders correctly in your target browsers and confirm your JavaScript does not parse the HTML string with an XML parser, which requires all tags to be explicitly closed.
Minify HTML strings passed to innerHTML
When setting element content via JavaScript using innerHTML or insertAdjacentHTML, the HTML string is parsed by the browser's standard HTML parser, which is fully whitespace-tolerant. Minifying any HTML strings stored in JavaScript variables or constants before bundling reduces the overall JavaScript file size. For component-heavy applications where dozens of template strings are bundled, this can collectively reduce the JavaScript bundle by several kilobytes.
Optional closing tags can be removed safely
HTML5 allows omission of closing tags for certain elements (li, dt, dd, p in certain contexts). Minifiers take advantage of this where the spec permits.
Boolean attribute simplification
Minifiers can shorten boolean attributes: disabled="disabled" becomes just disabled. This is valid HTML5 and saves a few bytes per attribute.
Verify tag structure after minifying
For complex HTML with many nested elements, run the minified output through the formatter and validator to confirm the tag structure is correct after minification.
More use-case guides for the same tool:
Other tools you might find useful:
Open the full HTML Minify — free, no account needed, works on any device.
Open HTML Minify →Free · No account needed · Works on any device