Contexte
Suite à une mise à jour WordPress et à l’ajout d’un module de sécurité, l’équipe ne parvenait plus à publier ou modifier des contenus. L’éditeur bloc affichait des messages d’erreur, parfois discrets, parfois bloquants. Ce type d’incident touche directement la production de contenu et crée une forte frustration côté utilisateurs.
Symptômes observés
- Message « La réponse n’est pas pas une réponse JSON valide ».
- Impossible d’enregistrer ou de publier un article.
- Éditeur Gutenberg qui se charge partiellement, puis se fige.
- Requêtes
/wp-json/en erreur (401, 403 ou 500).
Objectifs du dépannage
- Rétablir le fonctionnement normal de l’éditeur WordPress.
- Identifier si le blocage vient du serveur, du cache, du HTTPS ou de la sécurité.
- Corriger sans désactiver durablement les protections utiles.
- Éviter que l’erreur réapparaisse lors des prochaines mises à jour.
Diagnostic (axes clés)
- Test direct de l’endpoint REST:
/wp-json/et routes spécifiques. - Analyse réseau navigateur (requêtes XHR bloquées ou modifiées).
- Contrôle HTTPS et contenus mixtes (http dans un site https).
- Vérification des règles WAF, ModSecurity et CDN.
- Test avec plugins désactivés (Health Check, mode sans conflit).
Cause identifiée
Une règle de sécurité serveur bloquait les requêtes POST vers /wp-json/wp/v2, interprétées comme suspectes. Le problème était amplifié par un cache qui ne bypassait pas correctement l’API REST.
Correctifs appliqués
1) Bypass cache et sécurité pour la REST API
- Exclusion de
/wp-json/*du cache (plugin + CDN). - Assouplissement ciblé des règles WAF pour les routes WordPress légitimes.
2) Vérification HTTPS et URLs
- Contrôle des URLs
homeetsiteurlen HTTPS. - Correction des appels internes en http qui provoquaient des erreurs CORS.
3) Validation côté WordPress
- Test avec le plugin Health Check (mode sans conflit).
- Réactivation progressive des plugins pour confirmer la source.
Exemple technique : tester la REST API
Un simple GET doit retourner du JSON valide.
https://www.exemple.ch/wp-json/wp/v2/posts?per_page=1
Exemple technique : exclure l’API REST du cache
À configurer dans le cache et le CDN.
Exclusions cache:
- /wp-json/*
- /wp-admin/*
- /wp-login.php
Exemple technique : forcer HTTPS côté WordPress
Évite des erreurs CORS et JSON.
define('FORCE_SSL_ADMIN', true);
Exemple technique : vérification rapide via WP-CLI
Permet de confirmer l’état du site sans navigateur.
wp core version
wp plugin status
wp option get home
wp option get siteurl
Résultats
- Éditeur Gutenberg à nouveau fonctionnel.
- Publications et mises à jour possibles sans erreur.
- REST API accessible et stable.
- Sécurité conservée, mais compatible avec WordPress.
Prévention mise en place
- Règles documentées pour cache et WAF (API REST, admin).
- Test systématique de l’éditeur après mise à jour majeure.
- Utilisation ponctuelle du mode Health Check pour isoler rapidement.
Points clés à retenir
- Gutenberg dépend entièrement de la REST API.
- Les erreurs JSON sont souvent liées au cache, au HTTPS ou à la sécurité serveur.
- Exclure proprement
/wp-jsondu cache est une bonne pratique de base.