Cache, CDN ou headless : choisir l’architecture après mesure

En bref

Cache, CDN ou headless améliorent le LCP et l’INP d’une page web quand ils traitent le vrai goulot. À côté du goulot, ils n’apportent rien, ou dégradent. Décidez sur les données terrain au 75e centile, une cascade réseau, les clés de cache, le JavaScript livré et le coût total. Sur une page qui reçoit du trafic Google Ads, l’étiquette de l’architecture ne vous dit rien de sa vitesse.

Passer en headless, et la page devient rapide : voilà l’idée reçue. Le nom d’une architecture ne fait pas la vitesse. Le mode de rendu, le code livré et le cache la font. L’architecture n’est qu’un chantier de la performance technique d’une page de destination. Une page lente augmente le risque d’abandon, mais la lenteur seule ne prouve pas que votre budget Google Ads y perd. Isolez d’abord le message, l’offre, les erreurs, l’appareil et la qualité du trafic : par les données ou par un test. On diagnostique avant de refondre.

Que peut réellement améliorer l’architecture ?

LCP et INP
Le LCP mesure le moment où le plus gros élément visible s’affiche. L’INP mesure le temps que met la page à réagir à un clic ou à une frappe : délai d’entrée, traitement, puis affichage de l’image suivante. Les seuils « bons » sont LCP ≤ 2,5 s et INP ≤ 200 ms au 75e centile, mobile et ordinateur comptés séparément.

La vitesse compte dans l’expérience de votre page de destination. Elle cohabite avec l’enjeu SEO d’une URL indexable, mais l’objectif technique tient en une ligne : ramener la mesure terrain dans la plage visée sans abîmer les conversions, l’accessibilité ou la sécurité.

Le LCP ne mesure pas seulement l’arrivée du document. Sa décomposition officielle distingue le temps avant le premier octet, le délai avant chargement de la ressource LCP, sa durée de transfert et le délai avant rendu. Une réponse servie depuis un cache ou depuis la « périphérie » (un point de présence proche du visiteur) raccourcit les deux premières parties, si c’est bien le document qui traîne. Elle n’efface pas une image découverte tard, une feuille de style bloquante ou un rendu retardé. Les Core Web Vitals replacent ce signal parmi les autres.

L’INP ne se résume pas à « du JavaScript lent ». Une tâche longue retarde l’entrée. Gestionnaires d’événements, calculs, iframes ou requêtes chargent le traitement. Un DOM volumineux, la mise en page et la peinture allongent l’affichage. L’appareil du visiteur et les ressources appelées après l’interaction pèsent aussi. Une migration allège le navigateur, ou lui ajoute des scripts et de l’hydratation (le JavaScript qui rend la page interactive une fois affichée).

Quand un formulaire répond mal, tracez l’interaction avant de prescrire : réduire l’INP d’un formulaire se joue sur la phase qui domine. Changer de plateforme vient en conclusion, jamais en réflexe.

Deux vues complémentaires
Google PageSpeed Insights juxtapose, lorsqu’elles sont disponibles, les données CrUX de visiteurs réels sur une fenêtre glissante de 28 jours et un test Lighthouse simulé. CrUX, c’est le rapport d’usage réel remonté par Chrome. Le terrain dit si le problème existe chez vos visiteurs. Le laboratoire sert à le reproduire, trace en main. Si l’URL manque de volume, posez votre propre mesure terrain et segmentez-la.

TTFB : une sous-partie du LCP, pas un diagnostic universel

Le TTFB, ou délai avant le premier octet, va du début de la navigation à la réception du premier octet du document. Il additionne entre autres les redirections, la connexion et la négociation TLS, la distance réseau, un éventuel intermédiaire et le travail de l’origine (votre serveur). Il pèse sur le LCP, sans en être forcément la partie dominante.

Quand le TTFB est-il déterminant ?

Sous-partie du LCPLa question à poserOù agir
TTFBLe document met-il du temps à arriver ?Redirections et connexion, travail de l’origine, cache, routage
Délai avant chargementLa ressource LCP est-elle repérée et prioritaire dès le HTML ?HTML initial, priorité de chargement, CSS, préchargement ciblé
Durée de chargementLe fichier est-il trop lourd, ou le transfert trop lent ?Format, dimensions, compression, distribution
Délai de renduL’élément est arrivé : pourquoi attend-il pour s’afficher ?CSS, polices, JavaScript, rendu et visibilité

Un test lancé sur un cache chaud ne dit rien du visiteur qui tombe sur un cache vide. À l’inverse, une forte part de réponses servies depuis le cache masque un hébergement d’origine lent. Je compare donc trois cas : réponse en cache, absence en cache, contournement contrôlé. Puis je regarde le temps de traitement de l’origine. Le langage du serveur ou la base de données ne promettent aucune plage de gain.

Comment mesurer avant de choisir un levier ?

Le repère web.dev de 0,8 seconde ou moins au 75e centile sert au diagnostic. Le TTFB n’est pas un Core Web Vital, et un TTFB au-dessus de ce repère n’empêche pas forcément un bon LCP. Le travail consiste à traiter la sous-partie qui bloque vraiment le rendu. Un seuil n’est pas un ordre de travaux.

  1. Terrain. Comparez l’URL à son origine, le mobile à l’ordinateur. Puis pays, réseau, version déployée et type de trafic.
  2. Cascade. Suivez la chaîne sur plusieurs profils réseau : redirections et DNS, connexion, document, ressource LCP. Puis CSS, polices et scripts.
  3. Caches. Relevez les en-têtes, l’âge, le statut de mise en cache, la clé (ce qui identifie chaque copie) et le temps de réponse de l’origine. Une même ressource n’arrive pas au même délai partout.
  4. Hébergement et application. Croisez les mesures terrain avec les journaux de l’origine, la charge et les requêtes lentes, puis les erreurs et les déploiements.

Un score PageSpeed isolé ne dit donc pas si la faute vient de l’hébergement ou du code. Un audit de performance web pose une hypothèse, mesure avant et après à conditions égales, puis met le gain en face du coût et du risque.

Quel ordre de diagnostic adopter ?

Il n’y a pas d’échelle universelle où le moins cher rapporte toujours le plus. Une image LCP en chargement différé, un rendu côté client, une origine saturée ou une mauvaise clé de cache appellent chacun un ordre différent. Le tri suit la trace.

  1. Fixer la référence. Notez le LCP, l’INP et leurs sous-parties au 75e centile, plus une trace de laboratoire que vous pourrez rejouer.
  2. Traiter la dominante. Si le TTFB domine, corrigez l’origine et les redirections. Si la ressource LCP domine, sa découverte, son format et sa priorité. Si l’attente vient du navigateur, le rendu.
  3. Soigner les images. Bonnes dimensions, bon encodage. L’image LCP ne se charge jamais en différé et doit être visible dans le HTML initial. Le différé, gardez-le pour les images hors écran.
  4. Compresser avec mesure. Gzip ou Brotli allègent surtout HTML, CSS, JavaScript et SVG. Une compression à la volée trop agressive mange du processeur : comparez poids transféré et temps de réponse.
  5. Prioriser sans saturer. Un préchargement utile avance une ressource vraiment critique. Trop de préchargements se battent pour la bande passante. Un CSS critique incomplet ou dupliqué risque de déplacer le problème.
  6. Changer d’architecture si le projet ou le CMS l’exige. La performance vient du mode de rendu, du code envoyé au navigateur, du cache et de l’exploitation. Le découplage seul ne la produit pas.

Quatre couches de cache à distinguer

CoucheCe qu’elle éviteCe qu’il faut contrôler
Le navigateur du visiteur (cache privé)Retélécharger une ressource déjà reçueCache-Control, version du fichier, revalidation par ETag ou Last-Modified
Origine, proxy ou page entièreRefaire un rendu ou un appel applicatifClé, expiration, dépendances et purge. Comparer en cache, absent et contourné
Objet ou fragment applicatifRefaire un calcul ou une lecture en basePortée de l’objet, identité du client, invalidation et cohérence des transactions
Cache partagé d’un CDNLe trajet jusqu’à l’origine et sa chargeAdmissibilité, clé, cookies et Vary. Durée en périphérie, purge et régions

Un ETag ne supprime pas forcément la requête : il permet une revalidation conditionnelle, le navigateur demande « ça a changé ? » et reçoit un simple « non ». Pour des fichiers versionnés dont l’URL change à chaque contenu, un cache long avec immutable tient la route. Pour un HTML non personnalisé qui doit rester frais, la revalidation est un meilleur pari qu’une durée fixée au doigt mouillé.

Un cache partagé ne doit jamais recevoir une réponse personnelle ou sensible. La sémantique HTTP de Cache-Control réserve private aux caches privés et no-store aux réponses à ne pas stocker du tout. Tant que la politique n’a pas été revue, excluez sessions, jetons, réponses après connexion et données propres à un client. Les requêtes non idempotentes aussi (celles qui modifient quelque chose). Vérifiez qu’aucune règle maison du CDN ou du proxy ne contourne ces directives. Puis faites tester automatiquement qu’un compte, un locataire ou une variante ne reçoit jamais la réponse d’un autre.

Comment choisir et contrôler un CDN ?

Un CDN, ou réseau de diffusion de contenu, garde des copies de votre site sur des points de présence proches du visiteur, avec des routes optimisées. Réponse en cache : l’origine ne travaille pas. Réponse absente ou non admissible : le trajet continue jusqu’à votre serveur. Le résultat dépend de la géographie, de la part de réponses en cache, des clés, des connexions et des règles. Un proxy mal réglé fait l’inverse : il ajoute une étape.

Ne choisissez pas un CDN sur la promesse d’un plan gratuit. Sur la vitesse : couverture utile, cache du HTML, règles sur les cookies et les requêtes, TLS jusqu’à votre hébergement. Pour l’exploitation : purge par URL ou par tag, journaux, protection, transformation des images et fonctions en périphérie. Puis le contrat : support, engagement de service, tarif et retour arrière. Un exemple : la documentation Cloudflare consultée le 25 juillet 2026 indique qu’HTML et JSON ne sont pas mis en cache par défaut. Activer le DNS ne suffit donc pas à accélérer le document. Une règle de cache personnalisée change ce comportement et s’audite à part.

Certains fournisseurs compressent, transforment les images, minifient ou exécutent du code en périphérie. Ces options aident quand le goulot est là, mais elles ne remplacent pas la mesure du HTML, des images et des scripts tiers réellement livrés. Surveillez la part de réponses servies depuis le cache, leur âge et le TTFB. Puis les erreurs, le volume renvoyé à l’origine et les écarts entre régions.

Comment invalider sans casser un déploiement ou un test ?

La durée de vie d’une copie dépend de votre rythme de publication, de la possibilité de versionner l’URL et de la fraîcheur que vous acceptez. Les fichiers dont le nom porte une empreinte supportent un cache long. Le HTML, les API et les réponses variables demandent une règle à part. Avec stale-while-revalidate (servir l’ancienne copie pendant le rafraîchissement), écrivez noir sur blanc combien de temps une ancienne réponse reste acceptable.

Purger le serveur et le CDN ne vide pas forcément le navigateur, un service worker ou un intermédiaire. Après publication, vérifiez la version et les en-têtes depuis plusieurs régions. Cherchez ensuite les copies périmées parmi les fichiers versionnés. Une purge globale remet tout le cache à froid et l’origine risque d’encaisser le choc : préchauffez seulement les pages utiles, sous contrôle.

Pour un test A/B, la variante, ou l’affectation qui suit le visiteur, entre dans la clé de cache. Sinon, le cache est contourné. Cookie, en-tête Vary ou affectation en périphérie doivent servir la même variante au même visiteur, sans mélanger les groupes. Un test est faussé quand la mauvaise variante est servie. Une durée de vie sur la réponse ne le fausse pas en soi. Déployez et chauffez les deux branches de la même façon avant de mesurer.

Que change réellement une architecture headless ?

Dans une architecture headless, le CMS est découplé de la partie visible du site et livre son contenu par une API. L’interface se construit alors sur le serveur, à la génération du site ou dans le navigateur, parfois en périphérie ou en mélange de tout ça. Ce découplage change les contrats, les outils et les responsabilités. Il ne garantit ni la vitesse, ni le SEO, ni le confort de publication.

La vitesse dépend du moment où les données sont récupérées et du HTML livré. Puis du cache, de l’hydratation et du JavaScript côté client, du DOM, des scripts tiers et du chemin jusqu’à l’origine. Ces coûts se contrôlent sur chaque mode de rendu. Une page pré-rendue s’affiche vite et expédie quand même trop de code d’interactivité, si personne ne le surveille. Un rendu serveur répond au besoin de données fraîches ou personnalisées, et, selon l’outil, se diffuse en flux continu ou en périphérie.

Rendus statique, serveur, client et hybrides

Mode de renduCe qu’il apporteCe qu’il faut mesurer
SSG, génération statiqueHTML fabriqué avant la visite, servi sans calcul à l’origineTemps de génération, fraîcheur, invalidation et hydratation côté client
SSR, rendu côté serveurDonnées fraîches, personnalisation, diffusion en flux ou en périphérieTravail à chaque requête, dépendances, cache sélectif et panne de l’origine
ISR, régénération incrémentaleVersion statique rafraîchie à intervalle ou à la demandeRéponse périmée pendant la revalidation, comportement propre à l’outil
CSR, rendu côté clientInteractions d’application, données chargées dans le navigateurPoids du JavaScript, écran initial, appels réseau, DOM et INP
Hybride, flux continu ou périphérieMode choisi route par route ou bloc par bloc, affichage progressifObservation plus complexe, frontières de cache et cohérence des données
Site monolithique bien mis en cacheMoins de contrats à maintenir, HTML réutilisableExtensions, origine, publication et personnalisation propres au CMS

Le pré-rendu statique n’appartient pas au headless : un générateur statique produit le même document sans CMS découplé. À l’inverse, un projet découplé bâti surtout en rendu client charge davantage le navigateur. Comparez une implémentation précise, pas deux étiquettes.

Quel est le coût total d’une migration ?

Un devis initial ne suffit pas. Je chiffre le coût réel en quatre postes. Le socle : développement, hébergement, maintenance et fonctionnalités métier. Le contenu : modèle de contenu, API, couche de présentation, formulaires et prévisualisation. La conformité : redirections, suivi, consentement, accessibilité et SEO. L’exploitation : sécurité, caches et purge, journaux et alertes. Sans oublier sauvegardes, retour arrière, environnements et astreinte.

Comparez aussi le quotidien de ceux qui publient : fonctions du CMS, rôles et validation, publication programmée et localisation, aperçu et autonomie. Avant la bascule, faites tester la gestion des médias et des droits, la prévisualisation et la publication, puis la recette SEO des routes et des métadonnées. Le contrat doit nommer qui maintient l’interface et les connecteurs. Un monolithe demande parfois du développement, et un système découplé offre parfois une excellente interface. La différence se mesure sur le processus de votre équipe, et l’opposition « clics faciles » contre « développeur obligatoire » ne vous apprend rien.

Une page plus rapide ne vend pas mécaniquement plus. Fixez la métrique principale et une période qui couvre un cycle de vente. Segmentez par appareil et par source. Isolez autant que possible ce qui a bougé en même temps : contenu, offre, trafic Google Ads. Pour une refonte complète, combinez données avant et après, déploiement progressif et un groupe témoin resté sur l’ancienne version quand c’est possible.

L’erreur coûteuse
Migrer tout un site sur la foi d’un score unique. Sans budget de performance ni inventaire des scripts. Sans plan de maintenance, gestion des incidents, stratégie d’invalidation ni retour arrière. Quand une nouvelle couche de présentation soulage l’origine, rien ne l’empêche d’alourdir en même temps l’hydratation et le navigateur. Exigez une preuve sur un prototype représentatif avant de signer.

Quel levier choisir ? L’arbre de diagnostic

Partez de la métrique terrain qui décroche, puis ouvrez sa décomposition. Le prix de la solution se discute après avoir localisé le problème. Jamais avant.

Le LCP est-il la métrique qui décroche ?
Oui, chargement ou rendu initial Séparez TTFB, délai avant chargement, durée de transfert et délai de rendu. Le premier se traite à l’origine et au cache. Les deux suivants par la découverte, la priorité et le poids de la ressource. Le dernier par le CSS, les polices, le DOM et les scripts tiers. Un CDN n’est candidat que si le trajet, l’origine ou la distribution le justifie.
Non, interaction dégradée Décomposez délai d’entrée, traitement et présentation. Tracez les tâches longues, les gestionnaires et les requêtes, puis les iframes, le rendu et l’appareil, avec le protocole de réduction de l’INP. Le mode de rendu fait bouger ces coûts dans les deux sens.
À retenir
  • LCP et INP se jugent sur le terrain, au 75e centile. La trace de laboratoire explique, elle ne remplace pas.
  • Le TTFB n’est qu’une des quatre sous-parties du LCP. Son repère de 0,8 s guide le diagnostic sans être un Core Web Vital.
  • L’image LCP ne se charge jamais en différé. Un préchargement se réserve à une ressource vraiment critique.
  • Les réponses privées ou sensibles restent hors du cache partagé, tests d’isolation à l’appui avant d’activer.
  • Le mode de rendu et le code livré font la vitesse. Headless, CDN ou cache sont des moyens, jamais des résultats.

Mise en cache CDN ou architecture headless : quelle solution choisir ?

Ce que la mesure montreCe qu’on essaieQuand on s’arrête
Origine lente ou beaucoup de réponses hors cacheAlléger le travail de l’origine, cache de page entière ou d’objet, puis CDN si la géographie le justifieLCP terrain dans la cible, origine observable, aucune fuite ni contenu périmé
Page surtout statiqueExport statique ou SSG, avec ou sans CMS découpléPublication, formulaires, suivi et fraîcheur restent sous contrôle
Données fraîches ou personnellesSSR ou hybride, cache sélectif, réponses marquées privéesSécurité, TTFB, disponibilité et coût d’exploitation tenables
Contenu multi-canal et API déjà nécessairesPrototype headless sur un chemin représentatifGain produit et technique supérieur au coût total et au risque de migration
INP dominé par le navigateurRéduire tâches longues, JavaScript, DOM et renduInteraction terrain dans la cible, sans rien casser

Sur une page alimentée par Google Ads, chaque visiteur a été payé. Ce prix justifie une mesure exigeante, pas une architecture plus prestigieuse. Déployez la plus petite modification qui traite la sous-partie dominante. Regardez le terrain après une fenêtre assez longue. Élargissez seulement ensuite.

Questions fréquentes

Le headless est-il toujours plus rapide qu’un site classique ?
Non. Le découplage ne fixe ni le mode de rendu ni la quantité de JavaScript envoyée au navigateur. Une génération statique soulage l’origine. Une forte hydratation ou un rendu client alourdit le navigateur. Comparez le HTML livré, le cache, les sous-parties du LCP et les phases de l’INP sur une implémentation réelle plutôt que sur une promesse.
Quelle est la différence entre LCP et INP ?
Le LCP mesure le moment où le plus gros élément visible s’affiche : il additionne TTFB, délai avant chargement, durée de chargement et délai de rendu. L’INP mesure la réactivité quand le visiteur clique ou tape : délai d’entrée, traitement, puis affichage suivant. Les seuils « bons » restent 2,5 s et 200 ms au 75e centile.
Par où commencer pour accélérer une page de destination ?
Par les données terrain, puis une cascade que vous pouvez rejouer. Repérez la sous-partie qui domine : origine et redirections, découverte ou poids de la ressource LCP, rendu, tâches longues ou interaction. Le remède vient après. Cache, image, CDN ou refonte n’ont aucun ordre universel.
Quand une architecture headless se justifie-t-elle ?
Quand un besoin produit réel l’exige (contenu à diffuser sur plusieurs canaux, API, mode de rendu précis) et qu’un prototype confirme le gain. Le calcul inclut la migration, les outils éditoriaux, la sécurité, la prévisualisation, le suivi, le cache, l’observabilité, les compétences et le retour arrière. Le trafic seul ne le justifie pas.
Un CDN peut-il améliorer la réactivité d’un formulaire lent ?
Parfois, si l’interaction attend une ressource ou une réponse réseau que le CDN ou une fonction en périphérie accélère. Souvent, le goulot est ailleurs : délai d’entrée, gestionnaires, DOM ou affichage. Une trace de l’interaction départage ces causes avant de toucher à quoi que ce soit.
Peut-on mettre en cache n’importe quel type de page ?
Pas dans un cache partagé. Une réponse personnelle passe au minimum en politique privée. Une réponse sensible reste non stockée, avec no-store. Excluez sessions, jetons et requêtes qui modifient des données. Si un stockage est permis, mettez l’identité, le locataire ou la variante dans la clé. Une revue de sécurité et des tests automatisés d’isolation précèdent l’activation.
Vincent Duquesne, consultant Google Ads
Vincent Duquesne
Expert Google Ads Certifié depuis 2011 : j’ai audité et restructuré des centaines de comptes dans des dizaines de thématiques différentes. +20M€ gérés.
Google Partner Premier 2026

Votre page charge vite et ne convertit toujours pas ?

On cherche ce qui freine les demandes pour corriger la bonne chose, avant toute refonte.

Réserver un appel