Questa guida accompagna i proprietari di siti WordPress, gli sviluppatori e il personale di supporto dell’hosting nella diagnosi e nella correzione di un errore “risposta JSON valida”.
- Si applica a: WordPress 6.x (Modifica completa del sito abilitata)
- Testo dell’errore:
Updating failed. The response is not a valid JSON response.
Riepilogo rapido di ciò che si rompe
- WordPress invia una richiesta REST API quando fai clic su Salva su una parte del modello:
POST /wp-json/wp/v2/template-parts/<ID>
- Il server restituisce qualcosa che NON è JSON valido (vuoto, HTML, 403, 500, ecc.).
- L’Editor del sito mostra il pop-up di errore generico.
Dato che il guasto è sul lato server, nessun aggiornamento sul lato client potrà risolverlo: devi identificare e rimuovere il blocco a livello server introdotto durante la migrazione.
I sintomi che potresti riscontrare
Sintomo | Dettagli |
---|---|
Errore modale | “Aggiornamento fallito. La risposta non è una risposta JSON valida”. |
Plugin esclusi | Disattivare tutti i plugin non cambia il risultato. |
Front-end inalterato | Il sito live viene visualizzato correttamente; solo il salvataggio nell’editor del sito non funziona. |
Avviato dopo la migrazione | Il sito funzionava in fase di allestimento, ma si è rotto nel momento in cui è diventato operativo. |
Controlli di base (già eseguiti)
Si tratta di colpe comuni che sono già state escluse. Ripetili se stai lavorando da zero.
- Conflitto di plugin: disattiva tutti i plugin.
- Site Health – Tools → Site Health non mostra errori critici relativi all’API REST.
- Coerenza degli URL – Impostazioni → Generale → Sia l’indirizzo di WordPress che quello del sito utilizzano https e un dominio identico.
- Permalinks a filo – Impostazioni → Permalinks → Salva le modifiche (rigenera
.htaccess
). - Cache purge – cancella tutti i livelli di cache del server / plugin / CDN.
Se l’errore persiste, continua con la sezione successiva.
Approfondimento passo dopo passo
Suggerimento: Esegui ogni passaggio e poi ripeti il salvataggio. Fermati quando l’errore scompare.
1 Raccogli i log degli errori del server (i più interessanti)
Chiedi al tuo host (ad esempio, GoDaddy) le voci del log degli errori PHP corrispondenti all’ora esatta in cui hai cliccato su Salva. Fornisci un timestamp (includi il fuso orario). Cerca:
- Errori fatali o avvertimenti PHP nelle richieste di
/wp-json/
mod_security
/ Regole WAF che bloccano gli endpoint REST- Messaggi di autorizzazione negata o di file mancante
2 Abilita la registrazione del debug di WP locale
Se puoi modificare wp-config.php
, aggiungi sopra la riga che recita / Questo è tutto, smetti di modificare /:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Riproduci il guasto, quindi scarica e ispeziona /wp-content/debug.log
.
3 Verifica direttamente l’endpoint dell’API REST
Esegui (o chiedi al tuo host di eseguire): curl -I https://your-domain.com/wp-json/wp/v2/
Un sito sano restituisce intestazioni HTTP 200 e JSON. Un 403/500 implica un blocco del server o del firewall.
4 Controllare i permessi dei file e delle directory
Gli strumenti di migrazione a volte restringono troppo le autorizzazioni.
- Elenchi: 755
- File: 644 Assicurati che
/wp-content/themes/
e/wp-content/uploads/
seguano queste regole.
5 Confronta .htaccess
(o la configurazione di nginx)
Cerca le regole che inavvertitamente bloccano /wp-json/
o lo riscrivono. Se è su Apache, rinomina temporaneamente .htaccess
; se WordPress si salva, il colpevole è una regola interna.
6 Disattivare temporaneamente i moduli di sicurezza
Molti host eseguono mod_security
o un Web Application Firewall (WAF).
- Chiedi all’host di disattivare mod_security per il tuo dominio e ripeti il test.
- Se l’errore scompare, inserisci nella whitelist la regola incriminata o modifica il firewall.
7 Controllo dell’integrità del database (raro, ma possibile)
Le parti del template vivono in wp_posts
con post_type = 'wp_template_part'
.
- Individua la riga.
Se è danneggiata, eliminandola WordPress può ricreare il modello e cancellare l’errore.
7. Rimuovi tutte le emoji e i simboli speciali
In alcuni host potresti riscontrare l’errore se hai utilizzato emoji o simboli speciali.
Script di escalation per il tuo provider di hosting
Copia-incolla quanto segue nella chat/ticket di assistenza:
Abbiamo migrato il nostro sito WordPress a tema bloccato il [DATA]. Subito dopo, solo il modello Site Editors non riesce a essere salvato con l’errore: “Aggiornamento fallito. La risposta non è una risposta JSON valida”. I conflitti tra i plugin, il flush dei permalink e lo stato di salute del sito sono tutti a posto. Controlla i log degli errori PHP del server e le regole WAF/mod_security che potrebbero bloccare
POST /wp-json/wp/v2/template-parts/*
. Verifica anche i permessi dei file (uploads/temi) e che l’API REST sia raggiungibile. Il problema non esisteva prima della migrazione, quindi sospettiamo un blocco a livello di server o una configurazione errata.
Prevenire il ripetersi di migrazioni future
Lista di controllo Voce | Perché è utile |
Usa una versione aggiornata di PHP (≥ 8.1) | Le versioni precedenti presentano bug REST risolti nelle versioni successive. |
Migra tramite un plugin (ad esempio Duplicator) o SSH rsync, non tramite i pulsanti “clone” dell’host. | Assicura la ricerca e la sostituzione completa del DB e preserva le autorizzazioni. |
Verifica gli endpoint delle API REST prima e dopo il cutover DNS | Individua tempestivamente i problemi JSON. |
Conserva i log del server per 48 ore dopo l’avvio dell’attività. | Permette un rollback rapido o una correzione mirata. |
Risorse aggiuntive
- Manuale di WordPress: Riferimento agli errori dell’API REST
- Core ticket #52527 – L’errore di risposta JSON generico manca di contesto (perché il messaggio è così vago)
- Aiuto di GoDaddy: Visualizza i log degli errori in cPanel
Sei ancora bloccato?
Se hai seguito tutti i passaggi e WordPress ancora non si salva e il tuo host non riesce a identificare la richiesta bloccata, prendi in considerazione l’idea di farlo:
- Passare temporaneamente a un tema di blocco predefinito (Twenty Twenty-Four) per verificare se il problema è specifico del tema.
- Coinvolgere uno sviluppatore WordPress per ispezionare il server in tempo reale.
Lascia un commento