Nel precedente articolo abbiamo parlato di come ottimizzare wordpress tramite .htaccess e Robots.txt. Quest’oggi voglio continuare con le ottimizzazioni portandole ad un livello più avanzato: Ottimizzare il database di WordPress. Infatti questo CMS per gestire articoli, pagine, utenti, commenti e tutto ciò che è connesso al sito web, ha bisogno di un database ove creare tabelle per ogni categoria: Una per gli utenti, una per i post, una per i commenti, molte per i plugin che ne creano in continuazione e così via. Ovviamente, poi queste tabelle inficeranno sulla velocità del sito web, in quanto aumenteranno le richieste ed il database sarà più pesante del solito.
Prima di continuare, se sei alle prime armi con i siti web, ti consiglierei di leggere l’articolo di HTML.it sull’utilizzo di “phpMyAdmin”, in quanto sarà proprio questo software che utilizzeremo per ottimizzare il database di WordPress. Pariamo con la guida!
Introduzione
Backup del database
Come di consueto in ogni mia guida, la prima cosa che consiglio è sempre quella di fare un backup di ciò che si andrà a modificare. In questo caso ci sono due metodi per fare il backup:
Metodo automatico: Accesi al tuo pannello di controllo del sito web (nel mio caso ho “Cpanel”, se hai qualcosa di diverso, commenta, sarò lieto di aiutarti) e clicca su “Backup” o “Backup guidato”.
Poi basta cliccare sul nome del database sotto “Scarica un backup di database mySQL” e partità così il tuo download!
Metodo manuale: Questo metodo è abbastanza semplice, ma fai comunque molta attenzione.
Accedi al “phpMyAdmin“, clicca sul database e clicca poi su “Esporta“.
Cosa faremo
Prima di iniziare del tutto, vorrei fare un doveroso accenno a cosa di preciso andremo a fare. Almeno per capire il motivo per cui lo facciamo. Andremo ad eliminare tutti i contenuti inutili al funzionamento di WordPress. Per “inutili” intendo i “_transients” ovvero le tabelle create dai vari plugin, articoli eccetera che contengono voci inutilizzate. Quindi superflue.
Inoltre, ci concentreremo anche sull’eliminazione delle possibili revisioni. Infatti, ogni qualvolta modificheremo un articolo in WordPress, quest’ultimo creerà una tabella contenente la revisione che abbiamo fatto. A noi non serve ciò. Poi elimineremo i commenti spam, se ne avete, e tutte le voci che non hanno nulla a che vedere con la tabella in sé.
In questo modo facciamo una pulizia completa del database, ottimizzandolo al meglio. Per fare ciò, cliccherai solo sulla tabella con il nome uguale a quello da me descritto, tranne l’inizio, che magari avrai cambiato nell’installazione di WordPress per una buona prassi a livello di sicurezza. Quindi, una volta cliccato sulla tabella, cliccherai su “SQL”, in alto al centro e farai copia-incolla delle stringhe che ti verranno date.
Ottimizziamo il database di WordPress
Procedura manuale
La procedura che andrà a seguire, sarà una procedura completamente manuale. Se non volete testarla, ma preferireste dei plugin per l’ottimizzazione del vostro database, scrollate la pagina fino a al paragrafo inerente i plugin stessi.
Tabella inerente agli articoli, “wp_post”
In questa tabella troveremo sia “_transients” che “revisioni” inutili. Quindi, per rimuovere i transients, copia e incolla questo codice:
1 |
SELECT option_name FROM wp_options WHERE option_name LIKE '_transient_timeout%' AND option_value < now(); |
Mentre per le revisioni, la stringa da copiare è questa:
1 |
DELETE FROM wp_posts WHERE post_type = 'revision'; |
Una volta copia-incollato la stringa, clicca su “Esegui”.
Tabella inerente alle categorie e tag, “wp_postmeta”
In questa tabella elimineremo i “slug” non più utilizzati, ovvero quelli creati da tag e categorie (es. categoria: wordpress, slug: wp); poi elimineremo le modifiche precedenti di un articolo (es. un articolo ha 3 revisioni, le prime 2 verranno eliminate); infine elimineremo le modifiche al blocco (le bozze eccetera). Ecco le stringhe da copia-incollare:
1 2 3 |
DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug'; DELETE FROM wp_postmeta WHERE meta_key = '_edit_last'; DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock'; |
Tabella inerente ai commenti, “wp_comments”
In questa tabella, invece, elimineremo solo i commenti considerati “spam”. La stringa da copia-incollare è questa:
1 |
DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam'; |
Tabella inerente alle voci nei commenti, “wp_commentmeta”
In questa tabella elimineremo solo ciò che non centra nulla con quest’ultima. La stringa da copia-incollare è:
1 |
DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments); |
Tabella inerente alle impostazioni di WordPress, “wp_options”
Questa è la tabella che di sicuro ha un bel po’ di cose inutili. Infatti ci concentreremo sull’eliminazione dei “transients” riguardanti i feed rss, timout del browser eccetera. Le stringhe da copia-incollare sono:
1 2 3 4 5 6 |
DELETE FROM wp_options WHERE option_name LIKE '_transient_feed_%'; DELETE FROM wp_options WHERE option_name LIKE '_transient_rss_%'; DELETE FROM wp_options WHERE option_name LIKE '_transient_timeout_feed_%'; DELETE FROM wp_options WHERE option_name LIKE '_transient_timeout_rss%'; DELETE FROM wp_options WHERE option_name LIKE '_site_transient_timeout_browser_%'; DELETE FROM wp_options WHERE option_name LIKE '_site_transient_browser_%'; |
Ottimizziamo il database con i plugin
Se non volete metter mano al codice per non rischiare problemi di sorta, vi sono tanti plugin che potete utilizzare per ottimizzare il vostro database.
Plugin Garbage Collector
Questo plugin ti scannerizza tutto il database di WordPress, colorando le tabelle trovate a seconda del grado di utilità di queste ultime. Le colorazioni si differenziano in:
- Verde: Tabelle “OK”, ovvero quelle di plugin attivati e funzionanti;
- Rosso: Tabelle di plugin non più usati, eliminati e inutili*.
- Blu: Tabelle di plugin ancora installati, ma disattivati. Prima di cancellare queste tabelle, eliminate il plugin nella sezione apposita.
*Attenzione: Prima di eliminare tutte le tabelle “rosse”, analizzate voi stessi se sono di plugin che usate ancora oppure no. Infatti, a volte, mi sono ritrovato con delle tabelle “rosse” che, invece, erano di plugin installati e funzionanti (quindi davvero leggeri).
WP-Optimize
Questo è un altro plugin che ho avuto il piacere di usare tempo fa per ottimizzare il database di un cliente. È il componente aggiuntivo che praticamente fa le stesse identiche cose descritte nella pulizia manuale del database. Come per il primo, anche questo è un plugin davvero semplice da usare
Una volta installato, infatti, quest’ultimo avvia una scansione di tutto il database, colorando le varie voci con colori “rosso” e “nero”. Qui, però, il rosso deve essere visto come un “attenzione”, ovvero ti dice che potrebbero esserci problemi se eliminerete X tabelle. Fate molta attenzione prima di procedere con la pulizia.
La pagina dedicata a WP-Optimize, è divisa in:
- Optimizer, con la versione del sistema operativo ed il modello del Database: Qui potrete selezionare cosa rimuovere e procedere con l’eliminazione di ciò che avete selezionato;
- Tables: Dove troverete tutte le tabelle esistenti nel database, con informazioni riguardanti queste ultime;
- Settings: Qui potrete configurare al meglio WP-Optimize, in modo da eliminare i dati vecchi di X settimane e selezionare l’azione da compiere per trackback e commenti. Inoltre, potrete configurare l’Auto-clean optimize, ovvero l’ottimizzazione del database automatica ogni giorno, ogni settimana od ogni mese.
Inoltre, questo plugin potrebbe essere configurato in modo tale da fare una pulizia automatica ogni giorno, ogni settimana od ogni mese. Sta a voi scegliere, ovviamente.
Conclusione
Bene, oggi ti ho spiegato come pulire per bene il tuo database! Di sicuro avrai notato qualche miglioramento, soprattutto se hai un blog attivo da anni e non hai mai fatto pulizie di qualsiasi genere. Se vuoi farmi sapere com’è andata, magari potresti commentare sotto a questo articolo. In alternativa, potresti anche condividere, se può essere utile a qualche amico 🙂
Iscriviti alla newsletter per rimanere sempre aggiornato sui miei articoli 🙂
[mailpoet_form id=”1″]Ti potrebbe interessare anche: Come ottimizzare WordPress
SELECT option_name FROM wp_options WHERE option_name LIKE ‘_transient_timeout%’ AND option_value < now();
Correggi, metti < invece di <
Salve, la ringrazio per il consiglio, ma credo ci sia un errore nel simbolo inviato. La prego di modificare il commento con il giusto consiglio, in modo che io possa implementarlo.
Saluti,
Agostino