Aller au contenu
en ce moment

Guides

121 mesures Core Web Vitals : mes deux meilleures hypothèses rejetées

La concaténation CSS a dégradé le TBT de 76 à 372 ms. Le report AJAX de 64 à 265 ms. Le vrai coupable était la stack publicitaire. Rapport de 9 séries de tests.

Par 7 min de lecture
121 mesures Core Web Vitals : mes deux meilleures hypothèses rejetées

👁 124 lectures

Nous avons optimisé ce site pendant plusieurs jours, en effectuant une série de mesures Lighthouse après chaque modification au lieu d’un seul test. Le résultat fut humiliant : deux de nos meilleures hypothèses se sont révélées nuisibles, et nous n’avons trouvé le vrai coupable qu’en cessant de croire à un résultat unique. 121 mesures en neuf séries. Voici ce qui en est ressorti.

Trois conclusions en un paragraphe

1. Une seule mesure Lighthouse ne signifie rien - la même URL nous donnait des résultats de 60 à 96 points sans aucune modification du code. 2. La concaténation des fichiers CSS en un seul, conseil de tous les tutoriels, a dégradé le TBT de 76 à 372 ms. 3. Le responsable de la dispersion n’était pas notre code, mais la stack publicitaire - après blocage des domaines publicitaires, le résultat s’est stabilisé à 77/77 avec une dispersion FCP de 0,7% au lieu de 22%.

Liste actuelle des formations IA

Compilation mise à jour automatiquement une fois par jour : prix, nombre de cours et notes directement depuis le catalogue du vendeur. Nouveautés et meilleures ventes en haut.

Ouvrir la compilation →

Règle zéro : mesurez une série, pas un seul test

Cela semble banal, mais presque personne ne le fait - et c’est pourquoi presque toutes les « optimisations » sur Internet relèvent du hasard.

Nous avons lancé Lighthouse dix fois de suite sur une URL inchangée. Les résultats ont varié de 60 à 96 points. Si nous avions modifié quoi que ce soit dans le code et obtenu un test à 96 après modification et 60 avant, nous aurions proclamé le succès. Si l’inverse s’était produit, nous aurions annulé une bonne correction.

Conseil pro : minimum cinq tests par variante, comparez les médianes et indiquez toujours la plage complète. Si les plages avant et après se chevauchent, vous n’avez pas de résultat - vous avez du bruit.

Hypothèse 1, rejetée : concaténation CSS en un seul fichier

Conseil classique : moins de requêtes HTTP, donc combinez les feuilles de style. Nous avons construit un bundle à partir de plusieurs fichiers CSS du thème, vérifié la validité des chemins relatifs et l’ordre des imports, puis déployé. Mesure :

Indicateur sur la page d’article Avant Après concaténation
TBT (blocage du thread principal) 76 ms 372 ms
Temps styleLayout 700 ms 1018 ms

Pourquoi cela n’a pas fonctionné : cinq feuilles de style séparées représentent cinq tâches courtes d’analyse que le navigateur peut entrelacer avec d’autres. Une seule feuille de 69 KB constitue une longue tâche qui ne peut être interrompue - et les longues tâches sont précisément ce que mesure le TBT. Nous avons réduit le nombre de requêtes et dégradé la perception de fluidité.

Conseil pro : avec HTTP/2, le nombre de requêtes a cessé d’être un problème. La concaténation de fichiers est un conseil de l’époque HTTP/1.1 et peut aujourd’hui nuire.

Hypothèse 2, rejetée : report des requêtes en arrière-plan

La page boutique envoyait plusieurs requêtes AJAX au démarrage. Nous les avons reportées via requestIdleCallback avec une limite de temps de 3000 ms - solution de manuel. Mesure :

  • TBT de la boutique : 64 ms → 265 ms
  • Le démarrage des requêtes est passé de l’intervalle 183-1329 ms à 383-2411 ms

Pourquoi cela n’a pas fonctionné : la limite de temps de 3000 ms a fait que le navigateur a déclenché toutes les requêtes reportées en une seule série - et précisément dans la fenêtre où le TBT est calculé. Au lieu de répartir le travail, nous l’avons concentré en un seul embouteillage.

Conseil pro : requestIdleCallback avec une courte limite de temps n’est pas « fais-le plus tard ». C’est « fais-le plus tard, mais certainement ». Sans limite ou avec une très longue, il se comporte différemment.

Ce qui a fonctionné et pourquoi

Une ligne qui a éliminé 70 ms de recalcul forcé de mise en page

Le script lisait la position d’un élément et la modifiait immédiatement. Cela provoque un recalcul forcé de mise en page - le navigateur doit tout interrompre et calculer la géométrie de la page. Lighthouse indiquait 70-75 ms sur une seule ligne.

La correction tient en une ligne :

if (window.requestAnimationFrame) requestAnimationFrame(place); else place();

La lecture est transférée au moment où le navigateur recalcule de toute façon la mise en page. Le coût tombe à zéro, et le code fait exactement la même chose.

Retrait du chemin critique de ce que la page n’utilise pas

La feuille de style des templates pesait 75 094 octets et se chargeait sur chaque sous-page, bien que la plupart des pages n’utilisent aucun de ces templates. La version de base fait 9 708 octets - soit 87% du poids pour rien. De même pour jQuery, chargé malgré l’absence de tout consommateur.

Conseil pro : avant de minifier, vérifiez si le fichier est même nécessaire sur cette page. La suppression bat la compression tous les jours.

Le vrai coupable : la stack publicitaire

Après avoir rejeté les deux hypothèses, nous avons posé une autre question : d’où vient la dispersion de 60-96 points. Nous avons bloqué les domaines publicitaires et de consentement et répété la série :

Avec publicités Sans publicités
Score de performance 60-96, bipolaire stable 77/77
Dispersion FCP 22% 0,7%
TBT variable 0
Poids de la stack 445-467 KB

La conclusion fut brutale : pendant plusieurs jours, nous avons optimisé du code qui ne représentait qu’une fraction du problème. La dispersion provenait de scripts externes sur lesquels nous n’avons aucun contrôle et que nous ne supprimerons pas, car ils financent le site.

Conseil pro, le plus important de tout l’article : avant d’optimiser quoi que ce soit, mesurez combien du résultat provient de vous et combien de scripts externes. Faites une série avec les domaines tiers bloqués. Si la différence est importante, votre plafond réel est bien plus bas que vous ne le pensez - et mieux vaut le savoir avant trois jours de travail qu’après.

Deux pièges d’outils rencontrés en cours de route

Pingdom peut mentir sur la compression

Le rapport affirmait que le serveur ne compressait pas les réponses. Nous avons vérifié directement : le serveur envoie br et zstd, et quand on demande explicitement gzip, il renvoie la page d’accueil en 71 306 octets au lieu de 289 394 non compressés. L’outil ne déclarait simplement pas la prise en charge des algorithmes plus récents. Les en-têtes d’expiration étaient également en place.

Vider tout le cache peut casser l’apparence

Le plugin vidait à chaque publication tout le cache y compris les fichiers CSS minifiés. Dans la fenêtre entre la suppression et la reconstruction, la page pointait vers une feuille de style qui n’existait pas - et s’affichait momentanément en HTML brut. Avec une dizaine d’articles par jour, cela arrivait régulièrement.

Conseil pro : après publication d’un article, videz ponctuellement - l’article lui-même, la page d’accueil, ses catégories et le flux RSS. Un nouvel article ne change pas le contenu du fichier CSS, donc aucune raison de le supprimer.

Liste de contrôle si vous voulez reproduire cela chez vous

  1. Faites dix mesures sur une page inchangée. Notez la médiane et la plage. C’est votre bruit.
  2. Répétez la série avec les domaines externes bloqués. La différence est le plafond de vos possibilités.
  3. Seulement maintenant, changez une chose à la fois et mesurez en série, pas avec un seul test.
  4. Si les plages avant et après se chevauchent - annulez la modification. L’absence de preuve n’est pas une preuve.
  5. Commencez par supprimer, pas par minifier. Un fichier qui n’existe pas est toujours le plus rapide.
  6. Cherchez les recalculs forcés de mise en page. Ils peuvent valoir 70 ms pour une ligne de correction.
Google · Vos sourcesPromptif plus haut dans Google - en un clicAjouter aux sources préférées →

D’où viennent ces chiffres

Toutes les valeurs proviennent de 121 mesures Lighthouse en neuf séries, effectuées sur ce site les 18-19 septembre 2026 sur quatre types de pages : accueil, article, revue et boutique. Les deux hypothèses rejetées ont été déployées en production, mesurées et annulées. Ce n’est pas une compilation de conseils d’autrui - c’est un rapport de ce qui a fonctionné et ce qui n’a pas fonctionné chez nous.

Kinetyra

// read next

More on this from PROMPTIF

Promptif

Promptif

ADMINISTRATOR
à lire ensuiteWarp : guide complet du terminal avec agent IA intégréguidesWarp : guide complet du terminal avec agent IA intégréWarp est un terminal avec agent IA intégré : décrivez ce que vous voulez faire et l'agent propose la commande. Voici comment l'utiliser au quotidien.

Les plus lus

  1. 1Applications de génération vidéo IA : Kling, PixVerse et autres
  2. 2Calendrier IA 2026 : lancements de modèles, conférences et IA Act
  3. 3Affaire Thélyson Orélien : j’ai testé le roman avec trois détecteurs d’IA. Même paragraphe : 100 %, 85 % et 0 %
// plan du site

Cette page dans d’autres langues6

promptif en chiffres 0textes dans les archives0actus des 7 derniers jours0modèles vidéo dans l'observatoire
🎬 Studio Vidéo IA : Higgsfield AI DoP Presets Caméra & Calculateur • Code Promo Higgsfield AI -50% • Higgsfield vs Kling AI
× ‹ agrandissement ›