
🚀 Domaine sans cookies dans WordPress : guide de configuration complet
GTmetrix attribue à votre page un score de 72/100, et les recommandations affichent «Serve static content from a cookieless domain». Vous cliquez et voyez une liste de 40 fichiers CSS, chacun traînant un en-tête Set-Cookie avec lui. Images, polices, scripts, des dizaines de requêtes, et chacune transporte un en-tête HTTP dont ces fichiers n'ont absolument pas besoin.
Le problème ne vient pas de votre code. C'est une caractéristique architecturale: le serveur définit les cookies au niveau du domaine, et le navigateur les attache consciencieusement à chaque requête, même celles pour lesquelles l'authentification et les sessions n'ont aucun sens. Résultat: des kilooctets supplémentaires dans chaque réponse, un chargement statique plus lent et un signal d'alerte dans les rapports GTmetrix et Pingdom.
Bonne nouvelle: cela se règle en 15 minutes sans changer d'hébergement. Vous n'avez pas besoin d'un deuxième serveur ni d'un forfait entreprise coûteux. Un sous-domaine distinct ou un CDN suffit, et les fichiers statiques circuleront sans cookies tandis que votre score GTmetrix gagnera 10 à 15 points.
💡 Aperçu rapide:
- Comprendre pourquoi les cookies «fuient» vers le contenu statique et quand cela pose réellement problème
- Configurer un sous-domaine distinct pour wp-content via cPanel, étape par étape, y compris le remplacement des URL en SQL
- Connecter KeyCDN via l'extension CDN Enabler comme alternative moderne (5 minutes, à partir de 4 $/mois)
- Apprendre pourquoi Cloudflare ne supprime pas l'avertissement GTmetrix, et quand vous pouvez l'ignorer
Pourquoi les cookies se retrouvent sur le contenu statique
Les cookies sont définis au niveau du domaine. Mais il y a une nuance souvent négligée: les sous-domaines héritent des paramètres de cookies du parent. Si le site réside sur example.com et définit des cookies pour ce domaine, ils sont automatiquement transmis à www.example.com et static.example.com.
C'est pourquoi il ne suffit pas de créer simplement un sous-domaine static.example.com. Tant que le site principal reste sur le domaine nu, les cookies «fuiront» vers le sous-domaine. La solution est simple mais contre-intuitive: déplacez le site vers www.example.com et placez le contenu statique sur static.example.com. Ainsi, les cookies s'appliquent à www, tandis que static reste propre.
La deuxième option, un domaine complètement distinct. Cela fonctionne techniquement, mais acheter un domaine pour cette tâche n'est presque jamais justifié: une gestion correcte des sous-domaines suffit.
Et autre chose: sur les hébergeurs WordPress managés comme Kinsta, WP Engine ou SiteGround, le problème est souvent déjà résolu au niveau du serveur. Si le forfait inclut la «mise en cache edge» ou un «CDN inclus», aucune configuration supplémentaire n'est nécessaire.
Méthode 1. Sous-domaine distinct pour le contenu statique via cPanel
La méthode de base qui fonctionne sur tout hébergement avec cPanel. Aucun service tiers, aucun paiement mensuel. L'idée: créer un sous-domaine, le lier à /wp-content et indiquer à WordPress de servir le contenu statique via celui-ci.
Créer un sous-domaine
Allez dans cPanel → section «Domaines» → «Sous-domaines». Créez le sous-domaine static.yoursite.com. Dans le champ Document Root, indiquez le chemin vers wp-content: généralement public_html/wp-content.
Vérification: le site principal doit être sur www.yoursite.com. Si vous êtes sur le domaine nu sans www, déplacez d'abord le site vers www, sinon la méthode ne fonctionnera pas.
Ajouter des constantes à wp-config.php
Ouvrez wp-config.php à la racine du site et ajoutez deux lignes AVANT le commentaire /* That's all, stop editing! Happy publishing. */:
1 define('WP_CONTENT_URL', 'https://static.yoursite.com'); 2 define('COOKIE_DOMAIN', 'www.yoursite.com');
WP_CONTENT_URL indique à WordPress de servir tout le contenu de /wp-content/ via le nouveau sous-domaine. COOKIE_DOMAIN restreint la portée des cookies au sous-domaine www, les empêchant de se propager vers static.
Remplacer les URL des fichiers existants dans la base de données
Les articles déjà publiés stockent des liens vers les anciennes URL d'images. Il faut les remplacer en masse via phpMyAdmin.
Accédez à phpMyAdmin (cPanel → Bases de données), sélectionnez la base de données WordPress, onglet SQL. Exécutez:
1 UPDATE wp_posts SET post_content = REPLACE(post_content, 'www.yoursite.com/wp-content/', 'static.yoursite.com/');

Avant d'exécuter, sauvegardez la base de données. Le remplacement SQL est irréversible. Si vous vous trompez d'URL, les images du site seront cassées et vous devrez restaurer à partir d'une sauvegarde.
Avantages et inconvénients
La méthode fonctionne sans services tiers ni dépenses supplémentaires. Mais: édition manuelle de wp-config.php et de la base de données, risque d'erreurs SQL, nécessité de maintenir la configuration de deux sous-domaines. Sur un VPS avec NGINX, vous devrez également modifier la configuration du serveur, ce qui ajoute de la complexité.
Pour la plupart des sites aujourd'hui, il existe une option plus simple: le CDN.
Méthode 2. Le CDN comme solution moderne
Un réseau de diffusion de contenu (Content Delivery Network) prend en charge le contenu statique sur ses serveurs et, par défaut, n'utilise pas de cookies pour les fichiers. Vous obtenez deux choses à la fois: du contenu statique sans cookies et un réseau de diffusion mondial qui accélère le chargement pour les visiteurs, où qu'ils se trouvent dans le monde.
Le service KeyCDN, un CDN en paiement à l'usage avec une tarification à partir de 0,04 $/Go de trafic et un paiement minimum de 4 $/mois. Pour un site moyen, les coûts sont de 4 à 10 $ par mois. Plus de 60 points de présence, option intégrée Strip Cookies qui supprime de force les en-têtes Set-Cookie des réponses.
Connexion via CDN Enabler
CDN Enabler, l'extension officielle KeyCDN pour WordPress. Version 2.0.8, plus de 10 000 installations actives, testée jusqu'à WordPress 6.9. Elle intercepte les pages et réécrit les URL des fichiers statiques vers le domaine du CDN.
Étapes de configuration:
Créez un compte KeyCDN. Le service offre une période d'essai, vous pouvez tester sans paiement.
Installez CDN Enabler depuis le dépôt WordPress: Extensions → Ajouter → recherchez «CDN Enabler» → Activer.
Créez une zone Pull dans le tableau de bord KeyCDN. La zone définit le contenu que le CDN extraira de votre site. Indiquez l'URL d'origine, c'est-à-dire l'adresse de votre site.

- Copiez l’URL de la zone, elle se présente sous la forme
https://yourzone.kxcdn.com, et collez-la dans les paramètres de CDN Enabler: Réglages → CDN Enabler → CDN Hostname.

Activez l’option Strip Cookies dans KeyCDN: Zone Settings → Strip Cookies = Enabled. Cette option garantit que les fichiers statiques sont servis sans en-têtes Set-Cookie.
Videz le cache du site et vérifiez le résultat dans GTmetrix.
CDN Enabler fonctionne avec n’importe quel CDN. Si vous utilisez déjà Cloudflare, BunnyCDN ou StackPath, indiquez simplement le nom d’hôte CDN de votre fournisseur.
Point important: après avoir désactivé le CDN et supprimé l’extension, les URL des images peuvent rester réécrites vers le domaine du CDN. Avant de désactiver, videz le cache de l’extension et assurez-vous que les URL sont revenues à leur état d’origine.
Méthode 3. Cloudflare, gratuit mais avec une nuance
Cloudflare, le plus grand CDN avec une offre totalement gratuite. Fonctionne au niveau DNS: il suffit de basculer le domaine vers les serveurs de noms Cloudflare, et tout le trafic passe par son réseau.
Mais il y a une nuance. Cloudflare utilise un cookie de service _cfduid pour chaque requête, à des fins de sécurité. Il est essentiel pour la protection DDoS et contre les bots, et même si vous activez «Strip Cookies» sur l’offre Pro, ce cookie n’est pas supprimé.
À cause de _cfduid, GTmetrix continuera d’afficher l’avertissement «Serve static content from a cookieless domain.» Atteindre 100/100 sur la métrique YSlow avec Cloudflare en version gratuite est techniquement impossible. Mais il s’agit d’un faux positif: le contenu statique via Cloudflare se charge tout aussi rapidement, et un cookie de service n’affecte en rien les performances réelles.
Si le score GTmetrix maximal est important pour vous, privilégiez KeyCDN avec Strip Cookies. Si la priorité est la gratuité du service et la protection DDoS, Cloudflare remplit parfaitement ce rôle.
Quand ignorer l’avertissement GTmetrix
Situation fréquente: le CDN est configuré, Strip Cookies est activé, mais GTmetrix affiche toujours une erreur de domaine sans cookies. La raison est que YSlow, le moteur de GTmetrix, ne vérifie pas si Strip Cookies est activé côté CDN. Il voit une URL similaire au domaine principal et déclenche mécaniquement un avertissement.
Vérification en 30 secondes: ouvrez Chrome DevTools (F12) → Network → sélectionnez n’importe quel fichier statique, CSS, JS ou PNG → onglet Headers → Request Headers. Si aucune ligne Cookie: n’apparaît, le contenu statique est servi sans cookies, vous pouvez ignorer l’avertissement GTmetrix.
Autre source de faux positifs, les cookies serveur issus de l’analytics et des tests A/B (Google Analytics, Hotjar, VWO). Ils apparaissent également dans le rapport comme «supplémentaires», bien qu’ils affectent peu la vitesse de chargement.
Réduction réelle du trafic grâce à la suppression des cookies sur le contenu statique, environ 5 à 15% du total des requêtes. Rien de révolutionnaire, mais chaque milliseconde compte: une étude Google a montré qu’un délai d’une seconde réduit de 20% la conversion des visiteurs mobiles.
⁉️🤔 Questions fréquentes
La mise en place d’un domaine sans cookies est-elle obligatoire?
Non, ce n’est pas une exigence absolue. Mais si vous vous battez pour la vitesse, éliminer les cookies inutiles du contenu statique apporte des gains mesurables, surtout sur les sites riches en médias: boutiques en ligne, blogs photo et portails d’actualité. Pour une landing page de trois blocs, l’effet sera négligeable.
Que faire si, après avoir modifié wp-config.php, le site ne s’ouvre plus?
Vous avez presque certainement fait une erreur dans les URL constantes ou vous les avez placées APRÈS la ligne
/* That's all, stop editing! */. Connectez-vous au site via FTP, ouvrezwp-config.phpet vérifiez: les constantes doivent se trouver AVANT ce commentaire. Si le site ne se charge toujours pas, commentez les lignes ajoutées (//au début de chaque ligne), le site retrouvera son état d’origine, puis réessayez avec les bonnes URL.
Peut-on utiliser CDN Enabler avec d’autres extensions de mise en cache?
Oui, sans problème. CDN Enabler est compatible avec Cache Enabler, WP Rocket, W3 Total Cache et LiteSpeed Cache. Une nuance: si vous avez WP Rocket, le CDN se configure dans WP Rocket même, une extension CDN Enabler séparée n’est pas nécessaire. Avec les autres extensions de cache, cela fonctionne en parallèle, aucun conflit n’a été signalé.
Quel CDN choisir pour un petit site?
Cela dépend du budget et des priorités. Tarifs KeyCDN (à partir de 0,04 $/Go, minimum 4 $/mois), un bon point de départ: paiement à l’usage, vous ne payez que le trafic. Cloudflare, gratuit mais avec un cookie de service et un faux avertissement GTmetrix. BunnyCDN (à partir de 0,01 $/Go sur les forfaits volumétriques, minimum 1 $/mois), moins cher mais avec moins de points de présence. Pour un site avec un trafic jusqu’à 10 000 visites par mois, les coûts CDN seront de 2 à 7 $.
Un domaine sans cookies est-il nécessaire si l’hébergement est moderne?
Les hébergeurs WordPress managés, Kinsta, WP Engine, SiteGround, incluent souvent un CDN intégré ou une mise en cache serveur qui résout déjà le problème des cookies. Vérifiez votre offre: si la description mentionne «edge caching» ou «CDN inclus», une configuration supplémentaire n’est pas nécessaire. Sur un hébergement mutualisé économique sans CDN, la mise en place d’un domaine sans cookies apportera un gain notable.
Que faire si les images ont disparu après la requête SQL?
Soit vous avez fait une erreur dans l’URL (vérifiez la correspondance du domaine dans la requête et les paramètres du sous-domaine), soit le sous-domaine
static.yoursite.compointe vers le mauvais répertoire. Restaurez la base de données à partir de la sauvegarde et vérifiez: le Document Root du sous-domaine doit êtrepublic_html/wp-content, et le domaine dans la requête SQL doit correspondre à ce qui a été créé dans cPanel (avecwww.ou sans, selon la configuration du site principal).
Quelle méthode choisir pour votre projet
Si le site est sur un hébergement économique sans CDN et sans budget pour des services payants, configurez un sous-domaine séparé via cPanel. C’est 15 minutes de travail: sous-domaine, deux lignes dans wp-config.php et une requête SQL. Le contenu statique sera servi sans cookies, le score GTmetrix augmentera. Inconvénient, une maintenance manuelle et pas d’accélération globale.
Si vous êtes prêt à payer 4 à 10 $ par mois, utilisez la combinaison KeyCDN + CDN Enabler. La même tâche est résolue automatiquement, avec en plus un réseau de diffusion depuis plus de 60 points, de la compression et une accélération pour les visiteurs partout dans le monde. Pour un projet qui génère ou prévoit de générer des revenus, le CDN est rentabilisé immédiatement.
Et surtout, ne soyez pas obsédé par les scores GTmetrix. La vitesse réelle pour les utilisateurs compte plus que les chiffres d’un rapport. Si le contenu statique est servi sans cookies (vérifié via DevTools) et que le site se charge en moins de 2 secondes, le problème est résolu.
Pour rafraîchir la vue d’ensemble sur l’accélération de WordPress, le guide officiel de l’équipe WordPress.com est utile, de la mise en cache au CDN, avec des mesures en direct et la configuration:



