Le WordPress d'aujourd'hui, décodé pour les développeurs

Elementor

Elementor et Cloudflare : purger le cache après publication d’un template

Un template Elementor republié qui n'apparaît pas côté visiteur : la faute revient presque toujours au cache Cloudflare. Voici une purge ciblée, déclenchée automatiquement.

Par WordPress Développement • 21 août 2021 • 4 min de lecture • Aucun commentaire
Elementor et Cloudflare : purger le cache après publication d'un template

wp elementor flush-css régénère bien les fichiers CSS générés par Elementor côté serveur, mais ne change rien tant que Cloudflare continue de servir une version mise en cache de la page HTML depuis son réseau de périphérie. Ce cas s’est présenté sur un site multi-pages fortement mis en cache, où une agence republiait régulièrement des templates de page d’atterrissage sans jamais voir le changement en ligne avant plusieurs heures.

La solution ne consiste pas à désactiver le cache Cloudflare (ce qui annulerait les gains de performance qui justifient sa présence), mais à déclencher une purge ciblée exactement au moment de la publication d’un template Elementor, via l’API Cloudflare.

Pourquoi une purge globale n’est pas la bonne réponse

L’API Cloudflare propose un point de terminaison de purge globale (purge_everything), séduisant par sa simplicité, mais à éviter en usage récurrent : il vide l’intégralité du cache du domaine, provoquant un pic de charge sur le serveur d’origine le temps que le cache se reconstruise, et consomme rapidement le quota d’appels API du plan Cloudflare en place (1 200 requêtes par mois sur les plans gratuits et Pro observés à l’époque).

Purge ciblée par URL, déclenchée à la publication

Elementor propose un hook natif, elementor/document/after_save, déclenché à chaque sauvegarde ou publication d’un document (page, template, popup) depuis l’éditeur. C’est le point d’ancrage idéal pour appeler l’API de purge ciblée de Cloudflare, limitée aux URL réellement concernées par la modification.

L'essentiel à retenir : Une purge globale à chaque publication épuise vite le quota de l'API ; Une purge ciblée par URL suffit dans la plupart des cas ; Le déclenchement se fait via un hook Elementor natif
add_action( 'elementor/document/after_save', function( $document ) {
    $url = get_permalink( $document->get_main_id() );
    wp_remote_post(
        "https://api.cloudflare.com/client/v4/zones/{$zone_id}/purge_cache",
        [
            'headers' => [
                'Authorization' => 'Bearer ' . CLOUDFLARE_API_TOKEN,
                'Content-Type'  => 'application/json',
            ],
            'body' => wp_json_encode( [ 'files' => [ $url ] ] ),
        ]
    );
} );

Cas particulier des templates globaux

  • Un template d’en-tête ou de pied de page modifié affecte potentiellement toutes les pages du site : la purge doit alors cibler une liste d’URL représentatives, pas une seule page
  • Un template popup n’a pas d’URL propre : sa purge doit viser les pages sur lesquelles il est configuré pour s’afficher, récupérées via les conditions d’affichage Elementor Pro
  • Le jeton API Cloudflare doit être limité en droits à la seule zone concernée et à la permission de purge, jamais un jeton global du compte

Vérifier que la purge a bien fonctionné

L’en-tête de réponse HTTP cf-cache-status, visible dans les outils de développement du navigateur, indique si une page provient du cache (HIT) ou du serveur d’origine (MISS ou DYNAMIC). Après une purge ciblée réussie, la première requête suivante sur l’URL concernée doit afficher MISS, preuve que Cloudflare est bien allé rechercher la version fraîche.

Conseil maison : loguer chaque appel de purge (URL ciblée, code de réponse Cloudflare) dans un fichier dédié permet de diagnostiquer rapidement un template qui semble « ne jamais se mettre à jour », souvent le signe d’une purge silencieusement échouée plutôt que d’un problème Elementor.

Limites de cette approche

Cette purge ciblée par hook ne couvre que les publications faites depuis l’éditeur Elementor. Une modification de contenu par un autre biais (import WP-CLI, modification directe en base) ne déclenche pas ce hook et nécessite une purge manuelle ou un déclencheur complémentaire, hors du périmètre traité ici. La configuration DNS et les règles de pare-feu applicatif (WAF) de Cloudflare ne sont pas non plus concernées par cet article.

En résumé

Brancher la purge Cloudflare sur le hook elementor/document/after_save permet de garder les bénéfices d’un cache agressif tout en donnant aux équipes éditoriales l’impression, justifiée, que leurs publications sont immédiatement visibles.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi