vendredi 25 septembre 2026

À propos

Contact

Headless & API

Quand WordPress tombe, le front headless doit tenir : notre retour

Récit d'une panne du back-office WordPress d'un client, et de ce qui a permis au site public de rester debout malgré tout.

Par Clément Hadrot • 12 août 2024 • 4 min de lecture • Aucun commentaire
Quand WordPress tombe, le front headless doit tenir : notre retour

Un mardi matin, l’hébergeur du WordPress d’un client a subi un incident sur son infrastructure de base de données mutualisée. Le back-office est devenu injoignable pendant près de six heures, le temps que l’incident soit résolu côté hébergeur. Le site public, lui, servi par un front Next.js hébergé séparément, n’a affiché aucune erreur pendant toute la durée de la panne. Voici ce qui a permis cette différence, et ce qu’on a corrigé après coup.

Ce retour d’expérience ne traite pas du coût du headless en général, déjà couvert ailleurs : il se concentre sur ce qui, concrètement, a fait tenir le front ce jour-là.

Ce qui a marché : le cache comme filet de secours

Le front interrogeait WordPress via des requêtes régénérées à intervalle régulier, avec revalidation en arrière-plan. Quand WordPress est devenu injoignable, chaque tentative de revalidation a échoué silencieusement côté serveur de rendu, mais la dernière version mise en cache est restée servie aux visiteurs sans interruption. Le site est resté figé sur son contenu de la veille au soir, ce qui restait largement acceptable pour un site éditorial sans actualité urgente ce jour-là.

Ce qui n’a pas marché : l’alerte de rebuild

Le webhook qui déclenchait normalement une reconstruction du site à chaque publication a évidemment échoué à joindre WordPress pendant l’incident, ce qui était attendu et sans conséquence. Le vrai problème est apparu après le retour du back-office : personne n’a été alerté que les tentatives de webhook avaient échoué pendant six heures, et une actualité publiée pendant la panne n’est apparue sur le site public que le lendemain matin, lors de la vérification manuelle de routine.

L'essentiel à retenir : Le front a continué de servir du contenu pendant la panne back-office ; Un cache de secours plutôt qu'une page d'erreur ; Une alerte de build manqué aurait évité six heures de retard

Ce qu’on a corrigé après l’incident

  1. Ajout d’une alerte automatique (envoyée sur un canal de messagerie d’équipe) dès qu’un webhook de publication échoue plusieurs fois de suite.
  2. Mise en place d’un contrôle de santé programmé qui interroge WordPress toutes les cinq minutes et compare son état à celui du front, indépendamment des webhooks.
  3. Documentation d’une procédure de reconstruction manuelle, pour ne plus dépendre uniquement du déclenchement automatique en cas de panne prolongée.

Ce que les visiteurs n’ont jamais vu

Après coup, on a comparé les journaux du serveur de rendu front avec ceux de l’hébergeur WordPress sur la fenêtre de l’incident. Aucune requête visiteur n’a échoué côté front pendant les six heures de panne : toutes ont été servies depuis le cache déjà construit. Seules les tentatives de revalidation en arrière-plan, invisibles pour un visiteur, ont échoué silencieusement pendant toute la durée de l’incident, avant de reprendre normalement dès que WordPress est redevenu joignable.

Pourquoi une architecture couplée aurait mal vécu cet incident

Sur un WordPress classique non découplé, la même panne de base de données aurait rendu le site public entièrement inaccessible, puisque chaque visite déclenche une lecture en base au moment de la requête. La séparation entre le moment où le contenu est généré (à la publication) et le moment où il est servi (à chaque visite) est précisément ce qui a absorbé cette panne sans qu’aucun visiteur ne s’en aperçoive.

ArchitectureComportement pendant la panne base de données
WordPress couplé classiqueSite public inaccessible en même temps que le back-office
Front découplé avec cache de secoursSite public servi normalement, contenu figé à la dernière version connue

Un cache de secours qui sert du contenu légèrement daté vaut toujours mieux qu’une page d’erreur, tant que l’équipe sait exactement depuis combien de temps ce contenu n’a pas été rafraîchi.

Notre verdict

Cet incident n’était pas prévu, mais l’architecture a absorbé le choc sans intervention humaine pendant les six heures de panne. Le vrai enseignement porte sur la surveillance : un système de cache de secours ne suffit pas seul, il doit être accompagné d’une alerte claire dès que la chaîne de mise à jour se rompt, sinon le retard se découvre trop tard, une fois que le contenu obsolète a déjà été vu par des milliers de visiteurs.

Partager :

À propos de l'auteur

Clément Hadrot

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

Voir tous ses articles

Dans la même veine

À lire aussi