Pourquoi un focus immédiat sur les Core Web Vitals pour optimiser site internet
Dans un contexte B2B où chaque seconde impacte l’acquisition et la conversion, améliorer les Core Web Vitals est l’un des meilleurs leviers pour optimiser site internet rapidement. Cet article vous guide pas à pas pour conduire un audit Lighthouse pertinent, interpréter les résultats, prioriser des quick wins et intégrer le suivi dans votre CI. Nous détaillons LCP, INP et CLS, la différence entre données de labo et données réelles, et les actions concrètes pour un SaaS basé sur Next.js ou équivalent. Vous repartez avec une checklist actionnable pour optimiser site internet sans vous noyer.
Les fondamentaux à connaître avant l’audit
Les Core Web Vitals regroupent 3 indicateurs prioritaires qui reflètent l’expérience réelle des utilisateurs. Les seuils recommandés sont:
-
LCP bon ≤ 2,5 s, à améliorer entre 2,5 et 4 s, mauvais > 4 s.
-
INP bon ≤ 200 ms, à améliorer entre 200 et 500 ms, mauvais > 500 ms.
-
CLS bon ≤ 0,1, à améliorer entre 0,1 et 0,25, mauvais > 0,25. (web.dev)
En mars 2024, INP a officiellement remplacé FID dans les Core Web Vitals. Si vos tableaux de bord historiques mentionnent encore FID, mettez-les à jour. (web.dev, Google for Developers)
PageSpeed Insights combine des mesures de terrain issues du Chrome UX Report (CrUX) et des diagnostics de labo via Lighthouse. Autrement dit, PSI affiche à la fois comment vos utilisateurs réels vivent la page et ce que Lighthouse observe dans un environnement contrôlé. (Chrome for Developers, Google for Developers)
Nuance SEO importante: Google confirme que les signaux de page experience, dont les Core Web Vitals, peuvent être utilisés par les systèmes de classement, mais ne garantissent pas un top ranking à eux seuls. L’objectif principal reste du contenu utile, avec une bonne expérience. (Google for Developers)
Plan d’audit pas à pas pour optimiser site internet
-
Ciblez la bonne URL
-
Testez la page qui convertit: pricing, onboarding, formulaire de démo.
-
Assurez une comparaison mobile vs desktop cohérente.
-
-
Ouvrez PageSpeed Insights
-
Interprétez d’abord l’onglet Field Data pour savoir comment les vrais utilisateurs perçoivent la page, puis validez avec Lab Data pour diagnostiquer. (Chrome for Developers)
-
-
Passez à Lighthouse dans Chrome DevTools
-
Lancez un audit Performance.
-
Notez le LCP element, la source INP la plus lente et l’origine des layout shifts. (Chrome for Developers)
-
-
Répétez avec le CLI
-
Rejouez le test en local et en CI pour tracer l’évolution et optimiser site internet en continu. Voir plus bas les commandes.
-
-
Corrélez avec Search Console
-
Vérifiez le rapport Core Web Vitals au niveau du site et des groupes d’URL pour prioriser. (Aide Google)
-
Labo vs terrain: comment lire correctement vos chiffres
-
CrUX/Field: données réelles agrégées sur 28 jours, segmentées mobile et desktop. Prioritaire pour juger l’expérience utilisateur et l’éligibilité SEO.
-
Lighthouse/Lab: simulation reproductible utile pour diagnostiquer et valider les correctifs. Ne reflète pas toujours les conditions réseau/appareil de vos visiteurs. (Google for Developers)
Conseil: si PSI Lab et CrUX divergent, traitez CrUX comme source de vérité, puis utilisez Lighthouse pour trouver les causes techniques. (web.dev)
Seuils clés et sources officielles
-
LCP: visez ≤ 2,5 s au 75e percentile.
-
INP: visez ≤ 200 ms au 75e percentile.
-
CLS: visez ≤ 0,1 au 75e percentile.
Guides et définitions détaillées: web.dev pour LCP, INP, CLS et optimisation associée. (web.dev)
Comment fonctionne le score Lighthouse
Le score Performance est une courbe log-normale calibrée sur HTTP Archive avec des points de contrôle au 25e percentile pour 50 points et au 8e percentile pour 90 points. Concrètement, de petites améliorations autour de la zone 50-90 ont un impact visible sur le score. Ne confondez pas ce score avec vos Core Web Vitals de terrain. (Chrome for Developers)
Quick wins pour optimiser site internet côté SaaS
Ces actions sont classées par impact estimé sur LCP, INP, CLS et par effort. Elles s’appliquent très bien à Next.js, Vercel, Netlify ou un front React/Node classique.
1) Accélérer le LCP
-
Prioriser le visuel LCP: utilisez
next/image
avecpriority
,sizes
adaptées et une image optimisée. -
Réduire le TTFB: activez ISR/SSG sur Next.js pour les pages marketing et pricing.
-
Précharger la police et héberger localement avec
next/font
pour éviter les flashs tardifs. -
Minimiser CSS critique: extrayez le CSS critique et chargez le reste en différé.
-
CDN proche: servez images et assets via un CDN proche des utilisateurs.
Référence bonnes pratiques LCP. (web.dev)
Exemple Next.js pour le LCP image:
// Hero.tsx
import Image from "next/image";
export default function Hero() {
return (
<div className="relative">
<Image
src="/hero.jpg"
alt="Interface du produit montrant les bénéfices pour optimiser site internet"
width={1600}
height={900}
priority
sizes="(max-width: 768px) 100vw, 1200px"
className="rounded-xl"
/>
<h1 className="sr-only">Votre SaaS plus rapide</h1>
</div>
);
}
2) Réduire l’INP
-
Éliminer le travail main-thread: découpez les tâches >50 ms, utilisez
requestIdleCallback
, Web Workers pour traitements lourds. -
Éviter les listeners globaux coûteux: préférez de petits gestionnaires ciblés.
-
Désactiver le délai 300 ms mobile: assurez un meta viewport correct.
-
Limiter les états complexes: évitez le re-render massif lors d’un clic.
Guides officiels d’optimisation INP. (web.dev)
Snippet pour trace de longue tâche côté client:
// metrics.js
new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
if (entry.duration > 50) {
console.log("Long task", entry);
}
}
}).observe({ type: "longtask", buffered: true });
3) Stabiliser le CLS
-
Toujours réserver l’espace des images, iframes, pubs et embeds via dimensions explicites.
-
Éviter l’injection tardive de bannières sans place réservée.
-
Utiliser
font-display: swap
et héberger les polices. -
Ne pas repousser le contenu lors du chargement de composants dynamiques.
Référence CLS et ses causes fréquentes. (web.dev)
4) Scripts tiers sous contrôle
-
Chargez les tags marketing en deferred ou via un Tag Manager avec conditions.
-
Supprimez les bibliothèques inutilisées, basculez vers des versions lite.
-
Lazy-load des widgets sociaux, maps et chat.
5) Réseau et cache
-
HTTP/2 ou HTTP/3, compression Brotli, Cache-Control adapté.
-
Preconnect et DNS-prefetch sur les domaines critiques.
-
Servez les images au format moderne (AVIF, WebP).
Exemple d’en-têtes sur un edge middleware:
// middleware.ts - Next.js
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
export function middleware(req: NextRequest) {
const res = NextResponse.next();
res.headers.set("Cache-Control", "public, max-age=600, s-maxage=86400, stale-while-revalidate=300");
res.headers.set("Cross-Origin-Resource-Policy", "same-site");
return res;
}
Tableau de priorisation: de l’audit Lighthouse aux quick wins
Problème détecté | Signal | Impact estimé | Effort | Quick win recommandé |
---|---|---|---|---|
LCP élevé dû à image héro lourde | LCP | Très fort | Faible | next/image avec priority , compression AVIF, tailles correctes |
Long tasks à 150 ms lors de clic | INP | Fort | Moyen | Découper la tâche, déporter en Web Worker, déférer calculs |
Sauts lors du chargement pub | CLS | Fort | Faible | Réserver un conteneur fixe, lazy-load dans la zone pré-allouée |
Fonts bloquantes | LCP, CLS | Moyen | Faible | next/font local, display: swap , préchargement |
JS inutile sur page marketing | LCP, INP | Fort | Moyen | Code-splitting, import dynamique, supprimer dépendances |
TTFB lent sur pages statiques | LCP | Fort | Faible | Activer ISR/SSG, mettre derrière CDN |
Widgets sociaux bloquants | INP, LCP | Moyen | Faible | Lazy-load via IntersectionObserver, déférer l’exécution |
Mettre en place Lighthouse partout pour optimiser site internet en continu
Où lancer Lighthouse: Chrome DevTools, CLI, Node module, PSI et Lighthouse CI pour l’automatisation. Documentation officielle et prérequis Node récents à respecter. (Chrome for Developers, GitHub)
Commandes utiles:
# Mobile par défaut
lighthouse https://exemple.com --view
# Desktop
lighthouse https://exemple.com --preset=desktop --view
# JSON pour parsing/CI
lighthouse https://exemple.com --output=json --output-path=./lh.json
Intégration Lighthouse CI:
// lighthouserc.json
{
"ci": {
"collect": {
"numberOfRuns": 3,
"url": ["https://exemple.com/pricing", "https://exemple.com/"],
"settings": { "preset": "mobile" }
},
"assert": {
"assertions": {
"categories:performance": ["error", { "minScore": 0.9 }],
"largest-contentful-paint": ["warn", { "maxNumericValue": 2500 }],
"cumulative-layout-shift": ["warn", { "maxNumericValue": 0.1 }],
"interaction-to-next-paint": ["warn", { "maxNumericValue": 200 }]
}
}
}
}
Référence Lighthouse CI. (GitHub)
Spécificités Next.js pour optimiser site internet
Images
-
next/image
gère formats modernes, tailles réactives et lazy-loading. -
Définissez
sizes
selon la grille responsive. Exemple fourni plus haut.
Fonts
// fonts.ts
import { Inter } from "next/font/google";
export const inter = Inter({
subsets: ["latin"],
display: "swap",
variable: "--font-inter"
});
Associez une classe CSS au body pour éviter le FOIT et réduire CLS.
Code splitting et imports dynamiques
// pages/pricing.tsx
import dynamic from "next/dynamic";
const PricingCalculator = dynamic(() => import("@/components/PricingCalculator"), { ssr: false });
export default function Pricing() {
return <PricingCalculator />;
}
Réduisez la taille du bundle initial, améliorez l’INP en évitant des ré-exécutions poussées au clic.
ISR pour le LCP
-
Servez les pages marketing en SSG/ISR.
-
Mettez à jour à intervalle raisonnable pour garder le TTFB bas.
Gérer les scripts tiers sans dégrader l’INP
-
Chargez de manière asynchrone:
async
oudefer
. -
Donnez-vous une budgetisation: nombre maximal de scripts, taille totale.
-
Utilisez des déclencheurs au scroll ou à l’interaction pour les widgets.
Mesurer en continu et aligner produit, marketing, dev
-
Budgets Core Web Vitals au niveau de l’équipe: ex. LCP ≤ 2,3 s mobile, INP ≤ 180 ms, CLS ≤ 0,08.
-
Alertes dès que CrUX se dégrade. PSI API et CrUX API pour automatiser les rapports. (Google for Developers)
Étude de cas express: page Pricing qui rame
Symptômes: LCP à 3,6 s mobile, INP à 280 ms, CLS à 0,14.
Causes: image héro 1,5 Mo, calculateur pricing chargé au-dessus de la ligne de flottaison, webfont externe sans preconnect, bannière promo injectée.
Correctifs pour optimiser site internet:
-
Hero compressée à 180 Ko en AVIF,
priority
etsizes
corrects. -
dynamic(import)
pour le calculateur, rendu sous la ligne de flottaison. -
Fonts locales via
next/font
,display: swap
,preload
du fichier woff2. -
Conteneur réservé 320 px pour la bannière.
Résultat attendu: LCP ~2,1 s, INP ~160 ms, CLS ~0,02.
Un guide pour créer un site
Besoin d’un plan d’action prêt à l’emploi pour optimiser site internet de votre SaaS, étape par étape, sans vous perdre dans les outils? La todo-liste et la knowledge base de comment créer un SaaS sont gratuites, structurées en modules et étapes, et s’inspirent des meilleures pratiques du marché. Ajoutez vos projets, suivez vos avancées, et améliorez votre visibilité.
Checklist opératoire pour optimiser site internet avec Lighthouse
-
Cible: sélectionnez 3 pages à fort impact business.
-
PSI/CrUX: lisez d’abord les données de terrain, puis comparez au labo. (Chrome for Developers)
-
Lighthouse: identifiez l’élément LCP, les interactions lentes, les shifts. (Chrome for Developers)
-
Quick wins: appliquez images optimisées, découpage des longues tâches, espace réservé pour tous les médias, fonts locales.
-
Scripts tiers: stricte diète.
-
Cache et CDN: règles de cache, compression, HTTP/2 ou 3.
-
CI: Lighthouse CI avec seuils gardes-fous. (GitHub)
-
Suivi: automatiser PSI API ou CrUX API, alerter à la dérive. (Google for Developers)
Liens utiles et sources d’autorité
-
Page experience et Core Web Vitals dans la recherche: guidance officielle Search Central. (Google for Developers)
-
INP remplace FID: annonce et guides pour diagnostiquer et corriger. (web.dev)
-
Lighthouse: présentation et scoring. (Chrome for Developers)
-
PSI et CrUX: comment lire les résultats. (Chrome for Developers, Google for Developers)
-
Optimiser LCP, INP, CLS: guides web.dev détaillés. (web.dev)
Conclusion
Pour optimiser site internet d’un SaaS, concentrez l’effort sur les Core Web Vitals avec une méthode robuste: CrUX pour la réalité du terrain, Lighthouse pour le diagnostic, quick wins priorisés, puis CI et budgets pour tenir la cadence. LCP, INP, CLS ne sont pas que des chiffres, ils pilotent concrètement la satisfaction, la conversion et, à terme, votre croissance. Mettez en place la checklist aujourd’hui et mesurez les gains dans 28 jours.