Avancé 5 min 1 min de lecture Vitesse & temps de chargement

Éviter les requêtes réseau inutiles avec le cache HTTP

Réduisez les requêtes réseau inutiles et accélérez les visites répétées grâce à Cache-Control, ETag et la revalidation par le serveur.

Par Nicolas Dupont Mis à jour le 23 juin 2026

Récupérer des ressources sur le réseau est à la fois lent et coûteux. Les réponses volumineuses multiplient les allers-retours, votre page ne s’affiche pas tant que ses ressources essentielles ne sont pas téléchargées, et chaque requête superflue gaspille le forfait de données de l’internaute. Le cache HTTP du navigateur est votre première ligne de défense : il n’est ni le plus puissant ni le plus flexible des mécanismes, mais il est efficace, compatible avec tous les navigateurs et demande peu d’efforts. Pour le SEO, réduire les requêtes réseau accélère les visites répétées, un levier que l’on retrouve dès qu’on cherche à optimiser le cache pour les visites répétées, ce qui améliore les Core Web Vitals et l’expérience perçue par vos visiteurs comme par les moteurs.

Concrètement, chaque requête du navigateur passe d’abord par le cache : s’il existe une réponse valide, elle est réutilisée, ce qui supprime la latence réseau et le coût de transfert. Ce comportement se pilote par des en-têtes de réponse que vous configurez sur votre serveur.

Le cache HTTP n’est ni le plus sophistiqué des mécanismes ni le plus souple, mais c’est la première ligne de défense que je remets en ordre sur la plupart des sites. Chaque requête réseau évitée, c’est de la vitesse gagnée sur les visites répétées et des données économisées pour l’internaute. Maîtriser les directives Cache-Control et les bonnes durées suffit déjà à beaucoup améliorer les choses.

— Nicolas Dupont

Les directives Cache-Control à connaître

L’en-tête Cache-Control accepte une liste de directives séparées par des virgules qui définissent comment et combien de temps une réponse peut être stockée. Omettre cet en-tête ne désactive pas le cache, qui reste une étape clé de le chemin critique de rendu : le navigateur devine alors un comportement, souvent au détriment du contrôle. Mieux vaut donc être explicite.

Directive Cache-Control Rôle

no-cache

Autorise le stockage mais impose une revalidation auprès du serveur avant chaque réutilisation

no-store

Interdit tout stockage : la ressource est récupérée intégralement à chaque requête

private

Le navigateur peut mettre en cache, mais pas les caches intermédiaires (CDN, proxys)

public

La réponse peut être stockée par n’importe quel cache

max-age

Durée en secondes pendant laquelle la réponse reste valide (ex. max-age=31536000 pour un an)

Voici quelques combinaisons d’en-têtes types et leur signification concrète.

Exemples d en-tetes Cache-Control
# Cache navigateur et intermediaires pendant 1 jour
Cache-Control: max-age=86400

# Cache navigateur uniquement, 10 minutes
Cache-Control: private, max-age=600

# Ressource versionnee, cache 1 an
Cache-Control: public, max-age=31536000

# Jamais en cache, recuperee a chaque requete
Cache-Control: no-store

Revalider avec ETag et Last-Modified

Quand une réponse mise en cache expire, le navigateur n’a pas forcément besoin de la retélécharger. L’en-tête ETag porte un petit jeton, généralement un hachage du contenu, que le navigateur renvoie ensuite via If-None-Match. L’en-tête Last-Modified joue le même rôle, mais sur une base temporelle plutôt que sur le contenu, et déclenche l’en-tête If-Modified-Since.

À la requête suivante, le serveur compare le jeton ou la date reçue avec sa version courante. S’ils correspondent, il renvoie une réponse 304 Not Modified, très légère, qui dit au navigateur de réutiliser sa copie. C’est bien plus rapide que de renvoyer la ressource entière. ETag est généralement préférable, car plus précis que la stratégie temporelle de Last-Modified.

Quelle durée de cache choisir

La décision repose sur deux scénarios. Pour les URL versionnées, dont le nom inclut une empreinte comme style.x234dff.css, vous pouvez adopter la mise en cache de longue durée en fixant max-age=31536000 : changer le contenu change le nom, donc l’invalidation est propre. Pour les URL non versionnées comme le HTML, laissez le serveur revalider via ETag ou Last-Modified afin de toujours servir la bonne version.

Ne pas confondre no-cache et no-store

no-cache autorise le stockage mais force une revalidation avant chaque usage : c’est l’idéal pour le HTML. no-store interdit purement et simplement la mise en cache, à réserver aux ressources réellement sensibles. Confondre les deux fait soit servir du contenu obsolète, soit gaspiller des requêtes réseau.

Besoin d'aide pour mettre en pratique ? Nos experts SEO vous accompagnent.
Parler à un expert

À faire

  • configurer explicitement Cache-Control sur le serveur
  • appliquer max-age=31536000 aux fichiers versionnés
  • revalider le HTML avec ETag ou Last-Modified
  • utiliser des URL cohérentes

À éviter

  • omettre l’en-tête et laisser le navigateur deviner
  • mettre en cache durablement des URL non versionnées
  • servir le même contenu sur des URL différentes
  • mélanger code volatil et code stable dans un même fichier

Points clés à retenir

  • Définir explicitement Cache-Control plutôt que de laisser le navigateur décider.
  • Réserver max-age=31536000 aux ressources dont le nom porte une empreinte.
  • Revalider les URL non versionnées avec ETag ou Last-Modified.
  • Préférer no-cache pour le HTML et no-store aux seules données sensibles.
  • Séparer le code qui change souvent du code qui change rarement.

Le cache HTTP supprime des requêtes réseau entières pour un effort de configuration minime.

Quiz : testez vos connaissances

  1. Que se passe-t-il si vous n'envoyez aucun en-tête Cache-Control ?

    • Le cache est complètement désactivé
    • Le navigateur devine un comportement selon le type de contenu, ce qui vous prive de contrôle
    • Les ressources sont conservées pour toujours

    Omettre l’en-tête ne désactive pas le cache. Le navigateur devine alors un comportement selon le type de contenu, et vous perdez la maîtrise de la mise en cache.

  2. Quelle durée de cache convient à une URL versionnée comme style.x234dff.css ?

    • Une mise en cache de longue durée avec max-age=31536000
    • Une mise en cache courte de quelques minutes
    • Aucune mise en cache, avec no-store

    Pour une URL versionnée, le nom change dès que le contenu change, donc l’invalidation est propre. Vous pouvez fixer max-age=31536000 pour une mise en cache de longue durée.

  3. À quoi servent les en-têtes ETag et Last-Modified ?

    • À compresser les réponses avant l'envoi
    • À revalider une ressource expirée sans toujours la retélécharger
    • À interdire toute mise en cache de la ressource

    Quand une réponse mise en cache expire, ETag et Last-Modified permettent de revalider la ressource. ETag, fondé sur le contenu, est généralement plus précis que Last-Modified, fondé sur la date.

À propos de l'auteur

Nicolas Dupont

Nicolas Dupont

Expert SEO Sénior & Fondateur

Il a fait grimper des sites en haut de Google et accompagné plus de 120 entreprises avant de fonder Les Webineurs. Sur votre projet SEO, vous échangez directement avec Nicolas, pas un commercial ni un junior. Un expert dédié et du trafic organique qui dure.

Voir le profil

Besoin d'un accompagnement SEO ?

Des en-têtes de cache mal réglés génèrent des requêtes réseau évitables à chaque visite.

Faire le point avec un expert SEO