Come ottimizzare un database WordPress

Il database WordPress è il cuore del tuo sito. Ogni articolo, pagina, commento, impostazione e record dei plugin è archiviato in un database MySQL o MariaDB. Con il tempo, il database si carica di dati inutili che rallentano il sito. In questa guida ti mostriamo come pulire e ottimizzare il database WordPress per ottenere le massime prestazioni.
Perché l'ottimizzazione del database è importante?
Ogni volta che un visitatore apre una pagina, WordPress invia query al database per mostrare i contenuti. Se il database contiene migliaia di righe inutili, queste query richiedono più tempo, il che influisce direttamente sulla velocità di caricamento. Un database lento significa un sito lento, e un sito lento significa meno visitatori e un peggior posizionamento su Google.
Un tipico sito WordPress, dopo un anno di attività, può trascinarsi dietro decine di migliaia di revisioni di articoli inutili, un migliaio di transient, centinaia di commenti spam e tabelle frammentate. Tutto questo carica il database senza alcun beneficio.
Revisioni degli articoli - il killer silenzioso delle prestazioni
WordPress salva automaticamente una revisione ogni volta che salvi un articolo o una pagina. Se hai 100 articoli salvati 20 volte ciascuno, sono 2.000 righe nel database solo per le revisioni. La maggior parte di queste revisioni non ti servirà mai.
Eliminazione manuale delle revisioni: puoi usare una query SQL direttamente in phpMyAdmin. In cPanel hai accesso a phpMyAdmin:
DELETE FROM wp_posts WHERE post_type = 'revision';
Tuttavia, consigliamo l'approccio più sicuro basato sui plugin, perché l'eliminazione manuale può causare problemi se non sai esattamente cosa stai facendo.
Limitare le revisioni future: aggiungi la seguente riga a wp-config.php:
define('WP_POST_REVISIONS', 3);
In questo modo vengono mantenute solo le ultime 3 revisioni di ogni articolo. Puoi impostare 0 per disabilitare del tutto le revisioni, ma consigliamo almeno 2-3 in caso di modifiche accidentali.
Transient - dati temporanei che restano per sempre
I transient sono dati temporanei che WordPress e i plugin archiviano nel database con una data di scadenza. Il problema è che WordPress non elimina automaticamente i transient scaduti - rimangono nel database e occupano spazio. Alcuni plugin creano migliaia di transient che non scadono mai.
I transient sono archiviati nella tabella wp_options, una delle tabelle più importanti e lette più di frequente. Più righe inutili in wp_options significa un caricamento più lento di ogni pagina.
Per eliminare i transient scaduti puoi usare un comando WP-CLI:
wp transient delete --expired
Oppure usa un plugin che lo fa automaticamente a intervalli regolari.
Commenti spam ed eliminati
Se gestisci un blog con i commenti abilitati, i commenti spam si accumulano a un ritmo incredibile. Akismet e altri plugin anti-spam bloccano lo spam, ma i commenti eliminati e quelli spam restano nel database nelle cartelle "Spam" e "Cestino". WordPress elimina automaticamente i commenti nel cestino dopo 30 giorni, ma non elimina mai i commenti spam a meno che tu non lo faccia manualmente.
Svuota regolarmente le cartelle spam e cestino dei commenti. Se hai migliaia di commenti spam, eliminarli tramite il pannello di amministrazione di WordPress può essere lento - usa un plugin o una query SQL:
DELETE FROM wp_comments WHERE comment_approved = 'spam';
Ottimizzazione delle tabelle
Quando elimini dati da una tabella MySQL, lo spazio non viene liberato automaticamente. La tabella mantiene la stessa dimensione, semplicemente con dei "buchi" dove si trovavano i dati eliminati. Questo si chiama frammentazione. Il comando OPTIMIZE TABLE deframmenta la tabella e recupera spazio.
In phpMyAdmin, seleziona tutte le tabelle e scegli "Ottimizza tabella" dal menu a tendina. Oppure usa SQL:
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_comments, wp_commentmeta;
Consigliamo di eseguirlo una volta al mese o di usare un plugin che lo automatizzi.
WP-Optimize - soluzione tutto-in-uno
WP-Optimize è il plugin di ottimizzazione del database più popolare, con oltre 1 milione di installazioni attive. Ti permette di:
Pulire il database: con un clic elimina revisioni, transient, commenti spam, articoli nel cestino, pingback e trackback. Puoi scegliere cosa eliminare e visualizzare in anteprima quanto spazio verrà liberato prima dell'eliminazione.
Ottimizzare le tabelle: esegue automaticamente OPTIMIZE TABLE su tutte le tabelle WordPress. Mostra il livello di frammentazione di ogni tabella.
Pianificare una pulizia automatica: imposta una pulizia automatica giornaliera, settimanale o mensile. Il plugin eliminerà i dati inutili secondo la pianificazione.
La versione gratuita copre tutte le funzioni di base. La versione premium aggiunge funzionalità avanzate come la compressione delle immagini e il caching delle pagine.
Advanced Database Cleaner - per utenti avanzati
Advanced Database Cleaner è un ottimo plugin che va un passo oltre WP-Optimize. Il suo punto di forza principale è il rilevamento delle tabelle "orfane" - tabelle rimaste nel database dopo aver disinstallato un plugin. Molti plugin creano le proprie tabelle durante l'installazione ma non le rimuovono alla disinstallazione.
Il plugin mostra un elenco di tutte le tabelle nel database e segnala quali appartengono al core di WordPress, quali ai plugin attivi e quali sono rimaste senza proprietario. Puoi eliminare in sicurezza le tabelle orfane e recuperare spazio.
Rileva inoltre le righe "orfane" nella tabella wp_options - impostazioni di plugin non più installati. Questa è una causa frequente di una tabella wp_options enorme.
La tabella wp_options - la causa più comune di lentezza
La tabella wp_options è particolarmente critica perché viene caricata a ogni richiesta. WordPress carica in memoria tutte le righe in cui il campo autoload è impostato su "yes" a ogni caricamento di pagina. Se hai centinaia di kilobyte di opzioni con autoload, ciò rallenta direttamente ogni pagina.
Controlla la dimensione dei dati con autoload tramite una query SQL:
SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload = 'yes';
Se il risultato supera 1MB, hai un problema. Esamina le opzioni con autoload più grandi e disabilita l'autoload per quelle che non hanno bisogno di essere caricate su ogni pagina.
Backup prima dell'ottimizzazione
Prima di qualsiasi ottimizzazione del database, esegui un backup. È il passaggio più importante che molti saltano. Se qualcosa va storto durante l'ottimizzazione, un backup ti consente di ripristinare il sito allo stato precedente in pochi minuti.
Usa un plugin come UpdraftPlus per il backup automatico del database, oppure esporta il database tramite phpMyAdmin. BeoHosting esegue anche backup giornalieri del tuo sito su tutti i piani di hosting, ma è sempre meglio avere anche un proprio backup prima di modifiche importanti.
Programma di manutenzione consigliato
Settimanalmente: elimina i commenti spam e gli articoli nel cestino.
Mensilmente: elimina le revisioni (mantieni le ultime 3), pulisci i transient, ottimizza le tabelle.
Trimestralmente: verifica la presenza di tabelle e opzioni orfane, analizza la dimensione della tabella wp_options, esamina le prestazioni del database.
Con una manutenzione regolare, il tuo database WordPress resterà veloce ed efficiente, e il sito si caricherà molto più rapidamente. Un database ottimizzato è uno dei modi più semplici per migliorare le prestazioni del sito a costo zero.
BeoHosting Team
10+ anni di esperienza — Specialisti di web hosting e infrastrutture
- Web Hosting
- WordPress Hosting
- VPS
- Dedicated Serveri
- Domeni
- SSL
- cPanel
- LiteSpeed
- Linux administracija
- DNS
Ultimo aggiornamento: