Introduction

Un site vitrine rapide, c’est un site qui rassure, qui retient l’attention et qui convertit.
Pourtant, beaucoup de projets web souffrent encore de lenteurs évitables : images trop lourdes, scripts inutiles, polices mal chargées…

Voici 5 astuces simples que j’applique systématiquement sur mes projets pour atteindre un score Web Vitals > 95 sans sacrifier la qualité visuelle.


1. Optimiser les images dès la source

Les images sont souvent le premier facteur de lenteur.
Un seul visuel non compressé peut facilement faire grimper le temps de chargement de plusieurs secondes.

Bon réflexe :

  • Convertir les fichiers en WebP ou AVIF.
  • Utiliser des tailles adaptées à chaque point de rupture (srcset ou picture).
  • Toujours définir les dimensions (width / height) pour éviter le CLS (Cumulative Layout Shift).

Dans Astro ou React, tu peux automatiser tout ça avec des plugins comme astro/assets ou next/image si tu es côté Next.js.


2. Charger les polices intelligemment

Les polices externes sont souvent sous-estimées dans un audit de perf.
Chaque police, chaque style ou graisse est un fichier à charger — parfois plusieurs centaines de ko.

Astuce :

  • Précharge ta police principale avec <link rel="preload">.
  • Utilise le format woff2, plus léger.
  • Si possible, héberge-la localement plutôt que de passer par Google Fonts.

Et surtout, définis toujours une font de secours pour éviter le flash de texte invisible (FOUT) :

font-family: "Inter", system-ui, -apple-system, sans-serif;

3. Nettoyer le JavaScript non essentiel

C’est l’une des optimisations les plus négligées.
Sur un site vitrine, la majorité des interactions sont simples : ouvrir un menu, animer une section, ou afficher un carrousel.
Pourtant, on retrouve souvent des librairies entières importées pour trois lignes de logique.

Chaque kilo de JavaScript compte :
plus ton bundle grossit, plus ton site ralentit — surtout sur mobile.

Bon réflexe :

  • Supprimer les scripts inutiles (anciens modules, trackers, widgets externes).
  • Charger le code interactif au moment où il devient visible grâce à IntersectionObserver.
  • Préférer les animations CSS ou Framer Motion, selon les besoins.
  • Et surtout, limiter les dépendances : une micro-fonction bien écrite vaut souvent mieux qu’un package entier.

Astro aide déjà beaucoup sur ce point :
tant qu’un composant n’est pas marqué avec client:load, client:idle ou client:visible, il ne génère aucun JavaScript côté client.
C’est simple, efficace, et ça évite de surcharger le navigateur sans s’en rendre compte.


4. Tirer parti du cache navigateur

Même le site le plus léger perd en réactivité s’il doit tout recharger à chaque visite.
Le cache navigateur est un levier simple et puissant pour accélérer la navigation.

Une fois qu’un visiteur a déjà chargé ton site, le navigateur peut conserver :

  • les images,
  • les fichiers CSS et JS,
  • et même certaines polices,
    pendant plusieurs jours ou semaines.

À vérifier :

  • Que les fichiers statiques bénéficient d’un cache long (Cache-Control: max-age=31536000).
  • Que les fichiers sont compressés en gzip ou brotli.
  • Que les assets sont versionnés via un hash dans le nom de fichier (ex : main.abc123.js).

Sur des plateformes comme Vercel, Netlify ou Coolify, tout est déjà configuré.
Mais un petit passage par Lighthouse ou WebPageTest permet toujours de vérifier qu’aucun fichier n’échappe à la règle.


5. Surveiller les Web Vitals sans devenir obsédé

Les Core Web Vitals (LCP, CLS, INP) sont devenus les indicateurs clés d’un site sain.
Pas besoin d’en faire une religion, mais viser un score supérieur à 95 garantit une vraie fluidité — et c’est souvent ce qui sépare un site “ok” d’un site qui donne envie de rester.

Ce que je surveille en priorité :

  • LCP (Largest Contentful Paint) → le visuel principal doit apparaître en moins de 2,5 secondes.
  • CLS (Cumulative Layout Shift) → éviter tout décalage d’éléments au chargement.
  • INP (Interaction to Next Paint) → s’assurer que les interactions sont instantanées.

Ces optimisations ne sont pas juste “techniques” : elles se ressentent.
Un site qui réagit immédiatement donne confiance. Et un utilisateur confiant devient un contact, voire un client.


Conclusion

L’amélioration des performances ne passe pas toujours par des outils ou des audits complexes.
Souvent, c’est une somme de petits détails bien gérés :
des images compressées, du JS limité à l’essentiel, un cache bien configuré.

Ce sont ces ajustements, discrets mais cohérents, qui permettent d’atteindre des scores Web Vitals supérieurs à 95 sans effort particulier.
Et surtout, ce sont eux qui font qu’un client remarque instantanément la différence entre un site “joli” et un site rapide, fluide et maîtrisé.


À lire ensuite → Astro vs Next.js : pourquoi j’ai choisi Astro pour mon portfolio freelance