Il database MySQL è la spina dorsale di WordPress: ogni contenuto, impostazione e dato utente risiede al suo interno. Con il tempo si accumula inevitabilmente un “gonfiore” di dati inutili — revisioni, transient scaduti, commenti spam, dati orfani di plugin disinstallati — che rallenta le query e aumenta il consumo di risorse server. In questa guida trovi tutte le tecniche per tenere il database WordPress snello ed efficiente nel 2026.
12
WP-Optimize
Redis / Memcached
InnoDB
Mensile
Media
La Struttura del Database WordPress
WordPress usa MySQL (o MariaDB, compatibile) con 12 tabelle principali. Le più rilevanti per le performance:
- wp_posts — tutti i post, pagine, prodotti WooCommerce e revisioni. Tende a crescere enormemente su siti con molti contenuti.
- wp_postmeta — metadati dei post. Su WooCommerce può raggiungere milioni di righe.
- wp_options — impostazioni sito, opzioni plugin, transient. La colonna autoload è critica: i dati con autoload=yes vengono caricati ad ogni richiesta PHP.
- wp_usermeta — metadati utenti; si gonfia su siti con molti iscritti.
I 5 Principali Problemi di Performance
1. Revisioni degli Articoli
Ogni modifica a un post genera una revisione nella wp_posts. Un sito attivo può accumulare centinaia di revisioni per articolo. Soluzione: limita le revisioni future aggiungendo define('WP_POST_REVISIONS', 5); al wp-config.php. Rimuovi quelle esistenti con WP-Optimize o phpMyAdmin.
2. Transient Scaduti nella wp_options
I transient sono dati temporanei usati dai plugin. Teoricamente si eliminano alla scadenza, ma si accumulano spesso nella wp_options rallentando ogni richiesta. Se hai Redis come object cache, i transient vengono automaticamente memorizzati in Redis invece che nel database, eliminando il problema alla radice.
3. Dati di Autoload Eccessivi
Verifica con la query SQL: SELECT SUM(LENGTH(option_value)) FROM wp_options WHERE autoload='yes';. Se supera 800KB, ogni page load porta un overhead significativo. Disabilita i plugin non necessari e controlla la documentazione di quelli pesanti.
4. Tabelle con Engine MyISAM
InnoDB è il default di WordPress dal 2015, ma plugin datati possono creare tabelle MyISAM. Differenza cruciale: MyISAM blocca l’intera tabella durante le scritture; InnoDB blocca solo la singola riga. Su WooCommerce ad alto traffico, MyISAM causa colli di bottiglia gravi. Verifica in phpMyAdmin e converti con ALTER TABLE nome_tabella ENGINE=InnoDB;.
5. Dati Orfani
Postmeta senza post associato, termini senza contenuto, dati di plugin disinstallati. Occupano spazio e rallentano le JOIN. WP-Optimize include la pulizia dei dati orfani; in alternativa, query SQL manuali su phpMyAdmin permettono una pulizia chirurgica.
Come Ottimizzare: WP-Optimize
WP-Optimize — Funzionalità incluse
- Rimozione revisioni (mantieni le N più recenti)
- Pulizia commenti spam e nel cestino
- Rimozione transient scaduti
- OPTIMIZE TABLE per recuperare spazio frammentato
- Pulizia dati orfani di postmeta e usermeta
- Pianificazione automatica settimanale o mensile
Backup prima di tutto: qualsiasi operazione di pulizia del database deve essere preceduta da un backup completo. WP-Optimize lo ricorda ad ogni operazione; non ignorare questo avviso.
Object Caching: Redis per Eliminare le Query Ripetute
Redis memorizza in RAM i risultati delle query MySQL più frequenti: invece di eseguire la stessa query 50 volte per pagina (comune su WooCommerce), il risultato viene letto dalla memoria in microsecondi. Riduzione tipica del carico database: 40–70% su siti WooCommerce.
| Provider con Redis preconfigurato | |
|---|---|
| Kinsta | Incluso + APM per query monitoring |
| WP Engine | Object Cache Pro incluso |
| Cloudways | Redis su tutti i piani managed |
| SiteGround | GoGeek+ e Cloud |
| Hostinger | Business e piani Cloud |
Identificare Query Lente: Slow Query Log
Per problemi non risolvibili con la pulizia standard, il slow query log di MySQL registra tutte le query che superano una soglia configurabile. Su VPS, si abilita in my.cnf con slow_query_log = ON e long_query_time = 0.2. Su hosting managed, il provider lo attiva su richiesta. L’istruzione EXPLAIN di MySQL rivela poi se ci sono full table scan o indici mancanti.
Piano di Manutenzione Database
La manutenzione del database non è un’operazione una tantum ma una routine periodica. Con WP-Optimize pianifica: settimanale (transient, commenti spam, cestino) e mensile (revisioni eccessive, ottimizzazione tabelle, dati orfani). Prima di ogni aggiornamento major: backup completo del database.
Il database WordPress si gonfia inevitabilmente nel tempo: revisioni, transient e dati orfani accumulati rallentano ogni query. WP-Optimize con pianificazione mensile automatica risolve il 90% dei casi senza richiedere conoscenze SQL.
Per siti WooCommerce o ad alto traffico, Redis è l’intervento più impattante: riduce il carico database del 40–70% memorizzando i risultati in RAM. Kinsta include Redis e APM per il monitoring delle query lente già nel piano base.
Domande Frequenti (FAQ)
Con quale frequenza ottimizzare il database WordPress?
Per un blog con pubblicazioni regolari, una pulizia mensile con WP-Optimize è sufficiente. Per un e-commerce WooCommerce, la pulizia settimanale automatica (transient, sessioni scadute, revisioni) è raccomandata. La routine automatica di WP-Optimize semplifica la gestione senza intervento manuale.
È sicuro eliminare le revisioni degli articoli in WordPress?
Sì, le revisioni sono copie storiche e non influiscono sul contenuto pubblicato. Puoi limitare le revisioni future con define('WP_POST_REVISIONS', 5); in wp-config.php. Fai sempre un backup prima di eliminarle in blocco dal database.
InnoDB o MyISAM: quale engine per WordPress?
InnoDB in ogni caso. WordPress usa InnoDB di default dal 2015. MyISAM blocca l’intera tabella durante le scritture: su siti ad alto traffico causa colli di bottiglia gravi. Se hai tabelle MyISAM verificabile in phpMyAdmin, convertile con ALTER TABLE nome_tabella ENGINE=InnoDB;.
Redis migliora davvero le performance del database WordPress?
Sì, in modo significativo per siti dinamici. Redis memorizza in RAM i risultati delle query più frequenti: invece di eseguire la stessa query 50 volte per pagina, il risultato viene letto dalla memoria in microsecondi. Su WooCommerce, la riduzione del carico database è tipicamente del 40–70%.
Cosa sono i transient WordPress e perché rallentano il sito?
I transient sono dati temporanei memorizzati dai plugin nella wp_options con una data di scadenza. Si accumulano spesso senza essere rimossi. Poiché la wp_options viene letta integralmente ad ogni richiesta PHP, migliaia di transient scaduti rallentano ogni pagina. Con Redis attivo vengono memorizzati in RAM invece che nel database, eliminando il problema.