Mantys Core

Mon hero est une image d'arrière-plan : pourquoi elle ralentit le LCP et comment corriger (Divi, Elementor)

Le résumé en une phrase : une image d'arrière-plan CSS reste invisible pour le navigateur tant que la feuille de style n'est pas téléchargée et appliquée, elle n'a pas de srcset, et les builders la chargent souvent en différé avec du JavaScript, donc le hero démarre tard ; le meilleur correctif est une vraie image, et le suivant, un preload par appareil sans chargement différé sur cette section.

Par · · 7 min

Votre hero est une section pleine largeur avec une image d'arrière-plan, réglée dans Divi, Elementor ou un autre builder. PageSpeed désigne cette section comme l'élément Largest Contentful Paint, et liste « Découverte des requêtes LCP » parmi ses avertissements. Vous avez déjà compressé l'image. C'est toujours lent.

Le poids est rarement le problème principal. Le problème, c'est le moment où le navigateur apprend que l'image existe.

Pourquoi une image d'arrière-plan démarre tard

Une balise <img> classique est dans le HTML : le navigateur la repère dès les premiers octets et peut la demander immédiatement. Une image d'arrière-plan vit dans le CSS. Le navigateur ne la trouve qu'après quatre étapes :

  • télécharger le HTML ;
  • télécharger la feuille de style qui contient la règle, souvent un fichier par page généré par le builder ;
  • appliquer les styles et faire correspondre la règle à la section ;
  • alors seulement, demander l'image.

Deux habitudes des builders aggravent les choses. L'arrière-plan n'a souvent aucune variante de taille : un seul fichier de 1920 pixels pour tous les écrans, téléphones compris. Et beaucoup de thèmes et d'extensions chargent les arrière-plans en différé avec un script qui ajoute l'image une fois la section visible. Si ce script est lui-même reporté jusqu'à la première interaction, le hero attend que le visiteur bouge.

En bref
  • Un arrière-plan n'est découvert qu'une fois sa feuille de style téléchargée et appliquée.

  • Il n'a pas de srcset : les téléphones reçoivent le fichier desktop.

  • Les arrière-plans en chargement différé attendent un script, parfois une interaction.

Le vérifier sur votre page

  • Dans les DevTools, inspectez la section hero et cherchez background-image dans les styles calculés. Notez l'URL du fichier.
  • Dans le panneau Network, en émulation mobile, rechargez et retrouvez ce fichier : regardez à quel point il démarre tard par rapport au HTML et aux feuilles de style.
  • Cherchez dans les classes et les attributs de la section un marqueur de chargement différé, souvent une classe comme lazyload ou un attribut comme data-bg.

Correctif A (le meilleur) : transformer le hero en vraie image

Placez une balise <img> dans la section, positionnée pour la couvrir. Le rendu est identique, et le navigateur la voit désormais dans le HTML, peut choisir une largeur dans son srcset, et peut lui donner une priorité haute :

HTML + CSS
<section class="hero">
  <img class="hero__bg" src="/uploads/hero-1920.webp"
       srcset="/uploads/hero-768.webp 768w, /uploads/hero-1920.webp 1920w"
       sizes="100vw" width="1920" height="900" alt="" fetchpriority="high">
  <div class="hero__content"><!-- titre, bouton --></div>
</section>

<style>
  .hero { position: relative; }
  .hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; }
</style>

Dans la plupart des builders, c'est un module image placé dans la section avec le même CSS, ou un bloc HTML personnalisé. L'attribut alt vide la garde décorative, comme l'était l'arrière-plan.

Correctif B : garder l'arrière-plan, mais le faire partir tôt

Si le design doit rester un arrière-plan :

  • Préchargez-le, avec un preload par appareil si le builder utilise un arrière-plan différent sur mobile. La méthode est dans notre guide sur l'image LCP par appareil.
  • Sortez le hero de tout chargement différé des arrière-plans : dans les réglages du builder, dans l'extension qui l'ajoute, ou en excluant cette section.
  • Donnez aux téléphones un fichier plus léger : Divi comme Elementor permettent de définir une image d'arrière-plan différente par appareil. Importez-y une version à la taille mobile.
  • Mettez la règle du hero dans le critical CSS, pour qu'elle s'applique dès le premier affichage au lieu d'attendre la feuille de style complète.

Un hero qui démarre tôt

Une vraie image avec srcset et priorité haute, ou un arrière-plan préchargé, sans chargement différé, avec un fichier à la taille mobile.

Un hero qui démarre tard

Un arrière-plan de 1920 pixels, chargé en différé par un script, lui-même reporté jusqu'à la première interaction.

Vérifier le résultat

  • Panneau Network, émulation mobile : l'image du hero démarre juste après le HTML, pas après les feuilles de style.
  • Sa taille correspond à l'appareil.
  • Elle apparaît sans bouger la souris ni faire défiler.

Avec Mantys Core

Avec Mantys Core

Mantys Core peut piloter toute votre couche de performance, cache inclus, ou cohabiter avec votre installation existante. Sur un hero en arrière-plan, il traite le problème de découverte :

  • Il détecte, à partir de vrais rendus sur mobile et sur desktop, quand le LCP d'une page est un arrière-plan CSS, et précharge cette image pour cet appareil.

  • Le critical CSS de chaque page contient les règles de ce qui est visible au chargement, donc le hero est stylé dès le premier affichage au lieu d'attendre la feuille de style complète.

Le fichier lui-même reste de votre ressort : un arrière-plan a une seule image pour tous les écrans, donc le poids sur mobile se règle par une vraie image (correctif A) ou par un arrière-plan par appareil dans votre builder.

En résumé

  • Une image d'arrière-plan est découverte tard : le HTML, puis le CSS, puis la correspondance des styles, puis l'image.
  • Elle n'a pas de srcset, et les builders la chargent souvent en différé avec un script.
  • Meilleur correctif : une vraie image qui couvre la section, avec srcset et priorité haute.
  • Sinon : un preload par appareil, pas de chargement différé sur le hero, un fichier à la taille mobile, et sa règle dans le critical CSS.

Commentaires

Vous butez sur un problème similaire ? Décrivez votre configuration et ce que vous observez. Nous lisons chaque commentaire et nous répondons.

Aucun commentaire pour l’instant. Partagez le premier votre cas.

Les commentaires sont relus avant publication. Votre e-mail n’est conservé que pour vous répondre et peut être supprimé sur demande.

Mon compteObtenir une licence →