Blog/Articles/ Comment optimiser un site web ?

Comment optimiser un site web ?

Comment optimiser un site web ?

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

  1. Ciblez la bonne URL

    • Testez la page qui convertit: pricing, onboarding, formulaire de démo.

    • Assurez une comparaison mobile vs desktop cohérente.

  2. 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)

  3. 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)

  4. 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.

  5. 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 avec priority, 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

(Stack Overflow)

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 ou defer.

  • 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 et sizes 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

  1. Cible: sélectionnez 3 pages à fort impact business.

  2. PSI/CrUX: lisez d’abord les données de terrain, puis comparez au labo. (Chrome for Developers)

  3. Lighthouse: identifiez l’élément LCP, les interactions lentes, les shifts. (Chrome for Developers)

  4. Quick wins: appliquez images optimisées, découpage des longues tâches, espace réservé pour tous les médias, fonts locales.

  5. Scripts tiers: stricte diète.

  6. Cache et CDN: règles de cache, compression, HTTP/2 ou 3.

  7. CI: Lighthouse CI avec seuils gardes-fous. (GitHub)

  8. Suivi: automatiser PSI API ou CrUX API, alerter à la dérive. (Google for Developers)

Liens utiles et sources d’autorité

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.

Questions fréquentes

  • Comment prioriser quand tout semble rouge dans Lighthouse pour optimiser site internet?+
    Classez par impact business. Traitez le LCP de la page d’acquisition principale, puis l’INP sur les pages avec interactions critiques, ensuite le CLS. Visez des gains rapides: image héro optimisée, découpage de longues tâches et espace réservé aux médias.
  • Pourquoi mes Core Web Vitals dans Search Console ne changent pas immédiatement après mes optimisations pour optimiser site internet?+
    Les données de terrain se basent sur une fenêtre de 28 jours. Il faut attendre que suffisamment de sessions récentes reflètent vos changements. D’où l’intérêt d’utiliser Lighthouse pour valider rapidement les améliorations côté labo avant de patienter. (Google for Developers)
  • Le score Lighthouse est-il un facteur SEO direct pour optimiser site internet?+
    Non. Le score est un indicateur technique utile mais distinct des signaux utilisés par les systèmes de classement. Google recommande d’offrir une bonne page experience et de viser de bons Core Web Vitals, sans confondre score de labo et classement. (Google for Developers)
  • Comment automatiser le suivi pour optimiser site internet sur mon pipeline CI/CD?+
    Utilisez Lighthouse CI avec des assertions minimales sur LCP, INP, CLS. Couplez-le à la PSI API ou à la CrUX API pour des rapports réguliers et des alertes si les seuils dérivent. (GitHub, Google for Developers)
  • Quelles sont les erreurs les plus fréquentes quand on veut optimiser site internet côté SaaS?+
    Images héro non priorisées, polices chargées depuis des CDN sans préchargement ni display: swap, scripts tiers chargés trop tôt, composants dynamiques injectés au-dessus du contenu, absence d’ISR/SSG sur les pages marketing et absence de budgets de performance d’équipe. Ces erreurs se corrigent avec les quick wins présentés plus haut et la checklist.

Articles similaires

Emailing B2B : guide pour les startups

Emailing B2B : guide pour les startups

Tout pour réussir votre emailing B2B: stratégie, délivrabilité, RGPD, modèles, outils. Suivez le…

Server-Side Rendering avec Next.js pour booster le SEO de votre SaaS

Server-Side Rendering avec Next.js pour booster le SEO de votre SaaS

Découvrez comment exploiter le SSR Next.js pour améliorer le SEO, accélérer l’indexation et booster…