Chargement des scripts : defer et async

Un script sans attribut bloque l'analyse du HTML. defer et async évitent ce blocage.

Mis à jour le

  • defer : téléchargement en parallèle, exécution après l'analyse du HTML et dans l'ordre. Bon choix par défaut.
  • async : exécution dès que le script est prêt, sans ordre garanti. Réservé aux scripts indépendants (analytics, widgets).
  • type="module" : différé par défaut.
<script defer src="script.js"></script>
<script async src="analytics.js"></script>
<script type="module" src="app.js"></script>

Documentation : élément script - MDN. Moins de JS bloquant améliore le LCP ; moins de JS exécuté améliore l'INP.