Sebbene tutti i componenti di un sito web WordPress siano importanti, il database è probabilmente fondamentale. È qui che vengono archiviate e consultate praticamente tutte le informazioni del tuo sito. Per questo motivo, l’ottimizzazione del database di WordPress deve essere perfetta.

Un database che soffre di problemi di “gonfiore” e di prestazioni rallenta il sito e danneggia il posizionamento nelle classifiche di ricerca. Inoltre, potrebbe compromettere l’esperienza utente complessiva (UX). A sua volta, questo può avere un impatto sui dati di traffico e influire sulla posizione nei risultati di ricerca (oltre ad altri problemi).

In questo tutorial analizzeremo l’ottimizzazione del database di WordPress da diversi punti di vista. Parleremo della struttura generale che vedrai, insieme a molte tecniche di ottimizzazione da utilizzare. Parleremo anche di strumenti e servizi che possono aiutarti a mantenere i database efficienti.

La struttura del database di WordPress

In breve, il database di WordPress è la spina dorsale di un sito web. Ospita quasi tutto, come i contenuti, i dati degli utenti, le impostazioni e molto altro ancora. Per quanto riguarda WordPress, le “tabelle” del database sono responsabili dell’archiviazione di specifici tipi di informazioni.

La piattaforma utilizza i sistemi di gestione dei database MySQL o MariaDB e potrai accedervi con strumenti come phpmyAdmin o Adminer:

L'interfaccia di phpMyAdmin su un servizio di hosting Kinsta, che mostra un elenco delle tabelle del database di WordPress con opzioni per operazioni quali sfogliare, visualizzare la struttura, cercare, inserire ed eliminare. Le tabelle visualizzate includono wp_commentmeta, wp_comments, wp_links, wp_options, wp_postmeta, wp_posts, wp_termmeta, wp_terms, wp_term_relationships, wp_term_taxonomy, wp_usermeta, and wp_users.
Accedere a un database WordPress utilizzando phpMyAdmin.

Ad esempio, la tabella wp_posts contiene i post e le pagine, mentre wp_users contiene i dati relativi agli utenti del sito. Tra poco vedremo nel dettaglio alcune di queste tabelle.

Al momento dell’installazione, WordPress crea una serie di tabelle predefinite per coprire tutti i casi d’uso tipici di cui hai bisogno. Tuttavia, anche i plugin, i temi e le installazioni possono creare tabelle per memorizzare dati specifici e correlati.

Questo approccio modulare è eccellente sotto molti punti di vista, in quanto consente di ottenere ampie funzionalità. D’altro canto, però, un numero eccessivo di tabelle superflue (insieme a una gestione errata) può portare a un eccesso di volume.

Comprendere la struttura del database di WordPress è fondamentale per due motivi:

  • Prestazioni. Una buona organizzazione del database permette di recuperare i dati più velocemente, con un impatto diretto sui tempi di caricamento e sulle prestazioni.
  • Manutenzione. Sapere quali tabelle corrispondono alle diverse parti del sito ti aiuterà durante la manutenzione. Ad esempio, se un particolare plugin sta causando dei problemi, puoi risolvere le tabelle ad esso associate.

Una regolare pulizia e ottimizzazione delle tabelle del database può evitare che diventino grandi e ingombranti. Come abbiamo notato, l’impatto sulle prestazioni potrebbe essere negativo.

Tabelle specifiche di WordPress

I siti di tutti i tipi utilizzano i database, non solo WordPress. La piattaforma ha i suoi tipi di tabelle di database e i suoi ruoli e, se vuoi ottimizzarli, è importante comprenderli a fondo.

Anche se non le tratteremo tutte in questa sede, ci soffermeremo su alcune tabelle più di altre:

  • wp_options. Questa tabella contiene le impostazioni dell’intero sito ed è probabilmente una delle tabelle più consultate all’interno del database. Dovrai mantenere questa tabella snella attraverso una buona ottimizzazione.
  • wp_postmeta. Qui risiedono i metadati dei post. Con la crescita del sito, questa può diventare una delle tabelle più grandi del database.
  • wp_users e wp_usermeta. Tutte le informazioni relative agli utenti del sito e ai loro metadati si trovano in queste due tabelle. In alcuni rari casi, potresti dover entrare in queste tabelle per cambiare una password se sei bloccato fuori da WordPress.

Ricorda che ogni plugin o tema aggiuntivo che aggiungi al sito può modificare questa struttura. Tuttavia, è raro che un tema o un plugin elimini una di queste tabelle.

Tuttavia, è bene che tu riveda e comprenda regolarmente questi potenziali cambiamenti. È fondamentale per mantenere un database ottimizzato che supporti, anziché ostacolare, le prestazioni del sito.

Perché l’ottimizzazione del database di WordPress è necessaria per la maggior parte dei siti

L’ottimizzazione del database di WordPress non è solo una buona pratica: è una necessità per la maggior parte dei siti che vogliono offrire un’esperienza senza interruzioni. Il database è l’archivio centrale di tutti i dati importanti di un sito. La sua salute influisce direttamente sulle prestazioni, sulla velocità e sull’affidabilità del sito.

Per questo motivo, ci sono due ragioni generali per cui l’ottimizzazione regolare del database di WordPress dovrebbe essere un punto fermo del flusso di lavoro:

  • Miglioramento della velocità e delle prestazioni del sito. Il database WordPress con il tempo includerà alcuni dati inutili o ridondanti, come opzioni transitorie, revisioni di post, commenti di spam o bozze obsolete. Questo ingombro renderà più lento il recupero delle informazioni.
  • Miglioramento dell’esperienza utente. Gli utenti si aspettano un’esperienza di navigazione fluida e veloce. Un database ben ottimizzato si traduce in un caricamento più rapido delle pagine e in un’elaborazione più efficiente dei dati. In poche parole, ogni interazione sul sito si basa sulle query del database. Una maggiore efficienza si traduce in una migliore UX.

Ci sono anche ragioni più avanzate per assicurarsi di ottimizzare il database. Ad esempio, un database non ottimizzato sottopone il tuo server a uno stress aggiuntivo, in quanto lavora più duramente per trovare e servire i dati. Questo ha un effetto critico se utilizzi un hosting condiviso con risorse limitate, ed è in parte uno dei motivi per cui Kinsta non offre hosting condiviso.

Inoltre, man mano che il sito cresce, cresce anche il database. Se all’inizio puoi gestire un sistema piccolo e maneggevole, la sua complessità può crescere rapidamente. Con un’ottimizzazione regolare, puoi assicurarti che il tuo database sia in grado di gestire la crescita del sito senza comprometterne le prestazioni.

In breve, l’ottimizzazione del database di WordPress aumenterà i tempi di risposta. Un ritardo di caricamento anche di pochi secondi può portare a un aumento della frequenza di rimbalzo e a una perdita di traffico, il che non è certo una buona notizia per le tue classifiche di ricerca.

Come effettuare la manutenzione e la pulizia regolare

Se pulisci ed esegui una manutenzione regolare del tuo database WordPress, hai uno dei modi migliori per far funzionare il sito nel modo più fluido possibile. Tuttavia, i database possono gonfiarsi di dati inutili nel corso del tempo, quindi è importante stabilire un flusso di lavoro regolare e coerente.

Inoltre, devi utilizzare tutti gli strumenti e i servizi a tua disposizione nel modo migliore. La buona notizia è che WordPress offre una serie di approcci per la manutenzione del database.

Se scegli di utilizzare un plugin, assicurati che soddisfi i requisiti di Kinsta e che non sia presente nella nostra lista di plugin vietati.

Per questa guida utilizzeremo WP-Sweep, un plugin ben valutato e regolarmente aggiornato.

L'immagine header di WordPress.org per il plugin WP-Sweep
L’header di WP-Sweep da WordPress.org.

Nel corso del post mostreremo come ottimizzare il database di WordPress utilizzando questo plugin, ma puoi trasporre le istruzioni anche al tuo plugin preferito.

Nelle prossime sezioni vedremo questo aspetto in modo più dettagliato e tratteremo l’approccio manuale e l’utilizzo di WP-Sweep. Più avanti parleremo degli strumenti di Kinsta. Prima, però, vediamo alcune operazioni di pre-ottimizzazione.

Cosa fare prima di affrontare l’ottimizzazione

Prima di dedicarti al database, ci sono alcuni semplici compiti da svolgere. Per cominciare, dovresti sempre fare un backup completo del sito e del database. Se dovesse verificarsi il peggiore degli scenari e dovessi rovinare il tuo sito, potrai ripristinarlo in pochi minuti.

Dovrai anche eliminare tutti i plugin o i temi che non utilizzi sul sito. Questo potrebbe risolvere diversi problemi, non solo per quanto riguarda il database. Può anche contribuire a rafforzare la sicurezza del sito.

La dashboard di WordPress mostra un elenco dei plugin installati. Ogni plugin è accompagnato da una descrizione e presenta le opzioni per attivarlo, disattivarlo o eliminarlo, oltre alle impostazioni per gli aggiornamenti automatici.
La schermata dei plugin di WordPress

Tuttavia, a seconda del plugin o del tema, questo può lasciare dietro di sé tabelle indesiderate. Naturalmente, questo è l’esatto motivo per cui vogliamo ottimizzare il database, quindi capire quali plugin e temi lasciano dati transitori sarà utile in futuro.

L’ultima operazione è quella che troverai quando accederai allo strumento di gestione del database che hai scelto. Gli errori del database possono ovviamente essere un’indicazione di problemi di prestazioni, per cui è necessario risolverli prima di procedere a un’ulteriore ottimizzazione.

In breve, il processo consiste nel selezionare tutte le tabelle e poi utilizzare il pulsante Check table per generare un report.

Lo strumento phpMyAdmin mostra l'opzione Check table. Sulla sinistra sono visibili vari nomi di tabelle, come wp_termmeta e wp_users, ciascuno con icone di azione per operazioni quali la navigazione e la ricerca. Sulla destra, un menu contestuale mostra le opzioni per le operazioni sulle tabelle, come l'esportazione e l'ottimizzazione.
L’opzione Check table in phpMyAdmin.

Se vedi OK o qualcosa di simile, la situazione è ottimale. Tuttavia, qualsiasi errore deve essere risolto prima di proseguire. In questo caso, una richiesta di assistenza potrebbe essere una buona idea.

1. Ottimizzare le tabelle del database

Il primo passo consiste nell’ottimizzare le tabelle del tuo database. Con un approccio manuale, vai al link Database del tuo strumento di gestione e scegli il tuo database:

L'interfaccia phpMyAdmin di Kinsta con la scheda Database. Sono elencati due database ed entrambi presentano le azioni relative ai privilegi di controllo.
Scegliere un database in phpMyAdmin.

In molti casi, ti troverai già nel database del tuo sito WordPress. In ogni caso, vedrai un elenco di tabelle all’interno del database. Seleziona semplicemente tutte le tabelle, quindi scegli l’opzione Optimize table dal menu a discesa prima di cliccare su Go:

Un menu contestuale in phpMyAdmin relativo a un elenco selezionato di tabelle del database di WordPress, con l'opzione Optimize table evidenziata. Altre opzioni includono copia tabella, mostra creazione, esporta, svuota, elimina e azioni di manutenzione della tabella.
Ottimizzare tutte le tabelle del database utilizzando phpMyAdmin.

Dopo un po’ di tempo, vedrai un report che illustra lo stato di ogni tabella del database:

L'interfaccia di phpMyAdmin mostra un messaggio che indica che l'esecuzione della query SQL per l'ottimizzazione delle tabelle del database di WordPress è andata a buon fine. Sotto il messaggio sono elencate le singole tabelle con note relative al loro stato di compatibilità con l'ottimizzazione.
Il report di ottimizzazione all’interno di phpMyAdmin.

Con WP-Sweep, vai su Tools > Sweep. Da qui, scorri verso il basso fino alla sezione Database Sweep e clicca sul pulsante Sweep accanto all’opzione Optimize Tables:

Una sezione dell'interfaccia del plugin WP-Sweep nella dashboard di WordPress, che mostra l'opzione Optimize Tables selezionata con il pulsante Sweep evidenziato. L'interfaccia indica che l'ottimizzazione interesserà 12 tabelle.
Il pulsante per eseguire le ottimizzazioni nella dashboard di WP-Sweep.

Il plugin eseguirà tutte le tabelle e restituirà un messaggio di successo. A questo punto, puoi passare alla revisione dei post.

2. Ripulire le revisioni dei post

Il sistema di revisione dei post di WordPress fa sì che ogni modifica apportata possa accumularsi nel tempo. Puoi eliminare queste revisioni dal database con facilità utilizzando le query SQL. Il modo più semplice per farlo è una sola riga:

DELETE FROM wp_posts WHERE post_type = 'revision';

In questo modo verranno eliminati tutti i tipi di post di revisione dalla tabella. Tuttavia, ci sono anche dati associati in altre tabelle. Per catturare e rimuovere tutti questi dati, puoi utilizzare le seguenti istruzioni SQL:

DELETE FROM wp_posts WHERE post_type = 'revision';
DELETE FROM wp_term_relationships WHERE object_id NOT IN (SELECT ID FROM wp_posts);
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT ID FROM wp_posts);

Suggerimento: quando si gestiscono tabelle di database con molte righe (in particolare con le unioni più complesse come quelle sopra descritte), le query di lunga durata possono andare in timeout. In MySQL, MariaDB e PostgreSQL, puoi utilizzare una clausola LIMIT per suddividere l’operazione in passi piccoli:

DELETE FROM wp_postmeta 
DOVE post_id NOT IN (SELECT ID FROM wp_posts)
LIMIT 10000;

Questo SQL può essere eseguito ripetutamente – eliminando ogni volta fino a 10.000 voci in questo caso – fino a quando la tabella non sarà pulita.

Naturalmente, se copi e incolli questi esempi di SQL, devi utilizzare il prefisso della tabella corretto per il tuo database.

Con un plugin, questa operazione richiede pochi secondi. Come per l’ottimizzazione generale del database di WordPress, WP-Sweep ti offre un pulsante con un solo clic all’interno di WordPress:

La dashboard del plugin WP-Sweep, incentrata sull'ottimizzazione del database
Le opzioni per cancellare le revisioni e le bozze automatiche in WP-Sweep.

In futuro, potrai limitare il numero di revisioni utilizzate da WordPress accedendo al file wp-config.php. Aggiungi la seguente riga al file e salva le modifiche:

define( 'WP_POST_REVISIONS', X );

X è il numero di revisioni che desideri mantenere. Potresti anche specificare false, ma non ti consigliamo di farlo. È sempre meglio avere almeno una revisione a cui ricorrere in caso di necessità.

3. Eliminare i commenti di spam e gli articoli cestinati

Possiamo anche utilizzare le query SQL per rimuovere i commenti di spam. Tieni presente che quando moderi i commenti, quelli indesiderati rimangono nel tuo database per 30 giorni. Ciò significa che i commenti contrassegnati come spam in quel lasso di tempo rimarranno nel tuo database.

Puoi eliminarli completamente con poche righe di SQL nel tuo strumento di gestione del database:

DELETE FROM wp_comments, wp_commentmeta
USING wp_comments
LEFT JOIN wp_commentmeta ON wp_comments.comment_ID = wp_commentmeta.comment_id
WHERE wp_comments.comment_approved = 'spam’;

Il caso è simile a quello degli articoli che invii al cestino di WordPress. Potrebbero esserci molti contenuti “nel limbo”, che puoi eliminare con un’altra query SQL:

DELETE p, pm, tr
FROM wp_posts p
LEFT JOIN wp_postmeta pm ON p.ID = pm.post_id
LEFT JOIN wp_term_relationships tr ON p.ID = tr.object_id
WHERE p.post_status = 'trash';

Come per le revisioni dei post, puoi impostare i valori relativi al tempo necessario per rimuovere gli elementi cestinati all’interno di wp-config.php:

define( 'EMPTY_TRASH_DAYS', X )

All’interno di WP-Sweep, hai la possibilità di rimuovere i commenti di spam:

Una sezione del plugin WP-Sweep nella dashboard di WordPress che mostra varie opzioni di pulizia, come la rimozione dello spam e dei commenti non approvati
Eliminare i commenti di spam e i commenti non approvati in WP-Sweep.

Esiste anche l’opzione per rimuovere i commenti non approvati. Questa opzione può essere utile in alcune situazioni, ma non la consigliamo. Modera invece questi commenti e poi cancellali se necessario.

4. Rimuovere i tag inutilizzati

Le tassonomie sono importanti per WordPress, ma con il tempo possono diventare una raccolta enorme. Questo è un ottimo caso d’uso per ottimizzare il database e, come per altre tecniche, puoi utilizzare una query SQL:

DELETE t, tt
FROM wp_terms AS t
INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id
LEFT JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id
WHERE tt.taxonomy = 'post_tag' AND tt.count = 0;

L’opzione più vicina per rimuovere i tag inutilizzati in WP-Sweep è Post Orphaned Meta. Questa opzione valuta se ci sono metadati orfani e li rimuove:

L'interfaccia del plugin WP-Sweep che mostra le opzioni relative ai metadati degli articoli orfani
Le opzioni di WP-Sweep per eliminare i metadati orfani dei post.

Sebbene questa opzione possa rimuovere anche le categorie e altri dati, è una soluzione sicura da utilizzare, soprattutto se nessun altro post o pagina li utilizza.

5. Sbarazzati di pingback e trackback

Non sappiamo quanti siti web WordPress utilizzino i pingback e i trackback nell’era attuale, ma possono comunque ingombrare il tuo database se lasci l’impostazione attiva. La prima cosa da fare è verificare se l’opzione è disattivata. Si tratta di un’operazione semplice da eseguire nella schermata Settings > Discussion di WordPress:

La schermata Discussion Settings della dashboard di WordPress mostra le caselle di selezione relative alle impostazioni predefinite dei post, come l'invio di notifiche ai blog collegati, l'abilitazione delle notifiche di link da altri blog e la possibilità per gli utenti di inviare commenti sui nuovi post.
La schermata delle Discussion Settings di WordPress mostra le opzioni di pingback e trackback.

Nella sezione Default Post Settings, assicurati di deselezionare le opzioni “Attempt to notify any blogs…” e “Allow link notifications…” e salva le modifiche. Successivamente, torna al tuo strumento di gestione del database ed esegui questa query:

DELETE c, cm
FROM wp_comments c
LEFT JOIN wp_commentmeta cm ON c.comment_ID = cm.comment_id
WHERE c.comment_type IN ('trackback', 'pingback’);

Entrambi questi elementi si trovano nello stesso posto dei commenti, anche se il tipo è diverso ed è quello su cui si concentra la query. Una volta completata questa operazione, non dovresti più vedere trackback o pingback nel tuo database.

L’ottimizzazione continua del database di Kinsta

Se sei cliente di Kinsta, probabilmente avrai sentito dire che offriamo un’ottimizzazione continua del database per i siti WordPress. È importante sapere che questa ottimizzazione automatica opera a basso livello del server di database – gestendo la cache e l’utilizzo della memoria – e non ottimizza i dati nelle tabelle RDBMS.

Monitoraggio delle prestazioni del database

Il monitoraggio delle prestazioni del database di WordPress è una parte essenziale della gestione di un sito. Ti aiuterà a identificare potenziali problemi prima che si aggravino e a garantire che il tuo sito rimanga efficiente e reattivo.

Molte delle tecniche che tratteremo in questo post serviranno a monitorare le prestazioni, come ad esempio l’utilizzo di EXPLAIN per le query lente. Tuttavia, è possibile fare molto di più. Infatti, phpmyAdmin include le proprie metriche sulle prestazioni nella scheda Status del server:

La scheda 'Status' di phpMyAdmin mostra un grafico a torta e un elenco delle operazioni SQL con la relativa frequenza. Il grafico illustra la distribuzione di operazioni quali 'set option', 'show variables' e 'select' dall'avvio del server.
La schermata di stato di phpmyAdmin.

In questo modo è possibile visualizzare i tempi e i processi di esecuzione delle query (nella scheda Query statistics ), il che aiuta a identificare le query che necessitano di un’ottimizzazione. Per un monitoraggio avanzato, MySQL Workbench sarà prezioso:

Una schermata dettagliata di MySQL Workbench che mostra due query SQL nell'editor e il riquadro dei risultati sottostante. La barra laterale sinistra elenca gli schemi del database, mentre la barra degli strumenti in alto offre varie funzioni per la gestione del database. Una finestra di aiuto sulla destra fornisce indicazioni sulla sintassi SQL.
L’interfaccia utente principale di MySQL Workbench.

Offre funzioni avanzate per la progettazione, lo sviluppo e l’amministrazione dei database. Inoltre, fornisce rapporti sulle prestazioni e diagnostica che possono aiutarti a mettere a punto il tuo database.

All’interno di WordPress, il plugin Query Monitor permette di monitorare le query del database, gli hook, i condizionali, le richieste HTTP e altro ancora.

L'intestazione di WordPress.org per il plugin Query Monitor. Mostra le query suddivise per componente, con particolare attenzione a componenti come «wordpress-seo» e «woocommerce». Le richieste HTTP sono elencate con i relativi metodi, URL e stati, insieme a un pannello dedicato agli avvisi e alle notifiche.
Il plugin Query Monitor.

È particolarmente utile per individuare le query lente e identificare i plugin o i temi che le causano. Nella maggior parte dei casi, però, si tratta di un plugin di sviluppo, quindi potrebbe non essere adatto a un sito di produzione.

Monitorare le prestazioni del database con lo strumento APM

Lo strumento Application Performance Monitoring (APM) di Kinsta all’interno della dashboard di MyKinsta offre un altro modo per tenere sotto controllo le prestazioni del database:

La dashboard APM di Kinsta presenta il grafico 'Tempo totale di transazione', che suddivide il tempo di risposta in PHP, MySQL e servizi esterni in un determinato periodo. La sezione sottostante elenca le
Lo strumento APM di Kinsta.

APM tiene sotto controllo le query SQL più lente:

L'interfaccia APM di Kinsta mostra un grafico intitolato 'Query di database più lente', che elenca varie operazioni SQL relative alle impostazioni di WordPress, quali SELECT, UPDATE, INSERT, SHOW e DELETE, insieme alle rispettive percentuali di durata totale, alla durata totale in millisecondi, alla durata massima, alla durata media e alla frequenza al minuto.
Un report dell’APM di Kinsta che mostra le query più lente in esecuzione nel database.

Puoi accedere all’APM dalla dashboard MyKinsta, in particolare dalla schermata APM. Tieni presente che potrebbe essere necessario attivarla prima:

Una dashboard del servizio di hosting Kinsta che mostra la sezione dedicata al monitoraggio delle prestazioni delle applicazioni (APM). Include una breve spiegazione della funzionalità APM, insieme ad alcune avvertenze sul suo utilizzo. È ben visibile un pulsante 'Abilita APM' che consente all'utente di attivare il servizio.
L’opzione per attivare l’APM nella dashboard di MyKinsta.

A questo punto, dovrai dare all’APM un po’ di tempo per raccogliere i dati. Tuttavia, una volta che saranno visibili, potrai controllare le query che potrebbero richiedere un’ulteriore ottimizzazione.

Come ottimizzare le query del database per ottenere una maggiore efficienza

L’ottimizzazione delle query del database che utilizzi è fondamentale per migliorare le prestazioni e la velocità del tuo sito WordPress. Query efficienti significano un recupero più rapido dei dati, che a sua volta porta a un miglioramento dei tempi di caricamento e a una migliore esperienza utente.

Dato che puoi utilizzare le query per ottimizzare il database di WordPress, ecco un paio di consigli su come renderle più efficienti:

  • Ottimizza le strutture delle query. Noterai che non usiamo i caratteri jolly (o asterischi) nelle nostre query di esempio. Invece di usare SELECT *, sii specifico per quanto riguarda le colonne esatte di cui hai bisogno. Inoltre, se possibile, usa le JOIN invece delle subquery. Le subquery possono essere meno efficienti, soprattutto se non hanno una buona struttura o se coinvolgono grandi insiemi di dati.
  • Usa la cache delle query. Strumenti come Redis possono memorizzare i risultati delle query in memoria. Ciò significa che i risultati della query possono essere serviti dalla cache piuttosto che interrogare nuovamente il database la volta successiva.

Questi sono suggerimenti vaghi, ma ci sono molte altre cose che puoi fare. Diamo un’occhiata veloce a questo aspetto.

Ottimizzazione avanzata del database di WordPress e suggerimenti per la risoluzione dei problemi

L’indicizzazione può aiutarti ad aggiungere una guida rapida al tuo database. Aiuta il server del database a trovare i dati più velocemente senza dover scansionare tutte le righe di una tabella.

Per ottenere questo risultato, individua le colonne che vengono utilizzate di frequente nelle tue query e valuta la possibilità di aggiungere degli indici ad esse. Puoi farlo da phpMyAdmin (o simili). Per prima cosa, clicca sulla tabella che desideri indicizzare e vai alla scheda Structure:

La scheda 'Structure' in phpMyAdmin relativa alla tabella 'wp_posts' di un database WordPress. Mostra un elenco di colonne con i tipi, la collazione, gli attributi e le azioni disponibili, come 'modifica' e 'elimina'.
Accesso alla scheda Structure di una tabella in phpMyAdmin.

Quindi, seleziona le colonne che vuoi indicizzare e scegli l’opzione Index in fondo alla tabella:

Un primo piano di una sezione di phpMyAdmin in cui è evidenziata l'opzione index per una tabella del database di WordPress. Sono visibili anche altre opzioni, quali browse, change, drop, primary, unique, spatial e fulltext.
Scegliere di indicizzare le colonne in phpMyAdmin.

Una volta salvate le modifiche, le colonne verranno indicizzate.

L’istruzione EXPLAIN può anche aiutarti a capire come MySQL esegue la tua query. Può aiutarti a individuare le inefficienze e a capire come la tua query interagisce con gli indici. Per eseguirla, aggiungi l’istruzione all’inizio di una query esistente. Quando la eseguirai, SQL ti spiegherà come eseguirà la query:

La finestra di output delle query SQL di phpMyAdmin mostra un messaggio che conferma l'esecuzione corretta della query SQL. Sotto il messaggio è riportato un comando SQL che illustra un'operazione di eliminazione sulle tabelle dei commenti di WordPress, con i dettagli del piano di esecuzione della query.
L’output dell’esecuzione di una query preceduta dall’istruzione EXPLAIN.

Non possiamo trattare in questa sede tutto ciò che riguarda l’istruzione EXPLAIN, anche se la documentazione di MySQL copre quasi tutto ciò che è necessario sapere al riguardo.

Come gestire database di grandi dimensioni in WordPress

Quando un sito WordPress cresce in contenuti, utenti e traffico, il suo database si espande naturalmente. Un database di grandi dimensioni sarà un problema che incontrerai (o di cui ti preoccuperai) spesso durante la gestione di un sito.

La maggior parte dei consigli che ti forniamo in questo articolo può essere adatta a un database di grandi dimensioni – e a ridurlo. Tuttavia, ci sono molti altri consigli che possiamo dare per quei database che saranno intrinsecamente più grandi di quelli tipici:

  • Archivia i dati più vecchi. Invece di mantenere tutti i dati in vita, prendi in considerazione l’archiviazione dei vecchi post o dei dati degli utenti a cui non accedi regolarmente.
  • Utilizza una rete di distribuzione dei contenuti (CDN). Scaricare e servire risorse statiche come immagini, video e download da un altro server può ridurre il carico sul tuo sito e contribuire a velocizzarlo. Inoltre, il tuo sito verrà caricato più velocemente dagli utenti, indipendentemente da dove si trovino.
  • Query personalizzate. Se ti occupi di sviluppo di WordPress, scrivi query efficienti per i tuoi temi e plugin. Questo ti aiuterà a recuperare solo ciò che ti serve e a mantenere alta l’efficienza.

Puoi anche prendere in considerazione tecniche avanzate come il partizionamento delle tabelle e lo “sharding del database“. In questo caso i dati vengono suddivisi su più database. Si tratta di un’operazione spesso complessa e che richiede una gestione esperta.

A questo proposito, gli esperti sono una necessità quando si tratta di ottenere prestazioni elevate dal tuo database e dal tuo sito web. L’hosting WordPress di Kinsta è scalabile, gestito e ottimizzato per la piattaforma.

La dashboard di hosting di Kinsta mostra la sezione Informazioni sul sito, che comprende sezioni dedicate ai dettagli di base, alle informazioni sull'ambiente e ai dati SFTP/SSH. Sono visibili i grafici relativi alle visite al sito e al tempo di elaborazione complessivo, che forniscono dati analitici sulle prestazioni del sito web.
Il sito web dell’hosting WordPress di Kinsta.

I piani partono da 35 dollari al mese e la nostra architettura può supportare un semplice blog fino a reti di livello aziendale. Scrivici per scoprire come possiamo diventare il tuo partner di hosting a lungo termine, indipendentemente dai tuoi obiettivi.

Riepilogo

Il database di WordPress è come il motore di un’automobile: senza una messa a punto, non funzionerà come dovrebbe. Infatti, una mancata ottimizzazione del database di WordPress potrebbe farti scendere dal primo all’ultimo posto nelle classifiche di ricerca. Anche i tuoi utenti si accorgeranno che il tuo sito sta diventando un’altra cosa, per cui un database perfetto e veloce è fondamentale per il successo.

Ci sono molti modi per farlo, ma una combinazione di tecniche manuali, plugin e strumenti di ottimizzazione di Kinsta ti darà i migliori benefici. In molti casi, l’automazione può aiutarti a svolgere molte di queste attività senza dover accedere o eseguire uno strumento specifico.

Ci piacerebbe sapere se i nostri consigli per l’ottimizzazione del database di WordPress hanno funzionato per te. Facci sapere quali hanno avuto un impatto maggiore nella sezione commenti qui sotto!

Jeremy Holcombe Kinsta

Content & Marketing Editor presso Kinsta, web developer di WordPress e content writer. Al di fuori di tutto ciò che riguarda WordPress, mi piacciono la spiaggia, il golf e il cinema. Ho anche i problemi di tutte le persone più alte della media ;).