Avancé 5 min 1 min de lecture Images & médias

Mettre en place le chargement différé des images via un CMS

Mettez en place le chargement différé natif des images sur votre CMS avec loading=lazy : règles, pièges à éviter et bonnes pratiques de performance.

Par Nicolas Dupont Mis à jour le 1 juillet 2026

Le chargement différé (lazy loading) consiste à ne télécharger une image qu’au moment où elle s’approche de la fenêtre d’affichage, plutôt que de tout charger d’emblée. Depuis que l’attribut loading fait partie de la norme HTML du WHATWG et qu’il est largement pris en charge, il n’est plus nécessaire de passer par une solution JavaScript : le navigateur s’en charge nativement, comme l’explique notre tutoriel sur le chargement différé natif des images. Les CMS, qui propulsent environ 60 % des sites web, jouent un rôle clé dans la diffusion de cette bonne pratique à grande échelle.

Pour le SEO, l’intérêt est double. Différer les images situées plus bas dans la page allège le chargement initial, économise des ressources réseau et améliore la vitesse perçue, donc les Core Web Vitals. Mieux encore : sur les réseaux 4G, les tests de Chrome montrent que la différence d’expérience entre une image chargée par anticipation et une image différée n’est que de 0,1 %, ce qui rend l’adoption très sûre.

Le chargement différé natif via l’attribut loading a rendu les solutions JavaScript inutiles, et c’est une excellente nouvelle pour la diffusion à grande échelle. Comme les CMS propulsent une part énorme du web, c’est précisément là qu’il faut industrialiser cette bonne pratique pour qu’elle profite à tous les contenus, y compris l’existant. Mon conseil, c’est de bien penser l’implémentation côté CMS plutôt que de la traiter image par image.

— Nicolas Dupont

L'attribut loading en pratique

L’attribut loading s’ajoute directement aux balises img et iframe, comme détaillé dans notre guide pour différer images et iframes. La valeur lazy demande au navigateur de différer le chargement jusqu’à l’approche du viewport. Les navigateurs qui ne connaissent pas encore l’attribut l’ignorent simplement, sans effet négatif. Pour limiter les décalages de mise en page, chaque image différée doit aussi porter ses attributs de dimension width et height.

Chargement différé natif
<img src="photo.jpg" alt="Description" width="800" height="600" loading="lazy">

Les bonnes pratiques d'implémentation côté CMS

L’expérience d’ajout de cette fonctionnalité à WordPress, Joomla, Drupal et TYPO3 dégage des règles claires. La fonctionnalité gagne à être activée par défaut, mais uniquement pour les éléments qui possèdent des attributs de dimension, et de préférence pour ceux qui apparaissent sous la ligne de flottaison. Il reste indispensable de pouvoir déroger image par image, par une interface ou par une API destinée aux développeurs, afin de ne pas différer une image essentielle.

Recommandation Pourquoi Mise en oeuvre

Activer par défaut

Maximise l’économie de ressources réseau

loading=lazy ajouté automatiquement au rendu

Exiger width et height

Évite les décalages de mise en page (CLS)

Ne pas différer les images sans dimensions

Épargner la ligne de flottaison

Protège le LCP de tout retard

Heuristiques pour repérer les images hero

Autoriser les exceptions

Optimiser le LCP au cas par cas

Contrôle d’interface ou API par élément

Ajouter à la volée

Couvre aussi le contenu existant

Traitement au rendu, pas seulement à l’édition

Couvrir le contenu existant au rendu

Deux approches coexistent : enregistrer l’attribut dans la base de données depuis l’éditeur, ou l’ajouter à la volée au moment d’afficher le contenu. La seconde est recommandée, car elle fait bénéficier tout le contenu déjà publié du chargement différé, et non les seuls articles récents, dans le prolongement des bonnes pratiques pour optimiser les images. L’ajout à la volée doit toutefois respecter un attribut loading déjà présent sur un élément et le laisser prévaloir, pour éviter les doublons. Côté serveur, la performance compte : on privilégie une expression régulière unique qui collecte toutes les balises img et iframe plutôt qu’une exploration complète du DOM, plus coûteuse.

N'ajoutez pas de repli JavaScript

Évitez de doubler le chargement différé natif par une solution JavaScript dans le CMS. Ces mécanismes reposent sur la suppression initiale de l’attribut src, ce qui pénalise justement les navigateurs qui prennent en charge loading et élargit la surface de bugs. L’attribut étant ignoré sans dommage par les navigateurs anciens, il est plus sûr de ne pas servir ce repli et d’encourager la mise à jour des navigateurs.

Besoin d'aide pour mettre en pratique ? Nos experts SEO vous accompagnent.
Parler à un expert

À faire

  • activer loading=lazy par défaut sur les images sous la ligne de flottaison
  • exiger width et height
  • ajouter l’attribut au rendu pour couvrir l’existant
  • laisser prévaloir un loading déjà posé

À éviter

  • différer l’image hero ou les éléments au-dessus de la ligne de flottaison
  • déployer un repli JavaScript
  • forcer loading=eager partout, ce qui bloque les futures heuristiques du navigateur

Points clés à retenir

  • Préférez loading=lazy natif à toute solution JavaScript
  • N'activez le différé que sous la ligne de flottaison
  • Imposez width et height pour éviter le CLS
  • Ajoutez l'attribut au rendu pour couvrir le contenu existant
  • Prévoyez une exception par élément pour protéger le LCP

Le chargement différé natif est désormais standard, sûr et simple à généraliser via un CMS.

Quiz : testez vos connaissances

  1. Pour activer le chargement différé natif des images via un CMS, faut-il encore recourir à une bibliothèque JavaScript ?

    • Non, l'attribut loading=lazy est standardisé et largement pris en charge, le natif suffit
    • Oui, mais uniquement pour les images situées au-dessus de la ligne de flottaison
    • Oui, une bibliothèque JavaScript reste indispensable pour que le lazy loading fonctionne

    L’attribut loading=lazy est standardisé et largement pris en charge. Doubler le natif d’un repli JavaScript pénalise les navigateurs compatibles et ajoute des risques.

  2. Pourquoi ne faut-il pas différer l'image hero d'une page ?

    • Parce que l'attribut loading n'est pas compatible avec les grandes images
    • Parce qu'elle se trouve au-dessus de la ligne de flottaison et qu'elle est souvent le candidat LCP
    • Parce que les images hero sont trop lourdes pour être chargées en lazy

    L’image hero apparaît au-dessus de la ligne de flottaison et constitue souvent le candidat LCP. La différer retarderait l’affichage du plus grand élément visible.

  3. Quelle approche permet de couvrir aussi les images déjà publiées sur le site ?

    • Forcer loading=eager partout pour uniformiser le comportement
    • Republier manuellement chaque ancien article pour y insérer l'attribut
    • Ajouter l'attribut à la volée au moment du rendu plutôt que seulement dans l'éditeur

    Ajouter l’attribut à la volée au moment du rendu fait bénéficier tout le contenu déjà publié du chargement différé, et non les seuls nouveaux articles.

À propos de l'auteur

Nicolas Dupont

Nicolas Dupont

Expert SEO Sénior & Fondateur

Il a fait grimper des sites en haut de Google et accompagné plus de 120 entreprises avant de fonder Les Webineurs. Sur votre projet SEO, vous échangez directement avec Nicolas, pas un commercial ni un junior. Un expert dédié et du trafic organique qui dure.

Voir le profil

Besoin d'un accompagnement SEO ?

Vous voulez vérifier que le chargement différé est bien configuré sur votre CMS sans pénaliser votre LCP ?

Faire le point avec un expert SEO