Come ottimizzare il database di WordPress per migliorare le prestazioni di un sito web

Credo che saremo più o meno tutti d’accordo nel dire che uno dei componenti più discussi di WordPress, e anche uno dei più complicati, sia proprio il database.

Se hai un sito realizzato con WordPress online già da un po’, ti sarai accorto che, con il passare del tempo, diventa sempre più lento.

Man mano che installi nuovi plugin e aggiungi nuovi articoli, immagini, pagine, link e man mano che gli utenti scrivono nuovi commenti, il database cresce sempre di più e diventa sempre più pesante.

È per questo motivo che ottimizzare il database è molto importante.

In questo articolo vedremo vari metodi per snellire il database di un sito WordPress, sia attraverso l’utilizzo di funzionalità di intrinseche di MySQL, sia attraverso l’uso di plugin.

Vedrai che, dopo aver eseguito tutti o alcuni dei passaggi indicati in questo articolo, il tuo database diventerà molto più snello e potrai ottenere i seguenti vantaggi:

  • le pagine del sito verranno caricate più velocemente
  • le dimensioni del tuo database saranno ridotte, di conseguenza i tuoi backup saranno più veloci e occuperanno meno spazio

Prima di procedere con l’ottimizzazione del database, fai un backup per non rischiare di fare danni.

Esistono diversi modi per effettuare un backup completo di un sito in WordPress.

All’interno del mio articolo sulla sicurezza WordPress dovresti trovare sufficienti informazioni per poter procedere da solo, ma se dovessi aver bisogno di ulteriori informazioni scrivimi nei commenti e provvederò a scrivere un articolo dedicato solo a questo tema.

Impariamo a conoscere il database di WordPress

Forse ti starai chiedendo:

E’ veramente necessario che io conosca com’è fatto il database di WordPress per poterlo ottimizzare?

La risposta, in teoria, è no.

Tuttavia, avere un’idea anche molto sommaria di come è strutturato il DB, non solo ti servirà a capire meglio il funzionamento generale di WP, ma ti aiuterà anche a capire cosa stai facendo mentre ottimizzi il sito. Inoltre, riuscirai a verificare se il tuo sito ha davvero bisogno di un’ottimizzazione.

WordPress ha (per lo meno fino all’ultima versione, che al momento è la 4.9) 11 tabelle principali. Queste tabelle vengono create appena viene completata l’installazione (in particolare nel momento in cui si esegue l’operazione spiegata nel punto 5 del mio articolo “Installare WordPress Manualmente“) e contengono inizialmente pochi dati essenziali.

Queste 11 tabelle sono:

  • wp_commentmeta – serve per memorizzare alcune meta informazioni relative ai commenti
  • wp_comments – contiene i testi dei commenti e altre informazioni associate ad essi, come ad esempio la data in cui è stato scritto il commento, l’email dell’autore, lo stato di approvazione del commento, ecc.
  • wp_links – memorizza i blogroll links (che non approfondiremo in quanto è una funzionalità ormai deprecata)
  • wp_options – memorizza le informazioni relative alle impostazioni principali, come ad esempio il nome del sito, l’indirizzo web, l’email dell’amministratore del sito e tutte le configurazioni impostate attraverso la sezione “Impostazioni” del backend
  • wp_postmeta – serve per memorizzare le meta informazioni relative ai post
  • wp_posts – memorizza le informazioni principali relative ai post, alle pagine e ai custom post, come ad esempio il contenuto di un articolo/pagina, il titolo, la data in cui è stato scritto e così via
  • wp_terms – contiene i tag e le categorie per i post e i link
  • wp_term_relationships – contiene le informazioni relative alle associazioni e le relazioni tra i post, le categorie e i tag, i link e le categorie dei link
  • wp_term_taxonomy – memorizza la descrizione della tassonomia (le tassonomie sono, ad esempio, le categorie, i link e i tag) che sono presenti all’interno della tabella wp_terms
  • wp_usermeta – contiene le meta informazioni sugli utenti
  • wp_users – contiene le informazioni principali sugli utenti registrati all’interno del sito, come ad esempio lo username, l’email, la data in cui si sono registrati, ecc.

Per ulteriori approfondimenti, come sempre, è possibile consultare il Codex di WordPress.

Alcuni punti di attenzione:

In questo esempio, il prefisso delle tue tabelle è “wp_”. Questo è un valore predefinito, ma non è obbligatorio. E’ possibile modificarlo (anzi, è fortemente consigliato) cambiando un parametro all’interno del file wp-config.php. Anche su questo puoi trovare ulteriori informazioni all’interno del mio articolo sulla sicurezza WordPress.

In realtà, quasi tutti i siti hanno un numero di tabelle molto più elevato. Questo avviene perché molto spesso anche i plugin e i temi, nel momento in cui vengono installati, creano delle cartelle aggiuntive in cui memorizzano i dati necessari per poter funzionare correttamente (impostazioni e altri dati).

Perfetto, ora siamo davvero pronti per cominciare. Mettiamoci al lavoro!

Se non vuoi installare ulteriori plugin, prova prima con phpMyAdmin.

Uno dei modi più semplici ed efficaci per gestire il database è quello di avvalersi del phpMyAdmin, un’applicazione web che consente di gestire un database MySQL attraverso un qualsiasi browser. Generalmente l’accesso ad esso è molto semplice, ma dipende dall’hosting provider che stiamo utilizzando. Ad esempio, gli hosting provider come Siteground, Hostgator, Bluehost, FastComet, ecc., che forniscono un cPanel, presentano un’icona dedicata al phpMyAdmin e consentono l’accesso diretto, senza bisogno di effettuare un secondo login per entrare nel phpMyAdmin.

Se invece il tuo hosting provider non fornisce il cPanel ci saranno sicuramente altri modi per accedere al phpMyAdmin. Nel caso di Aruba, ad esempio, è necessario andare su mysql.aruba.it ed inserire username e password del proprio DB (di solito le credenziali vengono fornite via email entro 24 ore dopo la sottoscrizione del servizio).

Una volta entrato nel phpMyAdmin e selezionato il DB, ti troverai di fronte ad una schermata simile a questa:

ottimizzare database wordpress

N.B.: quello che ti sto mostrando in questo screenshot è un database di prova, appena creato, per un sito web che cancellerò non appena finirò di scrivere questo articolo, pertanto non mi sono preoccupato di cambiare il prefisso delle tabelle (“wp_”). Tuttavia, se stai installando un nuovo sito, ti suggerisco vivamente di modificarlo, possibilmente con qualcosa di meno intuitivo, per motivi di sicurezza (puoi trovare maggiori informazioni in questo mio articolo).

Tornando a noi:

A destra, noterai due colonne importanti: Size e Overhead.

In basso, nell’ultima riga, potrai notare che il database in tutto occupa 976KB e l’overhead 0 bytes. Questo accade perché il sito che sto utilizzando per questo esempio è stato appena creato, ma normalmente la colonna Overhead non è mai vuota. Contiene delle informazioni temporanee che, con il tempo, possono occupare parecchia memoria. Di tanto in tanto sarebbe meglio cancellarle, perché se l’overhead diventa troppo grande potrebbe influenzare le prestazioni del DB.

Un modo per fare questo (insieme ad un certo numero di altre operazioni, come la compressione, il resizing, il “resequencing”, ecc.) è quello di utilizzare la funzione di ottimizzazione integrata nel phpMyAdmin.

Ecco i passaggi da eseguire:

  1. Clicca su “Check All”, in basso
  2. Seleziona dal menu a tendina la voce “Optimize Table”

MySQL ti darà un messaggio di conferma alla fine della procedura.

Tieni sotto controllo le revisioni, per evitare che il database cresca a dismisura

Il sistema di revisioni di WordPress è molto utile.

Man mano che modifichi e aggiorni aggiorni i tuoi articoli e le tue pagine, WP salva nel database le varie revisioni intermedie. E lo fa sia quando salvi manualmente le ultime modifiche cliccando sul tasto “aggiorna”, si di tanto in tanto, in automatico.  Questo consente:

  • letteralmente di “navigare” avanti e indietro tra le varie revisioni per confrontarle
  • ripristinare una versione precedente, qualora fosse necessario (vedi screenshot)

WordPress non limita il numero di revisioni che vengono salvate, pertanto il rischio è quello di ritrovarsi con centinaia di vecchie revisioni e con un DB che cresce a dismisura.

Non sto dicendo che il sistema di revisioni di WordPress sia inutile.

Molte volte, soprattutto all’inizio, mi è capitato di dover ripristinare una revisione precedente perché avevo fatto qualche casino sperimentando nuovi plugin e nuove funzionalità.

Quello che però potrebbe essere utile, è limitare il numero di revisioni che vengono conservate, all’interno del DB. Invece che conservarne un numero illimitato, ci si può limitare a mantenere, ad esempio, solo le ultime 5. Questo si può fare semplicemente aggiungendo nel wp-config.php l’istruzione:

define( 'WP_POST_REVISIONS', 5 );

Se poi si vogliono disabilitare totalmente le revisioni, l’istruzione è:

define( 'WP_POST_REVISIONS', false );

Ma se non vuoi rischiare di chiudere accidentalmente il browser e perdere tutte le tue ultime modifiche, ti consiglio vivamente di disabilitarle totalmente.

Cancellare le vecchie revisioni

Anche se la prima delle due istruzioni di cui sopra consente di limitare il numero massimo di vecchie revisioni conservate nel database, non consente di cancellare quelle vecchie. Supponiamo che tu abbia uno o più articoli con una ventina di revisioni o anche di più. L’istruzione che abbiamo appena visto non agisce sul passato, quindi il numero attuale di revisioni non diminuirà. L’istruzione serve solo per far sì che i nuovi articoli e le nuove pagine che pubblicherai in futuro mantengano, di volta in volta, al massimo le ultime 5 revisioni.

Per cancellare le vecchie revisioni si può ricorrere a diversi plugin. Io, ad esempio, faccio uso del plugin Optimize Database After Deleting Revisions.

Il plugin può essere installato direttamente dal backend di WordPress e, una volta attivato, aggiunge una voce nel menu “Impostazioni”. Per cancellare le vecchie revisioni basterà quindi andare su “Impostazioni / Ottimizza il Database”, controllare accuratamente le opzioni per decidere su quali tipi di post effettuare l’operazione (custom post, articoli, pagine, elementi del portfolio, ecc.).

Dopodiché, bisognerà selezionare le tabelle del database alle quali applicare l’ottimizzazione, salvare le impostazioni e cliccare su “Vai all’ottimizzatore”.

A questo punto, il plugin ti farà vedere un riepilogo delle impostazioni e un sommario di tutte le operazioni che effettuerà.

Ti basterà cliccare su “Inizia l’ottimizzazione” per avviare il processo di ottimizzazione ed eliminazione delle vecchie revisioni.

Conclusioni

Nel mio caso, con questi pochi, semplici passaggi, sono bastati ad ottenere ottimi risultati e migliorare sensibilmente le prestazioni del mio sito.

Naturalmente esistono numerose altre operazioni che si possono fare per ottimizzare il database, come ad esempio controllare i commenti spam e ripulirli di tanto in tanto, svuotare il cestino dei post, delle pagine e dei custom post, cancellare i “transient”, eliminare i dati lasciati dai plugin e i temi che sono stati cancellati e utilizzare altri plugin come WP-Optimize.

Pertanto, per qualsiasi dubbio, informazione o per una consulenza specifica sia sull’ottimizzazione del database che sull’ottimizzazione delle prestazioni del tuo sito web in generale, non esitare a contattarmi attraverso il form presente nella pagina contatti.

Ad ogni modo, se ti è piaciuto questo articolo, come al solito ti invito a condividerlo sulla tua bacheca o con chiunque pensi che possa essere interessato all’argomento.

Ciao,

Massimiliano

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Fornisci il tuo contributo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *