§

Options

Minify options
§

Collez du HTML

§

Sortie minifiée

html
§

Économisé %

  • Taille d'origine
  • Taille minifiée
  • Économisé
  • Économisé %

Les équipes JAMstack de Carrefour déploient des milliers de pages catalogue via des edge nodes Cloudflare et Vercel en Europe, où chaque kilo-octet soustrait au HTML se multiplie par des millions de sessions quotidiennes. Le service performance web du Monde a intégré la minification HTML dans son pipeline CMS pour réduire le budget de chargement sur les connexions 4G françaises, obtenant des économies de 18 à 22 pour cent sur les gabarits d'article. Effectuer l'étape localement dans le navigateur avant le commit procure le même gain d'octets sans ajouter de dépendance fournisseur au dépôt.

Comment fonctionne la minification HTML

Le minificateur parcourt votre saisie avec un petit automate à états qui distingue les régions à préserver (<pre>, <textarea>, <script>, <style>) des régions modifiables où les espaces et les commentaires peuvent être supprimés sans risque.

  1. Tokeniser les blocs à préserver. Le scanner lit l'entrée caractère par caractère et passe en état de préservation lorsqu'il rencontre une balise ouvrante <pre>, <textarea>, <script> ou <style>. Tout ce qui se trouve à l'intérieur de ces balises est conservé octet par octet jusqu'au fermeture correspondant.
  2. Compresser les espaces modifiables. Dans les régions modifiables, le scanner compresse chaque suite d'espaces, de tabulations et de sauts de ligne en un seul espace, puis supprime les espaces en tête et en queue autour des limites de balises. Le texte visible se redistribue de la même façon que le navigateur le restitue.
  3. Supprimer les commentaires. Les blocs <!-- ... --> sont supprimés lorsque l'interrupteur est activé. Les commentaires conditionnels IE (<!--[if IE]> ... <![endif]-->) survivent lorsque l'interrupteur de préservation conditionnelle est activé, car les anciens clients de messagerie en dépendent encore.
  4. Compresser les attributs booléens. Les formes verbeuses comme checked="checked", disabled="disabled" et required="required" sont réduites au nom de l'attribut seul. La spécification HTML5 traite la forme courte comme sémantiquement identique, si bien que le DOM rendu reste inchangé.
  5. Afficher les deltas d'octets. Le texte original et le texte minifié sont tous deux mesurés avec new TextEncoder().encode(...).byteLength, le même nombre d'octets UTF-8 qu'un CDN ou un serveur HTTP voit sur le réseau. La bande de métriques affiche la taille d'origine, la taille minifiée, les octets économisés et le pourcentage économisé.

Pourquoi minifier le HTML

  • Chargement des pages plus rapide. Un HTML plus léger atteint le navigateur plus tôt et l'analyseur termine plus vite. Sur les réseaux mobiles, les octets économisés se traduisent directement en un First Contentful Paint plus rapide et un meilleur score de performance Lighthouse.
  • Factures d'egress CDN réduites. CloudFront, Cloudflare et Fastly facturent au gigaoctet d'egress. Une réduction de 20 pour cent du HTML sur des millions de vues mensuelles se cumule en économies réelles sur la facture, avant même toute optimisation d'images ou de scripts.
  • Diffs de pull request plus propres. Le HTML statique pré-compilé archivé dans un dépôt devient bruyant lorsque chaque retouche de gabarit redistribue l'indentation. Le HTML minifié dans le dossier dist produit des diffs de PR plus resserrés qui se concentrent sur les vrais changements de contenu plutôt que sur les variations d'espaces.
  • Incrustations et extraits plus légers. Les gabarits d'e-mail, les extraits de widgets tiers et le HTML stocké dans des configurations JSON ou YAML bénéficient du même gain d'octets. Les incrustations minifiées maintiennent les e-mails transactionnels sous les limites de taille des ESP et allègent les bundles de widgets.

Applications courantes

La minification HTML apparaît à la fin de presque tous les pipelines de compilation de sites statiques ou JAMstack, ainsi que dans quelques contextes à l'exécution où les octets importent plus que la lisibilité du source.

  • Étapes de compilation de sites statiques : Eleventy, Hugo, Astro et Next.js font passer le HTML par un minificateur avant d'écrire dans le dossier dist pour que le bundle déployé soit plus léger que la source.
  • E-mails transactionnels : les ESP (SendGrid, Postmark, Mailgun) plafonnent la taille du corps HTML et l'expansion du CSS inline gonfle rapidement ce décompte. Minifier le corps avant l'envoi maintient le message sous le plafond.
  • Widgets incrustés : les widgets tiers et les extraits de chat livrés en HTML inline bénéficient de chaque octet soustrait car la page hôte doit les télécharger à chaque visite.

Un exemple concret

Collez un extrait de formulaire verbeux de 500 octets avec une indentation à deux espaces, trois sauts de ligne entre les rangées, un bloc de commentaires HTML en tête et un <input type="checkbox" checked="checked" />. Avec toutes les options activées, la sortie se compresse à environ 300 octets — soit à peu près 40 pour cent d'économie — tandis que l'arbre DOM rendu reste identique à la source.

La minification va-t-elle casser mon HTML ?

Non, avec les interrupteurs par défaut. Le minificateur préserve le contenu des balises <pre>, <textarea>, <script> et <style> à l'identique, laisse les commentaires conditionnels IE intacts lorsque cet interrupteur est activé et ne compresse que les espaces que l'analyseur HTML5 classe déjà comme insignifiants. L'arbre DOM rendu est identique à la source. Les interrupteurs agressifs (remove-empty-attributes) peuvent modifier le comportement d'extraits qui utilisent intentionnellement value="" ou alt="", vérifiez donc la sortie si vous les activez.

Cela minifie-t-il le CSS et le JS inline ?

Pas dans cet outil. Les corps de <style> et de <script> inline sont préservés à l'identique afin que le minificateur ne casse jamais une règle CSS ou une instruction JS en compressant les espaces dans un littéral de chaîne ou une expression rationnelle. Pour la minification CSS utilisez un Minificateur CSS ; pour le JS utilisez un Minificateur JS. Le Minificateur HTML se concentre sur le balisage lui-même.

Combien puis-je économiser ?

Les économies typiques sur du HTML écrit à la main vont de 10 à 30 pour cent, selon l'utilisation de l'indentation, des lignes vides et des formes d'attribut verbeuses. Le HTML statique pré-compilé par des frameworks comme Next.js économise souvent de 15 à 25 pour cent car le framework réalise déjà quelques optimisations mais laisse des espaces lisibles par l'humain. Les gabarits très commentés et le HTML de style e-mail avec un imbrication profonde peuvent atteindre 40 pour cent ou plus.

Le contenu de pre est-il préservé ?

Oui. Le minificateur tokenise explicitement les blocs <pre>, <textarea>, <script> et <style> comme régions à préserver et copie leur contenu octet par octet vers la sortie. Les espaces, les sauts de ligne et l'indentation à l'intérieur de ces balises survivent intacts, si bien que les exemples de code et l'art ASCII se restituent exactement de la même façon après minification.

La minification HTML dans le navigateur garde votre pipeline de compilation simple et votre balisage léger. Collez n'importe quel HTML ci-dessus, ajustez les interrupteurs d'options et copiez ou téléchargez la sortie minifiée — aucun envoi, aucun compte, aucune bibliothèque fournisseur.