← SlowSite

02 — Méthodologie : mesurer avant de corriger

La règle est simple : une optimisation non mesurée n'est pas une optimisation, c'est une conviction.

Les six indicateurs

IndicateurCe qu'il mesureOù le lire
Poids totalOctets réellement transférésOnglet Réseau, ligne de total
RequêtesNombre d'allers-retoursOnglet Réseau
FCPInstant où le premier pixel de contenu s'afficheLighthouse
LCPInstant où le plus gros élément visible est peintLighthouse
CLSÀ quel point la page « saute » pendant le chargementLighthouse
TBTTemps pendant lequel la page ne répond pas aux clicsLighthouse

FCP et LCP racontent le chargement. TBT raconte le JavaScript. CLS raconte la mise en page. Les trois problèmes sont indépendants : on peut avoir un site léger et injouable, ou lourd et fluide.

Outil 1 — L'onglet Réseau

C'est le premier réflexe, et souvent le plus rentable.

  1. DevTools → Réseau
  2. Cochez Désactiver le cache (sinon vous mesurez votre cache, pas le site)
  3. Rechargez avec Ctrl+Maj+R
  4. Triez par la colonne Taille, décroissant

Ce que vous cherchez :

Lire une chaîne critique

Une ressource ne peut être demandée que si le navigateur sait qu'elle existe. Si A doit être téléchargé et lu pour découvrir B, et B pour découvrir C, vous payez trois allers-retours en série au lieu d'un seul en parallèle.

Lighthouse a un audit dédié : « Éviter l'enchaînement de requêtes critiques ». Ouvrez-le, il vous dessine l'arbre.

Outil 2 — Lighthouse

DevTools → Lighthouse → catégorie Performance.

Précautions, sans lesquelles vos chiffres ne veulent rien dire :

Descendez systématiquement jusqu'à la section Diagnostics, sous les opportunités. C'est là que se trouvent les informations les plus utiles.

Outil 3 — Le panneau Performance

C'est l'outil qui distingue un étudiant qui a compris d'un étudiant qui a deviné.

  1. DevTools → Performance
  2. Réglez CPU : ralentissement ×4 (votre machine est plus rapide qu'un téléphone)
  3. Cliquez sur Recharger (icône de rechargement dans le panneau)
  4. Laissez tourner au moins 20 secondes, en scrollant pendant ce temps
  5. Arrêtez

Ce que vous cherchez :

Le cas particulier du scroll

Un problème de scroll ne se voit pas au chargement. Enregistrez une session où vous ne faites que scroller, sans recharger. Si chaque cran de molette produit un bloc long, le coupable est un gestionnaire d'événement.

Outil 4 — L'onglet Coverage

Méconnu, très rentable pour le CSS.

DevTools → Ctrl+Maj+P → tapez coverage → Show Coverage → bouton de rechargement.

Vous obtenez, pour chaque fichier CSS et JS, le pourcentage de code réellement utilisé. Une barre rouge à 98 % sur une feuille de style vous dit exactement quoi faire.

Protocole avant/après

Pour que votre comparaison soit honnête :

  1. Mêmes conditions : même navigateur, même profil Lighthouse, même ralentissement CPU, cache désactivé, navigation privée.
  2. Mesurez avant de commencer, et conservez les captures. On ne remesure pas un « avant » après coup.
  3. Mesurez après chaque optimisation, pas seulement à la fin. C'est comme ça qu'on sait ce qui a payé — parfois, une correction ne change rien, et c'est une information.
  4. Notez tout dans un tableau au fur et à mesure.
OptimisationPoidsRequêtesLCPTBTCLS
Référence16,8 Mo18
+ images recompressées
+ …

Où mesurer : en local ou en ligne ?

Les deux, mais pas pour la même chose.

Serveur localSite déployé
Itérer, recharger, tester une idée✅lent
Relevés de référence, avant/après❌✅

La raison tient en un mot : la compression. Aucun serveur local ne compresse les fichiers texte, alors qu'un hébergeur sert du gzip ou du brotli. Sur ce site :

FichierServi en localServi par GitHub Pages
css/styles.css90,5 Ko7,3 Ko (−92 %)
css/extra.css28,8 Ko2,2 Ko (−93 %)
index.html8,3 Ko2,9 Ko (−65 %)

Conséquence directe pour votre audit : mesuré en local, le CSS inutilisé paraît dix fois plus coûteux qu'il ne l'est en production. Si vous bâtissez vos priorités là-dessus, vous passerez du temps sur le mauvais problème. Les images, elles, sont déjà compressées : gzip n'y change rien, et leur poids est le même partout.

C'est aussi un enseignement en soi : une optimisation se juge dans les conditions de production, pas dans les conditions de développement.

Le cas de Live Server

L'extension Live Server de VS Code est pratique pour éditer — le rechargement automatique évite des centaines de Ctrl+R. Mais elle injecte dans chaque page un script de rechargement (~1,2 Ko) et ouvre une WebSocket. Les deux apparaissent dans vos relevés : un <script> de plus dans le DOM, une connexion de plus dans l'onglet Réseau, un poids de document supérieur à celui du fichier réel.

Même famille de problème que le widget ?perf=1 : un outil de mesure qui modifie ce qu'il mesure. Utilisez Live Server pour travailler, pas pour relever.

Pièges de mesure classiques