Minifieur HTML

Minifiez le HTML pour réduire la taille et améliorer la livraison des pages

What is HTML Minification?

HTML minification is the process of reducing the size of HTML documents by removing unnecessary characters that do not affect how the browser renders the page. This includes whitespace between tags, HTML comments, redundant attribute quotes, optional closing tags, and default attribute values. Unlike compressing a file with gzip, minification produces output that remains valid HTML and can be read directly by any browser without decompression. The savings typically range from 10% to 30% of the original file size depending on coding style and document structure.

Modern web performance relies on minimizing the number of bytes transferred over the network. While CSS and JavaScript minification are widely adopted, HTML minification is often overlooked despite being the first resource the browser downloads and parses. Reducing HTML size directly improves Time to First Byte (TTFB) and First Contentful Paint (FCP) because the browser can begin layout sooner when the document is smaller. This tool applies safe, standards-compliant transformations to shrink your HTML without altering its rendered output.

Safe vs Unsafe Optimizations

HTML minification techniques fall into two categories: safe transformations that preserve rendering exactly, and aggressive transformations that may alter behavior in edge cases. Understanding the distinction is critical for production deployments.

Safe optimizations include removing HTML comments (except conditional comments for legacy IE support), collapsing consecutive whitespace characters into a single space, removing whitespace around block-level elements where it has no rendering effect, stripping default attribute values like type="text" on input elements or method="get" on forms, and removing optional quotes around attribute values that contain no special characters. These operations are guaranteed to produce identical rendering across all modern browsers.

Unsafe optimizations require careful evaluation. Removing optional closing tags (like </li>, </td>, or </p>) is technically valid per the HTML specification but can cause unexpected layout shifts when CSS sibling selectors target those elements. Collapsing whitespace inside inline elements may join words that were visually separated. Removing empty attributes like class="" can break JavaScript selectors that query by attribute presence. Each aggressive optimization trades a few bytes for potential compatibility risk.

Whitespace Removal Strategies

Whitespace handling is the single largest source of savings in HTML minification. Browsers treat sequences of whitespace characters (spaces, tabs, newlines) as a single space in most contexts, but the rules differ between block and inline formatting contexts.

Between block-level elements (div, section, article, header, etc.), whitespace has zero visual effect and can be completely removed. A typical developer-friendly HTML file uses indentation of 2–4 spaces per nesting level plus newlines, which can account for 15–25% of the total file size in deeply nested documents. Removing this inter-tag whitespace is always safe.

Within inline formatting contexts (spans, links, inline text), whitespace must be handled carefully. A newline between two words inside a paragraph renders as a single space. Removing it entirely would join the words. Smart minifiers preserve exactly one space character between inline content tokens while eliminating redundant spaces. The pre and textarea elements require special treatment: their whitespace is always significant and must never be modified.

Attribute Optimization Techniques

HTML attributes offer several minification opportunities. The HTML5 specification allows attribute values to be unquoted when they contain no spaces, quotes, equals signs, angle brackets, backticks, or empty strings. For example, class="container" can become class=container, saving two bytes per attribute. This is safe for parsing but may reduce readability if the output needs later inspection.

Boolean attributes like disabled, checked, readonly, and required do not need a value at all. Writing disabled="disabled" or disabled="" is semantically identical to just disabled. Removing the redundant value saves 8–12 bytes per occurrence.

Default attribute values that match the browser default can be removed entirely. For example, <script type="text/javascript"> is equivalent to <script> since text/javascript is the default type. Similarly, <style type="text/css"> can be shortened to <style>. These removals are safe across all modern browsers and reduce document size without any functional change.

Impact on Page Load Performance

HTML document size directly affects multiple performance metrics. The HTML file is the first resource downloaded during navigation — its size determines how quickly the browser can begin constructing the DOM tree and discovering subresources like stylesheets, scripts, and images referenced in the markup. A smaller HTML document means the browser discovers and starts fetching critical resources earlier.

On mobile networks with limited bandwidth, every kilobyte matters. A 100 KB HTML document minified to 75 KB saves 25 KB of transfer (before gzip), which translates to approximately 50–100ms on a typical 3G connection. Combined with gzip or Brotli compression, minified HTML compresses even better because whitespace patterns that aided compression are replaced with denser content that still compresses well. The combined effect of minification plus compression typically achieves 85–95% size reduction from the original source.

Code Examples

HTML before and after minification

<!-- Before minification (486 bytes) -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>My Page</title>
    <link rel="stylesheet" href="styles.css">
  </head>
  <body>
    <header>
      <nav>
        <ul>
          <li><a href="/">Home</a></li>
          <li><a href="/about">About</a></li>
        </ul>
      </nav>
    </header>
    <main>
      <h1>Welcome</h1>
      <!-- TODO: add hero image -->
      <p class="intro">
        This is my website.
      </p>
      <button disabled="disabled" type="button">
        Click me
      </button>
    </main>
  </body>
</html>

Output:

<!-- After minification (304 bytes, 37% smaller) -->
<!DOCTYPE html><html lang=en><head><meta charset=UTF-8><title>My Page</title><link rel=stylesheet href=styles.css></head><body><header><nav><ul><li><a href=/>Home</a><li><a href=/about>About</a></ul></nav></header><main><h1>Welcome</h1><p class=intro>This is my website.</p><button disabled type=button>Click me</button></main></body></html>

Standards & Specifications

Questions Fréquentes

What is HTML minification?

HTML minification removes unnecessary whitespace, comments, and optional tags to reduce file size. This makes HTML files smaller and faster to download, improving page load times without changing how the page displays or functions.

Will minification break my HTML?

No, proper minification preserves all functionality. It only removes whitespace that doesn't affect rendering. However, if your HTML relies on specific whitespace (like in <pre> tags), that whitespace is preserved.

How much size reduction can I expect?

Typical reduction is 10-30% depending on your HTML structure and formatting. HTML with lots of indentation and comments will see bigger savings. The actual impact on load time depends on file size and network conditions.

Is my data sent to a server?

No, all HTML minification happens in your browser. Your code never leaves your device. This ensures complete privacy and security for your HTML content.