{"id":579,"date":"2026-07-10T10:30:30","date_gmt":"2026-07-10T08:30:30","guid":{"rendered":"https:\/\/ssdhosters.com\/blog\/?p=579"},"modified":"2026-08-25T12:34:40","modified_gmt":"2026-08-25T10:34:40","slug":"probleme-cache-cdn-wordpress","status":"publish","type":"post","link":"https:\/\/ssdhosters.com\/blog\/probleme-cache-cdn-wordpress\/","title":{"rendered":"Probl\u00e8me cache CDN WordPress : diagnostic par couche"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Quand une page change selon le visiteur ou la r\u00e9gion, vider tous les caches donne parfois un r\u00e9pit sans expliquer la cause. WordPress peut combiner cache navigateur, CDN, page, objet, requ\u00eate et transients ; chacun poss\u00e8de une cl\u00e9, une dur\u00e9e et une purge diff\u00e9rentes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour <strong>probl\u00e8me cache CDN WordPress<\/strong>, la difficult\u00e9 n\u2019est pas de multiplier les r\u00e9glages : elle consiste \u00e0 savoir quelle preuve autorise la suite. Ce guide parcourt quatre axes concrets \u2014 couche, cl\u00e9, fra\u00eecheur, isolement \u2014 sans publier la moindre information sur l\u2019infrastructure r\u00e9elle de SSDHosters ou d\u2019un client.<\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Sommaire<\/h2><nav><ul><li class=\"\"><a href=\"#probleme-cache-cdn-word-press-la-reponse-courte\">Probl\u00e8me cache CDN WordPress : la r\u00e9ponse courte<\/a><\/li><li class=\"\"><a href=\"#pourquoi-ce-sujet-reste-important\">Pourquoi ce sujet reste important<\/a><\/li><li class=\"\"><a href=\"#definir-le-perimetre-avant-toute-action\">D\u00e9finir le p\u00e9rim\u00e8tre avant toute action<\/a><\/li><li class=\"\"><a href=\"#les-quatre-criteres-de-decision\">Les quatre crit\u00e8res de d\u00e9cision<\/a><\/li><li class=\"\"><a href=\"#sources-officielles-utilisees\">Sources officielles utilis\u00e9es<\/a><\/li><li class=\"\"><a href=\"#preparer-la-preuve-et-le-retour-sur\">Pr\u00e9parer la preuve et le retour s\u00fbr<\/a><\/li><li class=\"\"><a href=\"#1-stabiliser-le-cas-reproductible\">1. Stabiliser le cas reproductible<\/a><\/li><li class=\"\"><a href=\"#2-lire-les-en-tetes\">2. Lire les en-t\u00eates<\/a><\/li><li class=\"\"><a href=\"#3-contourner-du-bord-vers-lorigine\">3. Contourner du bord vers l\u2019origine<\/a><\/li><li class=\"\"><a href=\"#4-comparer-les-cles\">4. Comparer les cl\u00e9s<\/a><\/li><li class=\"\"><a href=\"#5-tester-purge-et-invalidation\">5. Tester purge et invalidation<\/a><\/li><li class=\"\"><a href=\"#6-corriger-et-surveiller\">6. Corriger et surveiller<\/a><\/li><li class=\"\"><a href=\"#matrice-de-validation\">Matrice de validation<\/a><\/li><li class=\"\"><a href=\"#erreurs-frequentes-et-correction\">Erreurs fr\u00e9quentes et correction<\/a><\/li><li class=\"\"><a href=\"#confidentialite-des-diagnostics\">Confidentialit\u00e9 des diagnostics<\/a><\/li><li class=\"\"><a href=\"#decider-sans-promesse-absolue\">D\u00e9cider sans promesse absolue<\/a><\/li><li class=\"\"><a href=\"#organiser-le-suivi\">Organiser le suivi<\/a><\/li><li class=\"\"><a href=\"#questions-frequentes\">Questions fr\u00e9quentes<\/a><ul><li class=\"\"><a href=\"#pourquoi-le-site-differe-t-il-selon-la-region\">Pourquoi le site diff\u00e8re-t-il selon la r\u00e9gion ?<\/a><\/li><li class=\"\"><a href=\"#vider-le-cache-objet-suffit-il\">Vider le cache objet suffit-il ?<\/a><\/li><li class=\"\"><a href=\"#que-fait-vary\">Que fait Vary ?<\/a><\/li><li class=\"\"><a href=\"#comment-eviter-le-panier-en-cache\">Comment \u00e9viter le panier en cache ?<\/a><\/li><\/ul><\/li><li class=\"\"><a href=\"#checklist-operationnelle\">Checklist op\u00e9rationnelle<\/a><\/li><li class=\"\"><a href=\"#liens-utiles-pour-poursuivre\">Liens utiles pour poursuivre<\/a><\/li><li class=\"\"><a href=\"#conclusion\">Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n<h2 id=\"probleme-cache-cdn-word-press-la-reponse-courte\" class=\"wp-block-heading\">Probl\u00e8me cache CDN WordPress : la r\u00e9ponse courte<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Reproduisez l\u2019URL avec \u00e9tat anonyme puis connect\u00e9, collectez en-t\u00eates et cookies, contournez chaque couche dans un ordre contr\u00f4l\u00e9 et identifiez le premier niveau qui sert une r\u00e9ponse incorrecte. Corrigez cl\u00e9, exclusion, TTL ou purge \u00e0 cette couche, puis testez les autres sans purge globale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour \u00ab Anonyme deux r\u00e9gions \u00bb, le premier livrable n\u2019est pas une modification mais une ligne de base. Elle r\u00e9unit Anonyme deux r\u00e9gions, Connect\u00e9 vs anonyme, Publication test, Panier\/compte. Ces contr\u00f4les propres \u00e0 couche permettent de comparer avant et apr\u00e8s avec le m\u00eame sc\u00e9nario, puis de revenir en arri\u00e8re si m\u00eame contenu public frais n\u2019est pas obtenu.<\/p>\n\n\n\n<h2 id=\"pourquoi-ce-sujet-reste-important\" class=\"wp-block-heading\">Pourquoi ce sujet reste important<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Le cache HTML en p\u00e9riph\u00e9rie et les pages dynamiques augmentent le risque qu\u2019un param\u00e8tre, cookie ou langue manque \u00e0 la cl\u00e9. Les purges automatiques peuvent aussi oublier archives, fragments ou variantes.<\/p>\n\n\n\n<h2 id=\"definir-le-perimetre-avant-toute-action\" class=\"wp-block-heading\">D\u00e9finir le p\u00e9rim\u00e8tre avant toute action<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nommer URL, r\u00e9gion, appareil, \u00e9tat de connexion, cookie, param\u00e8tre et moment de publication. Interdire la capture publique de cookies, adresses, fournisseurs ou en-t\u00eates sensibles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans ce dossier, une exclusion explicite est aussi importante qu\u2019une t\u00e2che : elle emp\u00eache qu\u2019un test sur couche modifie par accident isolement. Assignez un propri\u00e9taire aux d\u00e9pendances de \u00ab Stabiliser le cas reproductible \u00bb et marquez ce qui restera volontairement hors du changement.<\/p>\n\n\n\n<h2 id=\"les-quatre-criteres-de-decision\" class=\"wp-block-heading\">Les quatre crit\u00e8res de d\u00e9cision<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>couche \u2014<\/strong> navigateur, edge, page, objet, base ou application. Ce crit\u00e8re se v\u00e9rifie notamment pendant \u00ab Stabiliser le cas reproductible \u00bb : une r\u00e9ponse personnalis\u00e9e ne peut pas \u00eatre compar\u00e9e sans \u00e9tat contr\u00f4l\u00e9.<\/li>\n\n\n\n<li><strong>cl\u00e9 \u2014<\/strong> h\u00f4te, chemin, param\u00e8tres, cookies, langue et appareil. Ce crit\u00e8re se v\u00e9rifie notamment pendant \u00ab Lire les en-t\u00eates \u00bb : les en-t\u00eates r\u00e9v\u00e8lent qui a d\u00e9cid\u00e9 de servir la r\u00e9ponse.<\/li>\n\n\n\n<li><strong>fra\u00eecheur \u2014<\/strong> \u00e2ge, TTL, validation, stale et purge. Ce crit\u00e8re se v\u00e9rifie notamment pendant \u00ab Contourner du bord vers l\u2019origine \u00bb : purger tout d\u00e9truit la preuve.<\/li>\n\n\n\n<li><strong>isolement \u2014<\/strong> contenu public, session, panier et compte. Ce crit\u00e8re se v\u00e9rifie notamment pendant \u00ab Comparer les cl\u00e9s \u00bb : une cl\u00e9 incorrecte m\u00e9lange ou fragmente les r\u00e9ponses.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Lisez ces crit\u00e8res ensemble. Une am\u00e9lioration du volet <strong>couche<\/strong> ne compense pas automatiquement une r\u00e9gression de <strong>cl\u00e9<\/strong> ; l\u2019arbitrage doit citer le parcours concern\u00e9, la cons\u00e9quence accept\u00e9e et la personne qui l\u2019accepte.<\/p>\n\n\n\n<h2 id=\"sources-officielles-utilisees\" class=\"wp-block-heading\">Sources officielles utilis\u00e9es<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc9111.html\" rel=\"noopener\">RFC 9111 \u2014 cache HTTP<\/a> \u2014 cadrer fra\u00eecheur et cache partag\u00e9. La r\u00e9f\u00e9rence \u00ab RFC 9111 \u2014 cache HTTP \u00bb cadre le volet <strong>couche<\/strong> sans transformer sa documentation en promesse commerciale.<\/li>\n\n\n\n<li><a href=\"https:\/\/developer.wordpress.org\/advanced-administration\/performance\/optimization\/\" rel=\"noopener\">Optimisation WordPress<\/a> \u2014 distinguer cache et CDN. La r\u00e9f\u00e9rence \u00ab Optimisation WordPress \u00bb cadre le volet <strong>cl\u00e9<\/strong> sans transformer sa documentation en promesse commerciale.<\/li>\n\n\n\n<li><a href=\"https:\/\/developer.woocommerce.com\/docs\/best-practices\/performance\/configuring-caching-plugins\/\" rel=\"noopener\">Cache WooCommerce<\/a> \u2014 exclure les routes dynamiques. La r\u00e9f\u00e9rence \u00ab Cache WooCommerce \u00bb cadre le volet <strong>fra\u00eecheur<\/strong> sans transformer sa documentation en promesse commerciale.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Pour <strong>probl\u00e8me cache CDN WordPress<\/strong>, RFC 9111 \u2014 cache HTTP fixe le point de d\u00e9part, tandis que Cache WooCommerce documente comment exclure les routes dynamiques. V\u00e9rifiez ces pages et les notes li\u00e9es \u00e0 \u00ab Stabiliser le cas reproductible \u00bb avant d\u2019ex\u00e9cuter le plan.<\/p>\n\n\n\n<h2 id=\"preparer-la-preuve-et-le-retour-sur\" class=\"wp-block-heading\">Pr\u00e9parer la preuve et le retour s\u00fbr<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Capturer le d\u00e9faut avant toute purge, avec un compte et des donn\u00e9es de test. Pr\u00e9parer une m\u00e9thode document\u00e9e pour contourner chaque couche et une fen\u00eatre s\u00fbre si une configuration change.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pr\u00e9parez ensuite un dossier de preuve minimal pour <strong>probl\u00e8me cache CDN WordPress<\/strong> : \u00e9tat initial, heure du test, r\u00e9sultat de Anonyme deux r\u00e9gions, d\u00e9cision et retour pr\u00e9vu. Pour chaque donn\u00e9e collect\u00e9e pendant \u00ab Stabiliser le cas reproductible \u00bb, demandez si elle distingue r\u00e9ellement deux hypoth\u00e8ses ; sinon, ne la conservez pas.<\/p>\n\n\n\n<h2 id=\"1-stabiliser-le-cas-reproductible\" class=\"wp-block-heading\">1. Stabiliser le cas reproductible<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Fixer URL, param\u00e8tres, cookies, r\u00e9gion et s\u00e9quence. Comparer anonyme, connect\u00e9 et navigation priv\u00e9e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette \u00e9tape prot\u00e8ge le volet <strong>couche<\/strong> : une r\u00e9ponse personnalis\u00e9e ne peut pas \u00eatre compar\u00e9e sans \u00e9tat contr\u00f4l\u00e9. La d\u00e9cision doit donc produire un \u00e9tat observable avant de passer \u00e0 \u00ab Lire les en-t\u00eates \u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Preuve attendue.<\/strong> Sur le contr\u00f4le \u00ab Anonyme deux r\u00e9gions \u00bb, visez \u00ab m\u00eame contenu public frais \u00bb et conservez hash\/en-t\u00eates. Apr\u00e8s \u00ab Stabiliser le cas reproductible \u00bb, datez cette v\u00e9rification de \u00ab Anonyme deux r\u00e9gions \u00bb, notez le p\u00e9rim\u00e8tre r\u00e9ellement test\u00e9 et s\u00e9parez clairement r\u00e9sultat observ\u00e9, interpr\u00e9tation et limite.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Point d\u2019arr\u00eat.<\/strong> Le risque \u00ab tout purger imm\u00e9diatement \u00bb se reconna\u00eet lorsque la cause et la couche disparaissent. Si ce signal appara\u00eet entre \u00ab Stabiliser le cas reproductible \u00bb et \u00ab Anonyme deux r\u00e9gions \u00bb, n\u2019ajoutez pas une deuxi\u00e8me modification : revenez \u00e0 l\u2019\u00e9tat stable pr\u00e9vu, isolez la cause et rejouez uniquement ce contr\u00f4le.<\/p>\n\n\n\n<h2 id=\"2-lire-les-en-tetes\" class=\"wp-block-heading\">2. Lire les en-t\u00eates<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Observer Age, Cache-Control, Vary, ETag et indicateurs de cache propres \u00e0 la couche sans publier les valeurs sensibles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette \u00e9tape prot\u00e8ge le volet <strong>cl\u00e9<\/strong> : les en-t\u00eates r\u00e9v\u00e8lent qui a d\u00e9cid\u00e9 de servir la r\u00e9ponse. La d\u00e9cision doit donc produire un \u00e9tat observable avant de passer \u00e0 \u00ab Contourner du bord vers l\u2019origine \u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Preuve attendue.<\/strong> Sur le contr\u00f4le \u00ab Connect\u00e9 vs anonyme \u00bb, visez \u00ab aucune session partag\u00e9e \u00bb et conservez captures neutralis\u00e9es. Apr\u00e8s \u00ab Lire les en-t\u00eates \u00bb, datez cette v\u00e9rification de \u00ab Connect\u00e9 vs anonyme \u00bb, notez le p\u00e9rim\u00e8tre r\u00e9ellement test\u00e9 et s\u00e9parez clairement r\u00e9sultat observ\u00e9, interpr\u00e9tation et limite.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Point d\u2019arr\u00eat.<\/strong> Le risque \u00ab ajouter vary sur tout \u00bb se reconna\u00eet lorsque le cache se fragmente sans n\u00e9cessit\u00e9. Si ce signal appara\u00eet entre \u00ab Lire les en-t\u00eates \u00bb et \u00ab Connect\u00e9 vs anonyme \u00bb, n\u2019ajoutez pas une deuxi\u00e8me modification : revenez \u00e0 l\u2019\u00e9tat stable pr\u00e9vu, isolez la cause et rejouez uniquement ce contr\u00f4le.<\/p>\n\n\n\n<h2 id=\"3-contourner-du-bord-vers-lorigine\" class=\"wp-block-heading\">3. Contourner du bord vers l\u2019origine<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tester navigateur neuf, bypass CDN autoris\u00e9, cache page d\u00e9sactiv\u00e9 puis objet cibl\u00e9. Changer une variable \u00e0 la fois.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette \u00e9tape prot\u00e8ge le volet <strong>fra\u00eecheur<\/strong> : purger tout d\u00e9truit la preuve. La d\u00e9cision doit donc produire un \u00e9tat observable avant de passer \u00e0 \u00ab Comparer les cl\u00e9s \u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Preuve attendue.<\/strong> Sur le contr\u00f4le \u00ab Publication test \u00bb, visez \u00ab purge des objets d\u00e9pendants \u00bb et conservez chronologie. Apr\u00e8s \u00ab Contourner du bord vers l\u2019origine \u00bb, datez cette v\u00e9rification de \u00ab Publication test \u00bb, notez le p\u00e9rim\u00e8tre r\u00e9ellement test\u00e9 et s\u00e9parez clairement r\u00e9sultat observ\u00e9, interpr\u00e9tation et limite.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Point d\u2019arr\u00eat.<\/strong> Le risque \u00ab ignorer le navigateur \u00bb se reconna\u00eet lorsque une ancienne r\u00e9ponse locale ressemble \u00e0 un d\u00e9faut CDN. Si ce signal appara\u00eet entre \u00ab Contourner du bord vers l\u2019origine \u00bb et \u00ab Publication test \u00bb, n\u2019ajoutez pas une deuxi\u00e8me modification : revenez \u00e0 l\u2019\u00e9tat stable pr\u00e9vu, isolez la cause et rejouez uniquement ce contr\u00f4le.<\/p>\n\n\n\n<h2 id=\"4-comparer-les-cles\" class=\"wp-block-heading\">4. Comparer les cl\u00e9s<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00e9rifier param\u00e8tres conserv\u00e9s, cookies de session, langue, appareil et host. R\u00e9duire ou ajouter une dimension seulement avec preuve.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette \u00e9tape prot\u00e8ge le volet <strong>isolement<\/strong> : une cl\u00e9 incorrecte m\u00e9lange ou fragmente les r\u00e9ponses. La d\u00e9cision doit donc produire un \u00e9tat observable avant de passer \u00e0 \u00ab Tester purge et invalidation \u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Preuve attendue.<\/strong> Sur le contr\u00f4le \u00ab Panier\/compte \u00bb, visez \u00ab bypass partag\u00e9 \u00bb et conservez cache-status. Apr\u00e8s \u00ab Comparer les cl\u00e9s \u00bb, datez cette v\u00e9rification de \u00ab Panier\/compte \u00bb, notez le p\u00e9rim\u00e8tre r\u00e9ellement test\u00e9 et s\u00e9parez clairement r\u00e9sultat observ\u00e9, interpr\u00e9tation et limite.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Point d\u2019arr\u00eat.<\/strong> Le risque \u00ab cacher les pages priv\u00e9es \u00bb se reconna\u00eet lorsque l\u2019\u00e9tat utilisateur peut \u00eatre expos\u00e9. Si ce signal appara\u00eet entre \u00ab Comparer les cl\u00e9s \u00bb et \u00ab Panier\/compte \u00bb, n\u2019ajoutez pas une deuxi\u00e8me modification : revenez \u00e0 l\u2019\u00e9tat stable pr\u00e9vu, isolez la cause et rejouez uniquement ce contr\u00f4le.<\/p>\n\n\n\n<h2 id=\"5-tester-purge-et-invalidation\" class=\"wp-block-heading\">5. Tester purge et invalidation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Modifier un contenu de test, chronom\u00e9trer chaque couche et v\u00e9rifier archives, page, API et fragments d\u00e9pendants.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette \u00e9tape prot\u00e8ge le volet <strong>couche<\/strong> : la page \u00e9dit\u00e9e n\u2019est pas le seul objet \u00e0 invalider. La d\u00e9cision doit donc produire un \u00e9tat observable avant de passer \u00e0 \u00ab Corriger et surveiller \u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Preuve attendue.<\/strong> Sur le contr\u00f4le \u00ab Anonyme deux r\u00e9gions \u00bb, visez \u00ab m\u00eame contenu public frais \u00bb et conservez hash\/en-t\u00eates. Apr\u00e8s \u00ab Tester purge et invalidation \u00bb, datez cette v\u00e9rification de \u00ab Anonyme deux r\u00e9gions \u00bb, notez le p\u00e9rim\u00e8tre r\u00e9ellement test\u00e9 et s\u00e9parez clairement r\u00e9sultat observ\u00e9, interpr\u00e9tation et limite.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Point d\u2019arr\u00eat.<\/strong> Le risque \u00ab tout purger imm\u00e9diatement \u00bb se reconna\u00eet lorsque la cause et la couche disparaissent. Si ce signal appara\u00eet entre \u00ab Tester purge et invalidation \u00bb et \u00ab Anonyme deux r\u00e9gions \u00bb, n\u2019ajoutez pas une deuxi\u00e8me modification : revenez \u00e0 l\u2019\u00e9tat stable pr\u00e9vu, isolez la cause et rejouez uniquement ce contr\u00f4le.<\/p>\n\n\n\n<h2 id=\"6-corriger-et-surveiller\" class=\"wp-block-heading\">6. Corriger et surveiller<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Appliquer exclusion ou r\u00e8gle minimale, r\u00e9p\u00e9ter la matrice puis suivre contenu ancien, hit ratio et origine. Garder un rollback.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette \u00e9tape prot\u00e8ge le volet <strong>cl\u00e9<\/strong> : une correction trop large peut supprimer tout b\u00e9n\u00e9fice du cache. La d\u00e9cision doit donc produire un \u00e9tat observable avant de passer \u00e0 \u00ab Stabiliser le cas reproductible \u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Preuve attendue.<\/strong> Sur le contr\u00f4le \u00ab Connect\u00e9 vs anonyme \u00bb, visez \u00ab aucune session partag\u00e9e \u00bb et conservez captures neutralis\u00e9es. Apr\u00e8s \u00ab Corriger et surveiller \u00bb, datez cette v\u00e9rification de \u00ab Connect\u00e9 vs anonyme \u00bb, notez le p\u00e9rim\u00e8tre r\u00e9ellement test\u00e9 et s\u00e9parez clairement r\u00e9sultat observ\u00e9, interpr\u00e9tation et limite.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Point d\u2019arr\u00eat.<\/strong> Le risque \u00ab ajouter vary sur tout \u00bb se reconna\u00eet lorsque le cache se fragmente sans n\u00e9cessit\u00e9. Si ce signal appara\u00eet entre \u00ab Corriger et surveiller \u00bb et \u00ab Connect\u00e9 vs anonyme \u00bb, n\u2019ajoutez pas une deuxi\u00e8me modification : revenez \u00e0 l\u2019\u00e9tat stable pr\u00e9vu, isolez la cause et rejouez uniquement ce contr\u00f4le.<\/p>\n\n\n\n<h2 id=\"matrice-de-validation\" class=\"wp-block-heading\">Matrice de validation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">| Parcours ou contr\u00f4le | R\u00e9sultat attendu | Preuve \u00e0 conserver | |&#8212;|&#8212;|&#8212;| | Anonyme deux r\u00e9gions | m\u00eame contenu public frais | hash\/en-t\u00eates | | Connect\u00e9 vs anonyme | aucune session partag\u00e9e | captures neutralis\u00e9es | | Publication test | purge des objets d\u00e9pendants | chronologie | | Panier\/compte | bypass partag\u00e9 | cache-status |<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le cas <strong>Anonyme deux r\u00e9gions<\/strong> doit \u00eatre ex\u00e9cut\u00e9 apr\u00e8s \u00ab Stabiliser le cas reproductible \u00bb. Le r\u00e9sultat \u00ab m\u00eame contenu public frais \u00bb n\u2019est accept\u00e9 que si la preuve retenue \u2014 hash\/en-t\u00eates \u2014 peut \u00eatre relue sans information priv\u00e9e et si le m\u00eame sc\u00e9nario donne un r\u00e9sultat coh\u00e9rent lors d\u2019une seconde ex\u00e9cution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le cas <strong>Connect\u00e9 vs anonyme<\/strong> doit \u00eatre ex\u00e9cut\u00e9 apr\u00e8s \u00ab Lire les en-t\u00eates \u00bb. Le r\u00e9sultat \u00ab aucune session partag\u00e9e \u00bb n\u2019est accept\u00e9 que si la preuve retenue \u2014 captures neutralis\u00e9es \u2014 peut \u00eatre relue sans information priv\u00e9e et si le m\u00eame sc\u00e9nario donne un r\u00e9sultat coh\u00e9rent lors d\u2019une seconde ex\u00e9cution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le cas <strong>Publication test<\/strong> doit \u00eatre ex\u00e9cut\u00e9 apr\u00e8s \u00ab Contourner du bord vers l\u2019origine \u00bb. Le r\u00e9sultat \u00ab purge des objets d\u00e9pendants \u00bb n\u2019est accept\u00e9 que si la preuve retenue \u2014 chronologie \u2014 peut \u00eatre relue sans information priv\u00e9e et si le m\u00eame sc\u00e9nario donne un r\u00e9sultat coh\u00e9rent lors d\u2019une seconde ex\u00e9cution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le cas <strong>Panier\/compte<\/strong> doit \u00eatre ex\u00e9cut\u00e9 apr\u00e8s \u00ab Comparer les cl\u00e9s \u00bb. Le r\u00e9sultat \u00ab bypass partag\u00e9 \u00bb n\u2019est accept\u00e9 que si la preuve retenue \u2014 cache-status \u2014 peut \u00eatre relue sans information priv\u00e9e et si le m\u00eame sc\u00e9nario donne un r\u00e9sultat coh\u00e9rent lors d\u2019une seconde ex\u00e9cution.<\/p>\n\n\n\n<h2 id=\"erreurs-frequentes-et-correction\" class=\"wp-block-heading\">Erreurs fr\u00e9quentes et correction<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Tout purger imm\u00e9diatement.<\/strong> La cause et la couche disparaissent. La correction consiste \u00e0 revenir au p\u00e9rim\u00e8tre de \u00ab Contourner du bord vers l\u2019origine \u00bb, puis \u00e0 refaire la preuve correspondante avant toute nouvelle optimisation.<\/li>\n\n\n\n<li><strong>Ajouter Vary sur tout.<\/strong> Le cache se fragmente sans n\u00e9cessit\u00e9. La correction consiste \u00e0 revenir au p\u00e9rim\u00e8tre de \u00ab Comparer les cl\u00e9s \u00bb, puis \u00e0 refaire la preuve correspondante avant toute nouvelle optimisation.<\/li>\n\n\n\n<li><strong>Ignorer le navigateur.<\/strong> Une ancienne r\u00e9ponse locale ressemble \u00e0 un d\u00e9faut CDN. La correction consiste \u00e0 revenir au p\u00e9rim\u00e8tre de \u00ab Tester purge et invalidation \u00bb, puis \u00e0 refaire la preuve correspondante avant toute nouvelle optimisation.<\/li>\n\n\n\n<li><strong>Cacher les pages priv\u00e9es.<\/strong> L\u2019\u00e9tat utilisateur peut \u00eatre expos\u00e9. La correction consiste \u00e0 revenir au p\u00e9rim\u00e8tre de \u00ab Corriger et surveiller \u00bb, puis \u00e0 refaire la preuve correspondante avant toute nouvelle optimisation.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Les erreurs de ce chantier ont un point commun : elles remplacent la preuve \u00ab hash\/en-t\u00eates \u00bb par une hypoth\u00e8se g\u00e9n\u00e9rale. Recommencez par \u00ab Anonyme deux r\u00e9gions \u00bb, puis remontez vers le composant seulement lorsque ce signal l\u2019exige.<\/p>\n\n\n\n<h2 id=\"confidentialite-des-diagnostics\" class=\"wp-block-heading\">Confidentialit\u00e9 des diagnostics<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un diagnostic utile n\u2019oblige jamais \u00e0 exposer la configuration r\u00e9elle du site Le compte rendu peut pr\u00e9senter navigateur, edge, page, objet, base ou application et m\u00eame contenu public frais, mais il doit neutraliser domaines, adresses, identifiants, chemins, fournisseurs, captures d\u2019administration, journaux bruts et donn\u00e9es de visiteurs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Conservez les \u00e9l\u00e9ments sensibles n\u00e9cessaires \u00e0 \u00ab Stabiliser le cas reproductible \u00bb dans l\u2019espace priv\u00e9 autoris\u00e9, avec une dur\u00e9e et des acc\u00e8s limit\u00e9s. Avant de partager hash\/en-t\u00eates, retirez les m\u00e9tadonn\u00e9es inutiles et v\u00e9rifiez que la preuve d\u00e9montre bien le contr\u00f4le sans r\u00e9v\u00e9ler comment atteindre l\u2019environnement r\u00e9el.<\/p>\n\n\n\n<h2 id=\"decider-sans-promesse-absolue\" class=\"wp-block-heading\">D\u00e9cider sans promesse absolue<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Corrigez la premi\u00e8re couche d\u00e9montr\u00e9e fautive et conservez les autres politiques. Si le cas ne se reproduit pas apr\u00e8s mesure, documentez l\u2019incertitude au lieu d\u2019ajouter une r\u00e8gle permanente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9crivez la d\u00e9cision avec un verbe et une condition : adopter si m\u00eame contenu public frais, corriger si le d\u00e9faut \u00ab tout purger imm\u00e9diatement \u00bb reste isol\u00e9, ou revenir \u00e0 l\u2019\u00e9tat pr\u00e9c\u00e9dent si cl\u00e9 sort du seuil convenu. Cette formulation limite les promesses que hash\/en-t\u00eates ne peut pas soutenir.<\/p>\n\n\n\n<h2 id=\"organiser-le-suivi\" class=\"wp-block-heading\">Organiser le suivi<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Surveillez incidents de fra\u00eecheur, purges, hit ratio et r\u00e9ponses priv\u00e9es. Ajoutez un test apr\u00e8s toute nouvelle langue, campagne, extension de session ou param\u00e8tre.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le registre de suivi doit au minimum relier ce dossier \u00e0 une date, un responsable, captures neutralis\u00e9es et la prochaine condition de r\u00e9vision. Pour le crit\u00e8re cl\u00e9, une tendance est plus utile qu\u2019une capture favorable ; conservez donc la m\u00eame d\u00e9finition entre deux contr\u00f4les.<\/p>\n\n\n\n<h2 id=\"questions-frequentes\" class=\"wp-block-heading\">Questions fr\u00e9quentes<\/h2>\n\n\n\n<h3 id=\"pourquoi-le-site-differe-t-il-selon-la-region\" class=\"wp-block-heading\">Pourquoi le site diff\u00e8re-t-il selon la r\u00e9gion ?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Les points de pr\u00e9sence peuvent avoir des objets et \u00e2ges diff\u00e9rents si la purge se propage mal. Reliez cette r\u00e9ponse \u00e0 \u00ab Stabiliser le cas reproductible \u00bb, au crit\u00e8re <strong>couche<\/strong> et au r\u00e9sultat du test associ\u00e9 plut\u00f4t qu\u2019\u00e0 une simple impression.<\/p>\n\n\n\n<h3 id=\"vider-le-cache-objet-suffit-il\" class=\"wp-block-heading\">Vider le cache objet suffit-il ?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Seulement si cette couche est responsable ; navigateur ou CDN peuvent conserver leur propre r\u00e9ponse. Reliez cette r\u00e9ponse \u00e0 \u00ab Lire les en-t\u00eates \u00bb, au crit\u00e8re <strong>cl\u00e9<\/strong> et au r\u00e9sultat du test associ\u00e9 plut\u00f4t qu\u2019\u00e0 une simple impression.<\/p>\n\n\n\n<h3 id=\"que-fait-vary\" class=\"wp-block-heading\">Que fait Vary ?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Il indique certaines dimensions de s\u00e9lection de r\u00e9ponse ; un usage excessif multiplie les variantes. Reliez cette r\u00e9ponse \u00e0 \u00ab Contourner du bord vers l\u2019origine \u00bb, au crit\u00e8re <strong>fra\u00eecheur<\/strong> et au r\u00e9sultat du test associ\u00e9 plut\u00f4t qu\u2019\u00e0 une simple impression.<\/p>\n\n\n\n<h3 id=\"comment-eviter-le-panier-en-cache\" class=\"wp-block-heading\">Comment \u00e9viter le panier en cache ?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Excluez routes et cookies de session selon la documentation WooCommerce et testez anonyme\/connect\u00e9. Reliez cette r\u00e9ponse \u00e0 \u00ab Comparer les cl\u00e9s \u00bb, au crit\u00e8re <strong>isolement<\/strong> et au r\u00e9sultat du test associ\u00e9 plut\u00f4t qu\u2019\u00e0 une simple impression.<\/p>\n\n\n\n<h2 id=\"checklist-operationnelle\" class=\"wp-block-heading\">Checklist op\u00e9rationnelle<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>[ ] cas reproductible \u2014 preuve : hash\/en-t\u00eates<\/li>\n\n\n\n<li>[ ] \u00e9tats s\u00e9par\u00e9s \u2014 preuve : captures neutralis\u00e9es<\/li>\n\n\n\n<li>[ ] en-t\u00eates collect\u00e9s \u2014 preuve : chronologie<\/li>\n\n\n\n<li>[ ] couches contourn\u00e9es une \u00e0 une \u2014 preuve : cache-status<\/li>\n\n\n\n<li>[ ] cl\u00e9s compar\u00e9es \u2014 preuve : hash\/en-t\u00eates<\/li>\n\n\n\n<li>[ ] purge d\u00e9pendante test\u00e9e \u2014 preuve : captures neutralis\u00e9es<\/li>\n\n\n\n<li>[ ] correction minimale \u2014 preuve : chronologie<\/li>\n\n\n\n<li>[ ] surveillance fra\u00eecheur \u2014 preuve : cache-status<\/li>\n<\/ul>\n\n\n\n<h2 id=\"liens-utiles-pour-poursuivre\" class=\"wp-block-heading\">Liens utiles pour poursuivre<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pour approfondir un sujet voisin, consultez <a href=\"https:\/\/ssdhosters.com\/blog\/logs-wordpress-diagnostic\/\">diagnostiquer avec les journaux WordPress sans exposer de donn\u00e9es<\/a> : utilisez-le pour comparer le p\u00e9rim\u00e8tre et les preuves, sans copier ses r\u00e9glages hors contexte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour comparer les responsabilit\u00e9s d\u2019exploitation, consultez <a href=\"https:\/\/ssdhosters.com\/blog\/choisir-un-hebergement-wordpress\/\">le guide SSDHosters pour choisir un h\u00e9bergement WordPress<\/a>. Comparez surtout couche, cl\u00e9 et les limites document\u00e9es plut\u00f4t qu\u2019une promesse de vitesse ou de classement.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Premier geste utile :<\/strong> ex\u00e9cutez \u00ab Stabiliser le cas reproductible \u00bb, puis documentez \u00ab Anonyme deux r\u00e9gions \u00bb avec le r\u00e9sultat attendu \u00ab m\u00eame contenu public frais \u00bb. Pour <strong>probl\u00e8me cache CDN WordPress<\/strong>, cette petite preuve dira si le dossier doit avancer, \u00eatre corrig\u00e9 ou rester en observation.<\/p>\n\n\n\n<h2 id=\"conclusion\" class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un probl\u00e8me de cache CDN WordPress se r\u00e9sout par attribution, pas par superstition. Chaque r\u00e9ponse doit pouvoir \u00eatre reli\u00e9e \u00e0 une couche, une cl\u00e9 et une r\u00e8gle de fra\u00eecheur.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le dossier peut \u00eatre consid\u00e9r\u00e9 comme pr\u00eat lorsque \u00ab Anonyme deux r\u00e9gions \u00bb atteint \u00ab m\u00eame contenu public frais \u00bb, que le risque \u00ab tout purger imm\u00e9diatement \u00bb est trait\u00e9 et que la prochaine v\u00e9rification poss\u00e8de d\u00e9j\u00e0 un propri\u00e9taire. C\u2019est ce niveau de preuve \u2014 et non le nombre de r\u00e9glages appliqu\u00e9s \u2014 qui donne sa valeur durable \u00e0 <strong>probl\u00e8me cache CDN WordPress<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Une m\u00e9thode de diagnostic pour les pages anciennes, sessions m\u00e9lang\u00e9es et purges incompl\u00e8tes entre WordPress et CDN.<\/p>\n","protected":false},"author":1,"featured_media":580,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34],"tags":[],"class_list":["post-579","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-performance-wordpress","resize-featured-image"],"_links":{"self":[{"href":"https:\/\/ssdhosters.com\/blog\/wp-json\/wp\/v2\/posts\/579","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ssdhosters.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ssdhosters.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ssdhosters.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ssdhosters.com\/blog\/wp-json\/wp\/v2\/comments?post=579"}],"version-history":[{"count":2,"href":"https:\/\/ssdhosters.com\/blog\/wp-json\/wp\/v2\/posts\/579\/revisions"}],"predecessor-version":[{"id":582,"href":"https:\/\/ssdhosters.com\/blog\/wp-json\/wp\/v2\/posts\/579\/revisions\/582"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ssdhosters.com\/blog\/wp-json\/wp\/v2\/media\/580"}],"wp:attachment":[{"href":"https:\/\/ssdhosters.com\/blog\/wp-json\/wp\/v2\/media?parent=579"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ssdhosters.com\/blog\/wp-json\/wp\/v2\/categories?post=579"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ssdhosters.com\/blog\/wp-json\/wp\/v2\/tags?post=579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}