Dépannage WordPress

WordPress : « La réponse n'est pas une réponse JSON valide »

L'éditeur WordPress refuse d'enregistrer : l'API REST ne renvoie pas du JSON. Testez /wp-json/, les permaliens, le HTTPS et le pare-feu, étape par étape.

WordPress : « La réponse n'est pas une réponse JSON valide »

L’éditeur refuse d’enregistrer : ce que signifie l’erreur

L’erreur « La réponse n’est pas une réponse JSON valide » signifie que l’éditeur de blocs a demandé une action à l’API REST de WordPress et a reçu autre chose que du JSON : page 404, redirection, écran de pare-feu ou erreur PHP. La cause se trouve presque toujours dans les permaliens, le HTTPS ou un pare-feu.

L’API REST de WordPress est l’interface que l’éditeur de blocs utilise pour enregistrer, publier et charger vos contenus. Quand elle ne répond pas correctement, le message apparaît au clic sur « Enregistrer » ou « Publier ». Votre contenu n’est pas perdu tant que l’onglet reste ouvert : copiez-le avant de tester quoi que ce soit.

Le problème est gérable. Dans la plupart des cas, la correction prend quelques minutes et ne demande aucun code.

Pourquoi ça arrive

Selon wp-tutoring.com, les causes se classent à peu près ainsi, de la plus fréquente à la plus rare :

  • Permaliens ou .htaccess cassés : /wp-json/ renvoie une 404 au lieu de JSON.
  • Pare-feu ou extension de sécurité : Wordfence, Cloudflare, ModSecurity ou un WAF d’hébergeur bloquent la requête.
  • URL en HTTP au lieu de HTTPS : l’éditeur envoie ses requêtes au mauvais endroit, ou le navigateur les bloque.
  • Erreur PHP déclenchée par une extension ou un thème, qui s’affiche en HTML dans la réponse.

1. Tester l’API directement dans le navigateur

Ouvrez https://votresite.fr/wp-json/. Une requête GET sur cette adresse renvoie l’index de l’API source : WordPress REST API Handbook. Si vous voyez du JSON, l’API répond. Si vous voyez une page HTML ou une 404, l’éditeur échouera.

Testez ensuite https://votresite.fr/?rest_route=/. Cette adresse fonctionne quel que soit le format de permaliens source : forum wordpress.org.

Ce que vous voyezDiagnostic
JSON sur /wp-json/L’API fonctionne ; passez à l’étape 3 ou 5
JSON sur ?rest_route=/ mais pas sur /wp-json/Problème de réécriture d’URL (étape 2)
HTML ou 404 sur les deuxErreur PHP, blocage ou mauvaise URL (étapes 3 à 6)
Page de blocage ou 403Pare-feu (étape 5)

2. Régénérer les permaliens

C’est le premier réflexe, et il règle une grande partie des cas :

  1. Allez dans Réglages > Permaliens.
  2. Ne changez rien et cliquez sur Enregistrer les modifications.

Cette action force WordPress à régénérer ses règles de réécriture, y compris celles de l’API REST source : WPZOOM, 2025. Sous Apache, un fichier .htaccess corrompu rend /wp-json/ inaccessible : sauvegardez-le avant toute modification, puis laissez WordPress le réécrire. Sous Nginx, la règle de réécriture se règle dans la configuration du serveur, pas dans un fichier du site.

3. Aligner les URL du site sur HTTPS

L’éditeur construit ses appels à partir de l’adresse du site. Si elle pointe vers un ancien domaine, un sous-répertoire ou du HTTP, les requêtes partent au mauvais endroit source : WPZOOM, 2025.

  1. Ouvrez Réglages > Général.
  2. Vérifiez que « Adresse WordPress (URL) » et « Adresse du site (URL) » commencent toutes deux par https://.
  3. Si les champs sont grisés, cherchez WP_HOME et WP_SITEURL dans wp-config.php : ces constantes remplacent les réglages.

Le contenu mixte désigne une page servie en HTTPS qui charge des ressources en HTTP ; le navigateur les bloque, et la réponse JSON peut ne jamais arriver. Les correctifs sont détaillés dans notre guide sur le contenu mixte WordPress et sur la redirection HTTPS et www propre. Si la page tourne en boucle, consultez aussi ERR_TOO_MANY_REDIRECTS.

4. Lire l’outil Santé du site

Allez dans Outils > Santé du site, onglet « État ». Trois tests sont utiles ici :

  • Statut HTTPS : il vérifie que le front du site est accessible en HTTPS source : WordPress Developer Resources.
  • REST API disponible : il contrôle l’API utilisée par l’éditeur. Il est sujet aux faux positifs, donc croisez-le avec votre test de l’étape 1 source : Lyrical Host.
  • Requêtes de loopback : un loopback est une requête que WordPress envoie à son propre site, par exemple pour WP-Cron ou les publications programmées. Le test envoie une requête POST à wp-cron.php avec un délai maximal de 10 secondes source : WordPress Developer Resources.

Un certificat invalide ou un blocage serveur fait échouer ces tests internes. S’ils échouent tous, la cause est côté serveur ou pare-feu, pas dans votre contenu.

5. Chercher un pare-feu qui bloque /wp-json/

Les pare-feux peuvent bloquer des requêtes API légitimes ; si l’erreur disparaît quand on les coupe, il s’agit probablement d’un faux positif et pas forcément d’une faille source : Bluehost, 2025. Un pare-feu peut aussi refuser l’enregistrement quand un bloc contient du code ou des mots qu’il juge suspects source : Dioptera, 2025.

Procédure prudente :

  1. Faites une sauvegarde complète avant de toucher à quoi que ce soit.
  2. Ouvrez l’onglet Réseau des outils développeur du navigateur, filtrez sur wp-json, puis réessayez d’enregistrer : le code de statut et le contenu de la réponse montrent qui bloque.
  3. Désactivez une seule extension de sécurité à la fois (Wordfence, iThemes Security, SecuPress), jamais toutes en même temps sur un site en production.
  4. Vérifiez les règles Cloudflare et les logs ModSecurity de votre hébergeur.
  5. Plutôt que de laisser la protection coupée, créez une règle d’exception pour /wp-json/.

Le principe est le même que pour une erreur 403 Forbidden ; pour la sécurité de l’API elle-même, voyez ce que l’API REST expose.

6. Isoler une extension, un thème ou une erreur PHP

Si l’API répond en HTML avec un message d’erreur, une extension ou un thème plante. Travaillez sur une copie de préproduction, ou faites la sauvegarde puis désactivez les extensions une par une, en suivant la méthode de conflit de plugins. Activez WP_DEBUG_LOG dans wp-config.php pour lire l’erreur exacte dans wp-content/debug.log.

Une erreur « mémoire épuisée » produit le même symptôme : memory_limit fixe la mémoire maximale d’un script PHP, et trop basse, elle interrompt la requête et renvoie du HTML. Une valeur de départ de 256M se règle dans wp-config.php (define('WP_MEMORY_LIMIT', '256M');) ou dans le panel de l’hébergeur. Détails dans mémoire PHP épuisée et les directives PHP expliquées.

N’installez pas l’éditeur classique pour « faire disparaître » l’erreur : cela masque une API cassée, qui continuera de bloquer d’autres fonctions.

Récapitulatif cause → solution

CauseSymptômeSolution
Permaliens ou .htaccess404 sur /wp-json/Réglages > Permaliens > Enregistrer
URL en HTTPRequêtes bloquées ou mal dirigéesRéglages > Général en https://
Contenu mixteRessources HTTP bloquéesCorriger les URL en base
Pare-feu ou WAFPage de blocage, 403Règle d’exception sur /wp-json/
Extension ou thèmeHTML avec erreur PHPIsoler en préproduction, lire debug.log
Mémoire PHPRéponse interrompueAugmenter memory_limit
L'erreur peut-elle revenir après correction ?

Oui. Un fil de support WPFR note que le problème « peut revenir à tout moment », ce qui indique souvent une cause serveur ou de cache sous-jacente source : WPFR. Si elle revient, vérifiez le cache de l’hébergeur et les règles du pare-feu.

Mon contenu est-il perdu quand l'erreur apparaît ?

Non, tant que l’onglet reste ouvert. Copiez le contenu (ou passez par l’éditeur de code des blocs) avant de recharger la page.

Pourquoi /?rest_route=/ fonctionne-t-il et pas /wp-json/ ?

Parce que l’API elle-même fonctionne : le défaut vient de la réécriture d’URL (permaliens.htaccess ou configuration Nginx).

Le test « REST API » de Santé du site est en erreur, mais l'éditeur fonctionne. Que faire ?

Ce test produit des faux positifs. Fiez-vous à votre test réel de /wp-json/ et à l’enregistrement d’un brouillon.

Quand passer la main à un pro

Faites appel à un technicien si /wp-json/ reste en erreur après les étapes 2 et 3, si les logs serveur sont hors de votre portée, ou si l’erreur revient après chaque correction. Une règle de pare-feu à ajuster côté hébergeur ou une erreur PHP à tracer demande un accès que tout le monde n’a pas. C’est le genre de blocage qu’une maintenance régulière évite, notamment en testant chaque mise à jour avant de la déployer.

Ce problème, Peechy s'en occupe

Plutôt que de tout gérer seul, confiez votre site à une agence qui s'occupe de tout, hébergement, sécurité, maintenance et corrections. Encore plus simple en abonnement : on règle les soucis avant même que vous les remarquiez.

Confier mon site à Peechy