Pulizia di Transient e Revisioni nel Database: Stop ai Timeout dell’Editor

L’editor a blocchi di WordPress è uno strumento potente. Spesso però mostra fastidiosi errori di salvataggio durante la stesura dei post.

Il messaggio di aggiornamento fallito compare all’improvviso. In molti casi, questo blocco coincide con il noto errore risposta non è una risposta JSON valida.

La causa principale risiede spesso nel database intasato. Una corretta pulizia di transient e revisioni risolve questi blocchi alla radice.

Perché transient e revisioni rallentano l’editor a blocchi

L’editor a blocchi esegue frequenti chiamate REST API in background. Ogni modifica attiva salvataggi automatici continui.

Se il database è appesantito, le query dell’API superano il tempo limite. Il server risponde con un timeout fatale.

Il ciclo di vita dei dati transient scaduti

I transient sono dati temporanei salvati nella tabella delle opzioni. I plugin li usano per memorizzare cache di chiamate esterne.

Teoricamente i transient dovrebbero scadere ed eliminarsi da soli. Spesso questo meccanismo fallisce a causa di routine mal programmate.

I record orfani si accumulano nella tabella wp_options. Questa tabella viene caricata a ogni richiesta HTTP, rallentando l’intero sito.

L’impatto delle revisioni infinite sulla tabella wp_posts

WordPress crea una copia di sicurezza a ogni salvataggio. Non impone alcun limite predefinito al numero di versioni memorizzate.

Un articolo lungo può generare facilmente oltre cento revisioni. Questo moltiplica a dismisura le righe della tabella wp_posts.

Anche la tabella wp_postmeta si gonfia rapidamente. Le query di aggiornamento diventano pesanti e generano timeout.

Fase 1: Backup preventivo e analisi del database

Prima di toccare il database devi sempre creare una copia di sicurezza. Manipolare le tabelle comporta rischi concreti di corruzione dati.

Non procedere mai senza aver verificato l’integrità del tuo backup. Conserva sempre una copia del database anche sul tuo computer.

Creare un backup completo di sicurezza

  • Usa plugin affidabili come UpdraftPlus per un backup rapido del database.
  • In alternativa, esporta il database direttamente da phpMyAdmin o cPanel.
  • Verifica che il file scaricato sia integro e leggibile.

Individuare le dimensioni delle tabelle critiche

Accedi al pannello phpMyAdmin fornito dal tuo servizio hosting. Apri il database collegato all’installazione di WordPress.

Ordina le tabelle in base alla dimensione totale e al numero di righe. Presta particolare attenzione alle tabelle wp_options e wp_posts.

Se wp_options supera alcune decine di megabyte, l’intervento è indispensabile.

Fase 2: Procedure pratiche per ripulire il database

Puoi procedere alla pulizia utilizzando metodi differenti in base alle tue competenze tecniche.

Eseguire una periodica pulizia di transient e revisioni con WP-Optimize è semplice e sicuro.

Metodo 1: Pulizia con plugin grafici

  1. Installa e attiva il plugin gratuito WP-Optimize dalla bacheca.
  2. Naviga nella scheda dedicata al database nel menu laterale.
  3. Seleziona le opzioni per cancellare le revisioni e i transient scaduti.
  4. Fai clic sul pulsante per avviare l’ottimizzazione selezionata.

Metodo 2: Esecuzione rapida tramite WP-CLI

Se gestisci un server VPS o possiedi l’accesso SSH, usa WP-CLI. Questo strumento elimina i dati senza gravare sulle risorse del browser.

Per cancellare tutti i transient scaduti, digita il seguente comando nel terminale:

wp transient delete --expired

Per rimuovere le vecchie revisioni di tutti i post, esegui invece:

wp post delete $(wp post list --post_type='revision' --format=ids) --force

Metodo 3: Pulizia manuale tramite query SQL

Avviso operativo: Esegui le query SQL solo dopo aver completato un backup. Un errore di sintassi può cancellare contenuti vitali in modo irreversibile.

Accedi a phpMyAdmin e apri la scheda SQL. Per rimuovere i transient scaduti, esegui questa query:

DELETE FROM wp_options WHERE option_name LIKE ('_transient_%') OR option_name LIKE ('_site_transient_%');

Per rimuovere le revisioni e i relativi metadati orfani, esegui il comando:

DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision';

Fase 3: Prevenire il sovraccarico futuro

Risolto il problema contingente, devi evitare che il database si riempia nuovamente. Bastano due modifiche di configurazione ben mirate.

Questi accorgimenti manterranno l’editor a blocchi fluido e reattivo per sempre.

Limitare le revisioni nel file wp-config.php

Apri il file wp-config.php nella directory principale del sito. Aggiungi questa riga poco prima del messaggio finale di WordPress:

define('WP_POST_REVISIONS', 5);

In questo modo il sistema conserverà al massimo cinque revisioni per ciascun post. Le versioni più vecchie verranno rimosse automaticamente nel tempo.

Puoi anche allungare l’intervallo del salvataggio automatico inserendo:

define('AUTOSAVE_INTERVAL', 180);

Il salvataggio automatico scatterà ogni tre minuti, alleggerendo le chiamate API.

Adottare un sistema di Object Cache persistente

I transient lavorano molto meglio se memorizzati nella memoria volatile del server. Oltre alla pulizia di transient e revisioni, una memoria cache a livello di server alleggerisce le query.

Chiedi al tuo fornitore hosting se supporta Redis o Memcached. Una volta abilitato il modulo, attiva un plugin come Redis Object Cache.

I transient verranno spostati dalla tabella wp_options direttamente nella memoria RAM. Il database risulterà scarico e l’editor non andrà più in timeout.

Domande frequenti (FAQ)

Eliminare le revisioni comporta la perdita di contenuti pubblicati?

No, la rimozione delle revisioni cancella unicamente le versioni precedenti delle bozze. I tuoi articoli pubblicati rimarranno intatti e perfettamente visibili online.

Ogni quanto tempo serve la pulizia di transient e revisioni sul sito?

La periodicità ideale dipende dalla frequenza con cui pubblichi nuovi contenuti. Per un blog attivo consigliamo di eseguire l’operazione una volta al mese.

I transient si ricreano da soli dopo averli cancellati?

Sì, i plugin e il core di WordPress li ricreeranno al momento opportuno. La cancellazione rimuove solo i residui obsoleti che intasavano le tabelle.

Articoli simili