Ouvrez PageSpeed Insights, lancez votre page d’accueil, et vous obtenez un seul chiffre de Largest Contentful Paint : 2,1 secondes, vert. Vous publiez.

Ce chiffre est une moyenne, ou assez proche pour les besoins de cet article, et les problèmes de performance se cachent dans les moyennes.

Un chiffre, plein d’expériences différentes

Le LCP est un ensemble de milliers de mesures, prises sur différents appareils, conditions réseau, états de cache et pages, puis réduites à un seul chiffre qui tient dans un badge de dashboard.

Un visiteur en fibre avec un cache chaud voit votre contenu en 0,8 seconde. Un visiteur sur un Android de trois ans, en 4G, arrivant sur une page sans rien en cache, attend peut-être 4 à 5 secondes. Votre dashboard fait la moyenne des deux pour obtenir un badge « 2,1 secondes, vert ». Le badge est exact et décrit une fiction statistique entre deux réalités différentes. Aucun visiteur ne la vit.

Les visiteurs qui vivent la pire expérience sont ceux qui risquent le plus de repartir. Une moyenne qui a bonne allure peut recouvrir une longue traîne de chargements de page ratés, et la moyenne ne la montre pas. Il faut aller chercher cette traîne soi-même.

Pourquoi un serveur plus rapide ne règle pas ça

Le réflexe, c’est l’infrastructure : un hébergeur plus rapide, un CDN, la compression d’images, le code splitting. Tout ça vaut le coup, et rien de tout ça ne touche à la forme du problème. Le serveur est assez rapide. Le navigateur ne sait pas quoi charger avant que l’utilisateur ne clique, et à ce moment-là le visiteur attend déjà.

Chaque optimisation visant la première requête se bat contre la même physique : résolution DNS, handshake TLS, traitement serveur, téléchargement, parsing, rendu. Grappillez des millisecondes sur chaque étape, le chrono démarre quand même à zéro au moment du clic.

Faites la requête plus tôt : avant que l’utilisateur ne clique, en vous basant sur la destination vers laquelle il se dirige probablement.

Ce qu’on a construit pour régler ça

Foresight repose sur cette prémisse : traiter les chargements de page comme des prédictions plutôt que comme des démarrages à froid. Un modèle entraîné sur vos propres données analytics anticipe la prochaine destination probable d’un visiteur et la précharge avant le clic. Le contenu se trouve souvent déjà dans le navigateur quand le visiteur le demande, si bien que le LCP perçu, celui qui décide s’il repart, baisse.

Foresight ne réparera pas un serveur sous-dimensionné et ne remplace pas les bases (compressez vos images). Il traite la partie du problème de LCP que les dépenses d’infrastructure ne peuvent pas toucher : le premier octet d’une page ne commence à circuler qu’après que l’utilisateur s’est engagé à s’y rendre.

Un audit vous montre votre propre distribution de LCP, l’écart complet plutôt que la moyenne, et vous en apprend plus que le dashboard.