« Erreur 522 : origin connection time-out » — ce type de message, croisé une fois par un rédacteur qui vérifiait fébrilement si son article venait bien de passer en cache après publication, illustre un problème récurrent des sites à fort trafic protégés par Cloudflare : l’appel de purge de cache après publication peut échouer silencieusement, sans que personne côté éditorial ne s’en aperçoive avant qu’un lecteur ne signale voir une version périmée de la page.
Plutôt que de faire confiance aveuglément à l’appel API de purge, il est plus sûr d’enregistrer son résultat et de l’afficher directement dans l’interface d’administration, à l’endroit où l’équipe éditoriale peut le consulter sans connaissance technique particulière.
Enregistrer le résultat de chaque appel de purge
Après l’appel à l’API Cloudflare, la réponse contient un champ success qu’il suffit de capturer et de stocker en métadonnée sur l’article concerné, avec un horodatage précis :
function enregistrer_resultat_purge( $post_id, $reponse_api ) {
$succes = ! empty( $reponse_api['success'] );
update_post_meta( $post_id, '_derniere_purge_cloudflare', array(
'succes' => $succes,
'horodatage' => current_time( 'mysql' ),
'erreurs' => $succes ? array() : ( $reponse_api['errors'] ?? array() ),
) );
}
Afficher le badge dans la liste des articles

Une colonne personnalisée sur l’écran edit.php affiche l’état de la dernière purge, avec un code couleur immédiatement lisible même pour un profil non technique :
add_filter( 'manage_post_posts_columns', 'ajouter_colonne_purge_cloudflare' );
function ajouter_colonne_purge_cloudflare( $colonnes ) {
$colonnes['purge_cloudflare'] = 'Cache CDN';
return $colonnes;
}
add_action( 'manage_post_posts_custom_column', 'afficher_colonne_purge_cloudflare', 10, 2 );
function afficher_colonne_purge_cloudflare( $colonne, $post_id ) {
if ( 'purge_cloudflare' !== $colonne ) {
return;
}
$etat = get_post_meta( $post_id, '_derniere_purge_cloudflare', true );
if ( empty( $etat ) ) {
echo '<span style="color:gray;">Non purgé</span>';
} elseif ( $etat['succes'] ) {
echo '<span style="color:green;">✓ Purgé (' . esc_html( $etat['horodatage'] ) . ')</span>';
} else {
echo '<span style="color:red;">✗ Échec de purge</span>';
}
}
Prévoir une nouvelle tentative automatique en cas d’échec
Un échec de purge ne doit jamais rester sans suite silencieuse. Une tâche planifiée, exécutée cinq minutes après un échec constaté, retente l’appel API une seconde fois avant d’escalader vers une notification à l’équipe technique si le second essai échoue également.
Distinguer échec de communication et échec de purge réelle
Une erreur réseau temporaire (délai de connexion dépassé, service Cloudflare momentanément indisponible) n’a pas la même gravité qu’un échec lié à une mauvaise configuration de la zone ou à un jeton API expiré. Le tableau ci-dessous distingue ces deux catégories pour orienter la réaction appropriée :
| Type d’échec | Cause probable | Action recommandée |
|---|---|---|
| Timeout réseau | Latence temporaire | Nouvelle tentative automatique |
| Code 403 | Jeton API expiré ou révoqué | Alerte immédiate équipe technique |
| Code 400 avec erreur de zone | Configuration Cloudflare incorrecte | Vérification manuelle de la zone |
Ne pas confondre cet indicateur avec l’appel de purge lui-même
Ce dispositif se limite à observer et afficher le résultat d’un appel déjà déclenché par ailleurs dans le processus de publication ; il ne couvre pas la logique d’implémentation de l’appel API de purge, qui dépend de la configuration réseau propre à chaque hébergement et relève d’un chantier distinct.
Un système de cache invisible ne pose problème que le jour où il échoue sans prévenir ; le badge sert avant tout à raccourcir ce jour-là de plusieurs heures à quelques minutes.
En résumé
Enregistrer et afficher le résultat de chaque purge Cloudflare transforme une incertitude technique diffuse en information claire, consultable directement par l’équipe éditoriale sans détour par les journaux serveur. Le développement reste limité à une métadonnée et une colonne personnalisée, pour un gain de confiance immédiat après chaque publication sensible.