Performance web

Mise en cache : définition, types et configuration

Définition

En bref

La mise en cache consiste à stocker temporairement des copies de ressources (pages, styles, scripts, images) pour les servir plus vite lors des visites suivantes. Elle intervient à trois niveaux : le navigateur, le serveur et le réseau de diffusion de contenu, et peut diviser par plusieurs le temps de chargement.

Sans cache, chaque visite déclenche un téléchargement complet et une regénération de page côté serveur. Avec un cache bien réglé, la deuxième visite d'un utilisateur devient quasi instantanée, et le temps de réponse du serveur, qui pèse lourd dans le LCP, chute nettement. C'est souvent le correctif de performance le plus rentable sur un site existant. Il ne demande ni refonte ni changement de thème, seulement quelques réglages bien posés.

Les trois niveaux de cache

Le cache navigateur stocke les fichiers sur l'appareil du visiteur. Il ne profite qu'à lui, mais il supprime complètement la requête réseau : c'est le gain le plus net pour les visiteurs récurrents. Le cache serveur (Redis, Memcached, Varnish, ou le cache de page d'une extension WordPress) conserve le résultat d'un traitement pour tous les visiteurs, et évite de refaire à chaque appel les mêmes requêtes en base de données.

Le cache CDN, enfin, distribue vos ressources depuis des serveurs répartis géographiquement. Il réduit la latence réseau et protège le serveur d'origine des pics de trafic. Les trois niveaux se combinent : le CDN sert la ressource depuis le point le plus proche, le serveur ne recalcule que ce qui a changé, et le navigateur évite les allers-retours inutiles. Chaque niveau retire une part du travail au suivant, et le gain se cumule.

  • Fichiers statiques versionnés : Cache-Control max-age=31536000, immutable.
  • Pages HTML : no-cache ou max-age court, pour que les mises à jour soient visibles.
  • Polices web : cache long, elles changent rarement et pèsent lourd.
  • API renvoyant des données personnelles : no-store, jamais de cache partagé.

Les en-têtes qui pilotent le cache

Tout se joue dans les en-têtes HTTP renvoyés par le serveur. Cache-Control fixe la durée et les conditions de conservation. ETag et Last-Modified permettent une revalidation légère : le navigateur demande si la ressource a changé et reçoit une réponse minimale si ce n'est pas le cas. La directive stale-while-revalidate sert la copie en cache immédiatement tout en vérifiant en arrière-plan qu'une version plus récente n'existe pas.

La bonne pratique consiste à versionner le nom des fichiers statiques avec une empreinte (style.a3f2b1.css). Vous pouvez alors leur donner une durée de cache d'un an sans jamais craindre de servir une version périmée : toute modification change le nom du fichier, donc l'adresse demandée. Les pages HTML, elles, ne doivent jamais recevoir de cache long en dur. Sinon, une correction de prix ou d'horaire resterait invisible pendant plusieurs jours.

Erreurs fréquentes et méthode DGL Agency

Trois erreurs dominent. Cacher les pages HTML avec une durée longue, ce qui fait afficher pendant des jours un contenu déjà corrigé. Ne pas versionner les fichiers, puis vider le cache manuellement à chaque déploiement, avec le risque d'oubli. Enfin empiler plusieurs couches de cache (extension, hébergeur, CDN) sans savoir laquelle sert la réponse, ce qui rend tout diagnostic impossible.

Nous vérifions les en-têtes ressource par ressource avant de toucher à quoi que ce soit, puis nous établissons une règle unique par type de fichier. Le contrôle final se fait sur données terrain, pour mesurer le gain réel sur le temps de réponse serveur. Cette étape précède toujours les optimisations plus lourdes comme la minification ou la refonte des gabarits.

Un temps de réponse serveur divisé par trois

Un site vitrine WordPress hébergé sur une offre mutualisée affiche un temps de réponse serveur de 1,4 seconde, car chaque page est regénérée à chaque visite. L'activation d'un cache de page complet ramène ce temps à 0,42 seconde, et la mise en cache des fichiers statiques sur un an supprime 38 requêtes réseau pour un visiteur qui revient. Le LCP mobile passe de 3,9 à 2,4 secondes, sans changer d'hébergeur ni toucher au thème.

L'outil gratuit associé

Vérifiez gratuitement votre temps de réponse serveur et repérez les ressources servies sans durée de cache suffisante, avec le temps récupérable estimé. Le contrôle porte sur vos pages les plus visitées.