Retour au blog Performance Web - 8 min

Utiliser un CDN pour accélérer un site web : ce qu’il faut savoir

Un CDN rapproche les fichiers statiques des visiteurs. Il ne rend pas dynamique un HTML calculé à chaque fois : voici quoi y mettre et quoi vérifier.

Un CDN (réseau de diffusion) copie vos fichiers sur des points proches des visiteurs et termine souvent le TLS plus près d’eux. Le gain est net sur les CSS, JavaScript, images et polices déjà en cache au point de présence. Il est faible sur une page HTML que le serveur recalcule à chaque fois et que le CDN a l’ordre de ne pas stocker. Activer un CDN sans décider quoi mettre en cache revient à ajouter un intermédiaire, pas à raccourcir le travail d’origine.

Ce qui voyage bien, et ce qui revient à l’origine

ContenuMise en cache CDNEffet attendu
CSS, JS, polices au nom versionnéLongue, identique au cache navigateurMoins de distance, moins de charge origine
Images publiquesPlusieurs jours, URL stable ou versionnéePremier affichage plus court hors de votre région
HTML d’article ou de fiche identique pour tousMinutes à heures, selon la fréquence de publicationSoulage l’origine si le HIT est réel
HTML panier, compte, rechercheContournement (no-store ou règle d’URL)Évite de servir la page d’un autre visiteur
API authentifiéePas de cache partagéLa proximité réseau reste, le calcul non
Réponse personnalisée par cookieCache seulement si la clé de cache inclut ce cookieTrès peu de HIT dès que les cookies varient

s-maxage parle aux caches partagés, dont le CDN. max-age parle au navigateur. Vous pouvez garder un HTML revalidé souvent par le visiteur (max-age court) et un peu plus longtemps au CDN (s-maxage). Ne posez pas un an sur le HTML.

Si l’origine envoie Set-Cookie sur les pages publiques, beaucoup de CDN refusent de les mettre en cache partagé. Réservez le cookie à la session, au panier et au compte.

Mettre le CDN sans couper l’origine

  1. Passez le DNS du domaine (ou un sous-domaine d’assets) vers le CDN, avec le certificat qui couvre bien www et l’apex.
  2. Gardez l’origine joignable uniquement par le CDN si vous le pouvez (IP allowlist ou en-tête secret), pour que les visiteurs ne contournent pas les règles.
  3. Reprenez les en-têtes d’origine : le CDN doit respecter Cache-Control, pas imposer un cache agressif sur tout le site.
  4. Versionnez les assets. Une purge totale à chaque déploiement est le symptôme d’URL qui ne changent pas.
  5. Excluez panier, commande, compte, et toute URL dont le HTML contient un jeton de formulaire.
  6. Activez Brotli ou gzip sur le CDN pour le texte. Le choix du format est le même qu’à l’origine : Brotli et gzip.
  7. Comparez un HIT et un MISS. L’en-tête de debug du fournisseur (cf-cache-status, x-cache, selon l’outil) doit passer à HIT au second appel d’un asset.

Le temps jusqu’au premier octet d’une page dynamique se joue encore sur l’origine. Si ce temps reste haut une fois le CDN en HIT sur les assets seulement, reprenez les causes d’un TTFB élevé côté PHP, base et cache de page.

Pannes propres au CDN

L’origine peut être saine et le site faux. Causes fréquentes : certificat du CDN qui ne couvre pas le nom demandé, règle qui met en cache une 500 (les visiteurs reçoivent l’erreur longtemps), purge oubliée après publication, ou variation de langue ignorée (un seul HTML pour deux langues).

Une 500 mise en cache se traite en baissant le TTL des erreurs à quelques secondes, pas en vidant le CDN à la main à chaque incident. Après une correction de contenu, purgez l’URL du HTML et laissez les assets versionnés expirer seuls.

Surveillez à la fois l’origine et l’URL publique. Un contrôle qui tape l’IP d’origine en http ne voit pas le certificat ni le cache du CDN. Le point de contrôle utile est l’URL que les visiteurs ouvrent, comme indiqué dans Ce qu’il faut surveiller sur un CDN.


Le HTML personnalisé se contourne. Le fichier versionné se garde longtemps. Les deux règles tiennent sur une ligne de configuration chacune.

Questions fréquentes

Un CDN accélère-t-il toutes les pages ?

Il accélère surtout ce qui est en cache sur le point de présence : CSS, JavaScript, images, polices. Une page HTML calculée à chaque visite et marquée no-store repart à chaque fois vers le serveur d’origine.

Faut-il mettre le HTML derrière le CDN ?

Oui pour le TLS et le réseau, avec une règle de cache prudente. Le HTML public peut être mis en cache quelques minutes. Le HTML de panier ou de compte doit être contourné, sinon un visiteur reçoit la page d’un autre.

Le site reste lent avec un CDN : par où reprendre ?

Regardez si la réponse est un HIT ou un MISS, puis le temps d’origine. Un MISS systématique sur le HTML renvoie au serveur, à la base ou à l’absence de cache de page. Le CDN n’y change rien.

Surveiller mes URL