Core Web Vitals : le guide complet pour optimiser votre site
Les Core Web Vitals sont devenus un facteur de classement officiel de Google. Comprendre et optimiser ces métriques est essentiel pour votre SEO et l'expérience utilisateur.
Que sont les Core Web Vitals ?
Les Core Web Vitals sont trois métriques spécifiques mesurant l'expérience utilisateur réelle de vos pages :
Mesure : Le temps de chargement du plus grand élément visible (image, vidéo, bloc de texte).
Mesure : Le délai entre la première interaction utilisateur (clic, tap) et la réponse du navigateur.
Note : FID est remplacé par INP (Interaction to Next Paint) depuis mars 2024.
Mesure : La stabilité visuelle - les décalages inattendus des éléments pendant le chargement.
Comment mesurer les Core Web Vitals
Outils recommandés :
- Google PageSpeed Insights : Données de terrain + données de laboratoire
- Google Search Console : Rapport "Expérience" avec données réelles
- Chrome DevTools : Onglet Performance
- web.dev/measure : Test rapide en ligne
- SEO RankLab : Intégration des métriques de performance
Optimiser le LCP
Causes communes de LCP lent :
- Images non optimisées
- Temps de réponse serveur élevé (TTFB)
- CSS/JS bloquant le rendu
- Ressources tierces lentes
Solutions :
1. Optimisez les images :
<img src="image.webp" srcset="image-400.webp 400w, image-800.webp 800w" sizes="(max-width: 600px) 400px, 800px" loading="eager" <!-- Pour l'image LCP --> fetchpriority="high" alt="Description" >
2. Préchargez les ressources critiques :
<link rel="preload" href="hero.webp" as="image"> <link rel="preconnect" href="https://fonts.googleapis.com">
3. Utilisez un CDN pour réduire la latence serveur.
Optimiser le FID/INP
Causes communes :
- JavaScript lourd bloquant le thread principal
- Tâches longues (> 50ms)
- Scripts tiers non optimisés
Solutions :
1. Différez le JavaScript non critique :
<script src="analytics.js" defer></script> <script src="chat-widget.js" async></script>
2. Divisez les tâches longues :
// Au lieu d'une boucle bloquante
function processInChunks(items) {
const chunk = items.splice(0, 100);
// Traiter le chunk
if (items.length > 0) {
setTimeout(() => processInChunks(items), 0);
}
}
Optimiser le CLS
Causes communes :
- Images sans dimensions
- Publicités/embeds sans espace réservé
- Polices web provoquant un FOIT/FOUT
- Contenu injecté dynamiquement
Solutions :
1. Définissez toujours les dimensions :
<img src="photo.jpg" width="800" height="600" alt="...">
/* Ou avec CSS aspect-ratio */
img {
aspect-ratio: 4 / 3;
width: 100%;
height: auto;
}
2. Réservez l'espace pour les pubs :
.ad-container {
min-height: 250px; /* Hauteur minimale de la pub */
}
3. Optimisez le chargement des fonts :
@font-face {
font-family: 'CustomFont';
src: url('font.woff2') format('woff2');
font-display: swap; /* ou optional */
}
Checklist d'optimisation rapide
[OK] Actions prioritaires :
- Convertir les images en WebP/AVIF
- Activer la compression GZIP/Brotli
- Utiliser un CDN
- Définir width/height sur toutes les images
- Différer le JS non critique
- Précharger les ressources LCP
- Minifier CSS et JS
- Activer le cache navigateur