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

Différer le chargement des iframes (loading=lazy)

Allégez vos pages en différant le chargement des iframes hors écran avec loading=lazy : moins de données, un FCP et un LCP améliorés.

Par Nicolas Dupont Mis à jour le 23 juin 2026

Les intégrations tierces (lecteurs vidéo, publications de réseaux sociaux, cartes, annonces) reposent très souvent sur des iframes. Or chaque iframe télécharge ses propres ressources, parfois plusieurs mégaoctets de données et de JavaScript, même lorsque l’utilisateur ne fait jamais défiler la page jusqu’à elle. Ce gaspillage ralentit l’ensemble de la page et consomme de la bande passante inutilement.

Différer le chargement des iframes situées hors de l’écran consiste à ne les charger que lorsque l’utilisateur s’en approche par défilement. Pour le SEO, c’est un levier direct : vous libérez de la bande passante pour les ressources visibles, vous accélérez le rendu initial et vous améliorez plusieurs signaux Core Web Vitals que Google prend en compte, dans le prolongement du travail pour différer images et iframes.

Les intégrations tierces sont des gouffres silencieux : un lecteur vidéo ou une carte embarquée télécharge ses mégaoctets même si l’utilisateur ne descend jamais jusqu’à elle. Différer ces iframes hors écran avec l’attribut loading, c’est cesser de payer pour du contenu que personne ne regarde. Je commence toujours par les plus lourdes, vidéos et réseaux sociaux en tête.

— Nicolas Dupont

À quoi sert le chargement différé des iframes

Le principe est simple : le navigateur retarde la récupération de l’iframe tant qu’elle reste éloignée du viewport, puis la charge juste avant qu’elle n’entre à l’écran. L’utilisateur ne perçoit aucune différence, mais le navigateur évite des téléchargements coûteux pour du contenu jamais consulté.

Les mesures de Chrome sont éloquentes : le chargement différé des iframes hors écran peut générer une économie de données moyenne de 2 à 3 %, réduire le First Contentful Paint de 1 à 2 % à la médiane et améliorer la réactivité au 95e centile. Sur les appareils à réseau contraint, la bande passante ainsi libérée profite directement aux ressources qui déterminent le Largest Contentful Paint, tandis que d’autres intégrations gagnent à être traitées comme les vidéos à différer.

Utiliser l'attribut loading

Le chargement différé natif s’active avec un seul attribut HTML, sans dépendance JavaScript. L’attribut loading accepte deux valeurs : lazy pour différer la ressource hors écran, et eager pour la charger immédiatement. Ne pas indiquer l’attribut revient au comportement eager par défaut.

La syntaxe est identique sur l’élément iframe et sur l’élément image. Pensez à toujours renseigner les attributs width et height pour réserver l’espace et éviter les décalages de mise en page.

Différer une iframe avec loading=lazy
<!-- Iframe différée -->
<iframe src="https://monsite.fr"
        loading="lazy"
        width="600"
        height="400"></iframe>

<!-- Iframe chargée immédiatement -->
<iframe src="https://monsite.fr"
        width="600"
        height="400"></iframe>

Différer une iframe créée en JavaScript

Si vous générez vos iframes dynamiquement, l’attribut reste pris en charge : il suffit de définir la propriété loading sur l’élément avant de l’insérer dans le document. Le navigateur appliquera alors le même comportement différé qu’avec une iframe écrite directement dans le HTML.

Iframe différée créée en JavaScript
var iframe = document.createElement('iframe');
iframe.src = 'https://monsite.fr';
iframe.loading = 'lazy';
document.body.appendChild(iframe);

Les intégrations à différer en priorité

Les intégrations multimédias et sociales sont les candidates idéales, car elles apparaissent souvent en bas de page et pèsent lourd au chargement initial, à l’image des régies publicitaires qu’il faut savoir charger sans ralentir le site. Le tableau ci-dessous récapitule les gains observés par Google sur quelques services populaires.

Intégration Économie au chargement initial Bonne candidate

Vidéo YouTube intégrée

Environ 500 ko

Oui, souvent hors écran

Élément intégré Spotify

Environ 514 ko

Oui

Publication Instagram

Environ 100 ko (script évité)

Oui, en fin d’article

Bouton J’aime Facebook

Environ 215 ko dont 197 ko de JS

Oui, via data-lazy

Les iframes masquées ne sont pas différées

L’attribut loading n’applique aucune heuristique automatique : il diffère ce que vous lui demandez de différer. Les premières expériences de Chrome épargnaient les iframes masquées servant aux communications ou à l’analyse, mais ce n’est pas le cas de l’attribut. Évitez donc d’ajouter loading=lazy à une iframe invisible et critique pour votre suivi : elle resterait chargée différée et pourrait fausser vos données.

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

À faire

  • différer les iframes situées sous la ligne de flottaison
  • renseigner width et height
  • tester l’affichage après défilement
  • conserver eager pour les iframes visibles d’emblée

À éviter

  • différer une iframe critique au-dessus de la ligne de flottaison
  • oublier les dimensions et provoquer des décalages
  • appliquer lazy à des iframes de mesure invisibles
  • multiplier les bibliothèques quand le natif suffit

Points clés à retenir

  • Ajoutez loading=lazy aux iframes tierces hors écran
  • Gardez eager pour le contenu immédiatement visible
  • Renseignez toujours width et height
  • Activez data-lazy sur les plug-ins Facebook compatibles
  • Réservez une bibliothèque tierce aux navigateurs anciens ou aux seuils personnalisés

Le chargement différé des iframes est un gain de performance rapide à mettre en place.

Quiz : testez vos connaissances

  1. Pourquoi différer le chargement des iframes améliore-t-il la performance ?

    • Différer une iframe compresse automatiquement son contenu
    • Les iframes ne se chargent jamais sans un déclenchement manuel de toute façon
    • Chaque iframe télécharge ses propres ressources, parfois plusieurs Mo, même si l'utilisateur ne la voit jamais

    Chaque iframe télécharge ses propres ressources, parfois plusieurs mégaoctets de données et de JavaScript, même lorsque l’utilisateur ne fait jamais défiler jusqu’à elle.

  2. Que se passe-t-il si l'on n'indique pas l'attribut loading sur une iframe ?

    • Le comportement par défaut est eager : l'iframe se charge immédiatement
    • L'iframe applique une heuristique automatique selon sa position
    • Le comportement par défaut est lazy : l'iframe est différée automatiquement

    L’attribut loading accepte lazy et eager ; ne pas l’indiquer revient au comportement eager par défaut. L’attribut n’applique aucune heuristique automatique.

  3. Quelles intégrations sont les meilleures candidates au chargement différé ?

    • Les intégrations multimédias et sociales, souvent placées en bas de page et lourdes au chargement
    • Les iframes de mesure invisibles placées dans l'en-tête
    • Les iframes critiques situées au-dessus de la ligne de flottaison

    Les intégrations multimédias et sociales sont idéales : elles apparaissent souvent en bas de page et pèsent lourd au chargement initial. Une iframe critique au-dessus de la ligne de flottaison doit rester en eager.

À 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 ralentissent vos pages et pénalisent vos Core Web Vitals ?

Faire le point avec un expert SEO