Aller au contenu

Minifier du HTML

Retirez commentaires et espaces, et allégez le CSS et le JavaScript de la page — sans toucher aux espaces qui s'affichent réellement. Votre code source ne quitte jamais le navigateur.

  • Jamais conservé
  • Pas de file d'attente, pas d'attente
  • Sans inscription, sans filigrane
Minifié

Le HTML minifié s'affiche ici.

Comment ça marche

1

Collez votre HTML

Ou déposez le fichier. Rien n'est conservé — un point qui compte davantage pour du code source que pour la plupart des contenus.

2

Choisissez jusqu'où aller

Commentaires, espaces, CSS intégré et JavaScript intégré ont chacun leur propre interrupteur.

3

Copiez ou téléchargez

Vous voyez de combien le fichier a diminué, avant et après.

Les espaces qui comptent, et ceux qui ne comptent pas

En HTML, un espace entre deux éléments en ligne est un vrai espace, et c'est ce qui distingue un minifieur soigneux d'un minifieur qui casse les pages. Supprimez le retour à la ligne entre deux liens et les mots se collent à l'écran ; supprimez l'indentation à l'intérieur d'un bloc pre ou d'un textarea et le contenu lui-même change, car les espaces y font partie du contenu. Les espaces ne sont donc supprimés que là où l'on peut prouver qu'ils ne s'affichent pas, et laissés strictement intacts ailleurs. Un minifieur qui retire tous les espaces sans distinction produira un fichier plus léger et une page visiblement fausse.

Les commentaires disparaissent, puisqu'ils s'adressent à celui qui maintient le code source et non au lecteur — à l'exception des commentaires conditionnels, qui sont des instructions et non des notes. Les attributs redondants sont retirés : un type="text/javascript" sur un élément script est la valeur par défaut depuis dix ans, et method="get" sur un formulaire ne dit que ce qu'un formulaire fait de toute façon.

Supprimer les guillemets des attributs donne du HTML valide, et l'option est désactivée par défaut, délibérément. La spécification autorise une valeur d'attribut sans guillemets à condition qu'elle ne contienne ni espace ni caractère problématique, et les navigateurs la gèrent parfaitement. Les moteurs de templates, souvent non : une expression Blade, Twig, Handlebars ou JSX dans un attribut sans guillemets n'est plus analysée correctement, et l'erreur apparaît au moment du build, dans un fichier que personne n'a envie de lire. Le gain est faible, le risque ne l'est pas : l'option est donc à activer soi-même.

La mesure honnête du gain se fait après compression, pas avant. Les serveurs envoient le HTML compressé en gzip ou en brotli, et ces algorithmes sont redoutablement efficaces sur les espaces répétés — si bien qu'un document qui passe de 100 KB à 70 KB une fois minifié peut ne passer que de 12 KB à 11 KB sur le réseau. Minifier le HTML vaut la peine, mais c'est le plus petit des trois gains : la feuille de style et le script sont là où se trouve le vrai poids.

Si vous cherchez autre chose

Pour un site plutôt qu'un fichier, cette étape a sa place dans le build, pas dans un onglet de navigateur. Tous les frameworks et générateurs de sites statiques actuels minifient le HTML au build, et le faire à la main signifie que cela cesse dès que quelqu'un oublie. Les bibliothèques qu'ils utilisent se configurent jusqu'à chaque transformation, ce qui vaut la peine quand une règle précise pose problème.

Avant d'optimiser le balisage, vérifiez ce que pèse réellement la page. Sur presque tous les vrais sites, le HTML est négligeable à côté des images, des polices et du JavaScript — Lighthouse ou le panneau réseau du navigateur vous le diront en quelques secondes, et la réponse est généralement qu'une image d'en-tête non optimisée coûte plus que tous les octets de balisage de la page.

Questions fréquentes

Mon code est-il conservé quelque part ?

Non, et pour du code source, c'est tout l'intérêt. Rien n'est conservé et aucun serveur ne le voit jamais. Coller du code propriétaire dans un minifieur en ligne qui l'envoie quelque part, c'est le divulguer, quoi que le site affirme sur la conservation des données — et c'est exactement le genre de chose qu'on fait dans l'urgence, sans réfléchir.

La minification va-t-elle modifier l'apparence de la page ?

Pas avec les réglages d'ici. Les espaces ne sont réduits que là où ils ne s'affichent pas : entre des éléments de bloc comme les div et les éléments de liste. L'espace ENTRE ÉLÉMENTS EN LIGNE est conservé, car le supprimer colle visiblement deux mots — « </span> <span> » est un vrai espace à l'écran, « </span><span> » ne l'est pas. Le contenu des balises <pre> et <textarea> reste intact, octet pour octet. Et la suppression des balises de fermeture facultatives est délibérément désactivée : c'est du HTML valide, mais bon nombre de moteurs de templates et de clients e-mail analysent mal le résultat.

Que supprime-t-il réellement ?

Les commentaires, les espaces qui ne s'affichaient pas, et le superflu dans les blocs <style> et <script>. La structure de votre balisage, les attributs et le texte restent intacts — l'outil est vérifié en analysant la page avant et après, pour confirmer que le nombre d'éléments, les éléments de liste et le texte visible sont identiques.

Faut-il supprimer les guillemets des attributs ?

Seulement si le résultat part directement vers un navigateur. C'est du HTML valide et cela fait gagner un peu, mais les attributs sans guillemets cassent certains moteurs de templates, certains clients e-mail et la plupart des analyseurs rudimentaires. L'option est désactivée par défaut et la page vous avertit quand vous l'activez.

Minifie-t-il le CSS et le JavaScript de la page ?

Oui, les deux, de la même façon que nos minifieurs CSS et JavaScript. Une exception : si votre CSS intégré utilise l'imbrication native ou les media queries modernes, le passage CSS est désactivé pour cette exécution — le minifieur CSS est antérieur à ces fonctionnalités et supprimerait des règles sans rien dire. Le HTML est tout de même minifié, et la page vous signale ce qui s'est passé plutôt que de vous rendre une page privée de styles.

De combien le fichier va-t-il diminuer ?

Pour du HTML écrit à la main, avec indentation et commentaires, généralement de 10 à 30 %. La compression gzip de votre serveur fait ensuite l'essentiel du reste — minifier d'abord aide quand même, car les deux gains se cumulent, mais ne comptez pas sur la minification seule pour diviser un fichier par deux.

Puis-je minifier un site entier d'un coup ?

Ici, c'est une page à la fois. Pour un site de nombreuses pages, minifiez pendant l'étape de build ou de déploiement, pour que chaque page soit traitée de la même façon à chaque version — et gardez le code source lisible dans votre gestionnaire de versions, jamais le résultat minifié.

Bon à savoir : Les espaces ne sont réduits que là où ils ne s'affichent pas : le texte des balises pre et textarea reste strictement intact, et les espaces entre éléments en ligne sont conservés. Supprimer les guillemets des attributs donne du HTML valide mais casse certains moteurs de templates, c'est pourquoi l'option est désactivée par défaut.

Intégrez cet outil à votre site

Gratuit pour tout blog, page de cours ou article d'aide. Collez un seul extrait de code et vos visiteurs pourront l'utiliser directement sur votre page.