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

Différer le chargement des images et des iframes

Allégez le chargement initial en différant images et iframes hors écran. Moins de bande passante, meilleur LCP et meilleur INP pour votre SEO.

Par Nicolas Dupont Mis à jour le 23 juin 2026

Les images et les iframes consomment souvent plus de bande passante que les autres ressources. Pour un iframe, le chargement et le rendu de la page intégrée demandent en plus un temps de traitement non négligeable, car il s’agit d’un document HTML complet avec ses propres sous-ressources. Pourtant, il n’est pas nécessaire de tout charger dès l’ouverture de la page.

Différer le chargement des éléments hors écran est une technique à faible effort et fort retour pour le SEO. Sur les connexions lentes, cela peut améliorer le Largest Contentful Paint (LCP) en réattribuant de la bande passante aux candidats LCP, un levier complémentaire pour optimiser le LCP. Côté iframe, alléger les sous-ressources au démarrage améliore aussi l’Interaction to Next Paint (INP), donc la réactivité perçue.

Différer ce qui est hors écran, qu’il s’agisse d’images ou d’iframes, c’est un effort minime pour un retour réel, surtout sur connexion lente. Une iframe coûte particulièrement cher car c’est un document HTML complet avec ses propres sous-ressources, donc autant ne la charger qu’à l’approche. En réattribuant la bande passante aux éléments critiques, vous améliorez directement le LCP du contenu visible.

— Nicolas Dupont

Différer les images avec loading

L’attribut loading sur les balises img accepte deux valeurs utiles. eager, la valeur par défaut, charge l’image immédiatement même hors écran. lazy diffère le chargement jusqu’à ce que l’image soit à une distance définie de la fenêtre d’affichage, distance qui varie selon le navigateur, le type de connexion et le type d’image.

N’appliquez lazy qu’aux images hors de la fenêtre d’affichage initiale, comme le détaille notre guide du chargement différé natif des images. Comme la position finale n’est connue qu’après la mise en page, une image visible passée en lazy n’est demandée qu’après le téléchargement et l’application du CSS, au lieu d’être repérée tôt par le scanner de préchargement. Sur picture, loading se place sur l’img enfant.

Différer une image et un iframe
<img src="image.jpg" loading="lazy" alt="…" width="400" height="300">

<iframe src="https://exemple.com/embed" loading="lazy" width="560" height="315"></iframe>

Différer les iframes

Un iframe sous la ligne de flottaison gagne presque toujours à être différé s’il n’est pas essentiel au démarrage. Les intégrations tierces sont le cas typique : lecteurs vidéo, publications sociales et widgets embarquent de nombreuses sous-ressources, souvent du JavaScript. Différer une vidéo YouTube intégrée économise plus de 500 Kio au chargement initial, et le bouton J’aime de Facebook plus de 200 Kio, en grande partie du JavaScript : un cas concret abordé quand on apprend à différer les iframes.

L’attribut loading sur iframe est géré par tous les navigateurs majeurs, avec les mêmes valeurs et comportements que pour les images. Chrome réserve même un espace réservé pendant la récupération, mais il reste conseillé de fixer width, height et des styles CSS pour limiter les décalages de mise en page.

Technique Principe Bénéfice principal

loading= »lazy » sur img

Diffère les images hors écran

Économie de bande passante, meilleur LCP

loading= »lazy » sur iframe

Diffère l’iframe et ses sous-ressources

Moins de JavaScript au démarrage, meilleur INP

Façade

Aperçu cliquable avant l’intégration réelle

Charge l’embarqué seulement si l’utilisateur le veut

Bibliothèque JS

Chargement différé via Intersection Observer

Couvre video, poster, background-image

Façades et bibliothèques JavaScript

Une façade affiche une image ou un élément léger à la place d’une intégration coûteuse, et ne charge l’embarqué réel qu’après une interaction de l’internaute. Pour une vidéo, on montre une image statique qui ressemble au lecteur, remplacée par l’iframe au clic. Si l’utilisateur ne lance jamais la vidéo, ses ressources ne sont jamais téléchargées. Des solutions open source existent comme lite-youtube-embed, lite-vimeo-embed ou React Live Chat Loader.

Pour les éléments non couverts nativement (video, image poster, background-image CSS), une bibliothèque comme lazysizes ou yall.js prend le relais. Ces outils s’appuient sur l’API Intersection Observer pour détecter l’entrée dans la fenêtre et remplacent alors un attribut data-src par le src réel.

Ne pas différer ce qui est visible au démarrage

N’appliquez jamais loading= »lazy » à une image ou un iframe visible dans la fenêtre d’affichage initiale, surtout à une image candidate au LCP. La différer attend la fin de la mise en page et dégrade le LCP. Réservez le chargement différé aux éléments réellement sous la ligne de flottaison, et fixez toujours width et height pour préserver la stabilité visuelle.

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

À faire

  • différer images et iframes hors écran
  • utiliser une façade pour les intégrations lourdes
  • fixer width et height
  • recourir à une bibliothèque pour les cas non natifs

À éviter

  • différer un élément visible au démarrage
  • charger toutes les intégrations tierces d’emblée
  • ajouter du JavaScript quand le natif suffit
  • négliger les dimensions des iframes

Points clés à retenir

  • Appliquez loading="lazy" aux img et iframe situés hors écran.
  • Ne différez jamais un élément visible au démarrage ni l'image LCP.
  • Utilisez une façade pour les intégrations tierces coûteuses.
  • Recourez à une bibliothèque JS pour video, poster ou background-image.
  • Fixez width et height pour limiter les décalages de mise en page.

Différer images et iframes est une optimisation simple à fort impact.

Quiz : testez vos connaissances

  1. Quelle est la valeur par défaut de l'attribut loading pour les balises img et iframe ?

    • lazy : tout est différé par défaut, et eager force le chargement immédiat
    • auto : le navigateur décide seul selon la position de l'élément
    • eager : l'élément se charge immédiatement, et lazy doit être ajouté explicitement sur les éléments hors écran

    La valeur par défaut est eager pour les deux : l’élément se charge immédiatement. Il faut ajouter lazy explicitement, et seulement sur les éléments hors de la fenêtre d’affichage.

  2. Quand l'utilisation d'une façade est-elle particulièrement utile ?

    • Quand une intégration tierce charge beaucoup de ressources et que tous les internautes n'interagiront pas forcément
    • Quand une image légère doit être affichée au-dessus de la ligne de flottaison
    • Quand on veut charger d'emblée toutes les intégrations pour gagner du temps

    Une façade affiche un élément léger à la place d’une intégration coûteuse et ne charge l’embarqué réel qu’après une interaction, idéal pour une vidéo ou un widget que tous ne consulteront pas.

  3. Pourquoi recourir parfois à une bibliothèque JavaScript plutôt qu'au lazy loading natif ?

    • Parce que le natif ne fonctionne sur aucun navigateur moderne
    • Parce que le natif ne couvre pas les éléments video, les images poster ni les background-image CSS
    • Parce qu'une bibliothèque est toujours plus rapide que l'attribut natif

    Le chargement différé natif ne couvre pas les éléments video, les images poster ni les background-image CSS. Une bibliothèque JavaScript dédiée prend alors en charge ces cas non natifs.

À 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 ?

Des intégrations tierces chargées trop tôt peuvent plomber votre LCP et votre INP sans que vous le sachiez.

Faire le point avec un expert SEO