Come ripulire il tuo database WordPress

·

·


Quasi tutti i siti Web WordPress® che ho visto hanno database gonfiati. Questo è abbastanza normale. Nessuno è nato un esperto nella costruzione di siti super efficienti e ottimizzati.

Quando ho iniziato a utilizzare WordPress®, ho cambiato temi mensilmente e ho testato molti plugin. Leggevo gli articoli “I 21 plugin indispensabili” e li ho installati tutti. Un paio di settimane dopo, li ho disinstallati.

Ecco come impari: provi, metti alla prova e scopri cosa ti serve e cosa funziona per te.

Ma anni dopo, ti ritrovi con un database WordPress® pieno di cose vecchie e inutili. Questo perché il database del tuo sito web non contiene solo i tuoi contenuti ma tutti i temi e le impostazioni dei plugin.

Perché è essenziale avere un database pulito?

Un cliente, un blog di cucina con circa 10.000 visite al giorno, riscontrava tempi di caricamento lenti di 13-15 secondi. La soluzione offerta dalla società di hosting era quella di passare a un piano di hosting più costoso.

La nostra soluzione era diversa: abbiamo eseguito un audit del sito dopo la migrazione alla nostra piattaforma di hosting.

La verifica del sito è gratuita se paghi annualmente qualsiasi piano hosting di Simplenet ; anche tu puoi trarne beneficio.

Abbiamo scoperto oltre 25.000 voci di database nella tabella WP_OPTIONS con AutoLoad impostata su SÌ. "Autoload: Sì" significa che quando WordPress® inizializza, legge quelle opzioni dal database, che richiede circa 11 secondi.

Abbiamo eliminato quelle vecchie opzioni inutili e ora WordPress® si carica in 2-3 secondi. Abbiamo anche ottimizzato le immagini, sostituito alcuni plugin difettosi con altri migliori e apportato altre piccole modifiche.

Non aveva bisogno di un piano più costoso; ha mantenuto lo stesso piano per altri 8-9 mesi finché il suo traffico non ha raggiunto circa 60.000 visite al giorno, a quel punto era davvero giunto il momento di aggiornare.

Il vantaggio di avere un database WordPress® pulito è stato che l'ha aiutata a risparmiare denaro sul web hosting, ad avere un sito web più veloce e ad adattarsi a molto più traffico senza sforzo. 

Quindi, vediamo cosa puoi fare per ottimizzare il tuo database WordPress® per ottenere gli stessi vantaggi.

Effettuare sempre il backup prima

Prima di eseguire qualsiasi pulizia del database, è necessario creare un backup completo del sito, inclusi il database e i file, o almeno il database, poiché è lì che apporteremo le modifiche. Questa protezione ti consente di ripristinare rapidamente il tuo sito allo stato precedente se qualcosa va storto, risparmiando tempo, stress e potenziali perdite.

Senza un backup, non è possibile ripristinare post, pagine, account utente o impostazioni eliminati accidentalmente. Anche gli errori durante la pulizia del database, come l'eliminazione di tabelle importanti o il danneggiamento dei dati, possono danneggiare il tuo sito web, rendendolo inaccessibile ai visitatori.

Puoi esportare il tuo database da phpMyAdmin. Il tuo provider di hosting dovrebbe fornire l'accesso a questo strumento di gestione del database (o uno simile).

Offriamo l'accesso a phpMyAdmin, nonché uno strumento di backup integrato che puoi utilizzare per eseguire backup manuali ogni volta che vuoi. Inoltre, offriamo siti di staging. Ciò significa che puoi clonare il tuo sito web live su un sito di staging ed eseguire eventuali modifiche lì prima di farlo su un sito web live.

Puoi anche utilizzare un plug-in di backup di WordPress® come:

Quando utilizzi un plug-in di backup, assicurati che l'archivio di backup sia utilizzabile all'esterno di WordPress®. Se il sito si rompe, devi essere in grado di ripristinarlo senza accesso wp-admin.

Pulizia WordPress® di base

Il modo più semplice per ripulire il database WordPress®, soprattutto per le persone non tecniche, è utilizzare un plugin WordPress®.

I plugin di ottimizzazione del database più popolari sono:

Esistono anche plug-in di memorizzazione nella cache e di ottimizzazione che hanno anche opzioni di pulizia del database integrate, come:

Consigliamo WP-Sweep perché utilizza il più possibile le funzioni di eliminazione WordPress® adeguate invece di eseguire query MySQL di eliminazione diretta.

Installa e attiva il plug-in WP Sweep, quindi vai su Strumenti > Sweep. Vedrai diverse sezioni con un pulsante Sweep accanto a loro, fai clic sul pulsante per pulire il disordine.

Questo plugin ti aiuterà a eliminare:

  • Revisioni
  • Bozze automatiche
  • Commenti cancellati, non approvati e spam
  • Meta post orfano e duplicato
  • Meta commenti orfani e duplicati
  • Meta utente orfano e duplicato
  • Relazioni tra termini orfani
  • Termini non utilizzati
  • Opzioni transitorie

Il plugin può anche ottimizzare le tabelle ed è più semplice che farlo tramite phpMyAdmin.

Un altro plugin che consigliamo è LiteSpeed ​​Cache . Può pulire il database WordPress® e convertire le tabelle del database da MyISAM a InnoDB.

Puoi anche visualizzare l'elenco delle voci di caricamento automatico, il loro numero e le dimensioni utilizzando LiteSpeed ​​Cache.

Come bonus, consiglio il plugin Scalability Pro per WooCommerce; risolve alcuni problemi di prestazioni native.

Pulizia avanzata di WordPress®

Dopo la pulizia con il metodo facile, dovresti anche controllare manualmente, più accuratamente, se ci sono ancora cose che possono essere ottimizzate nel database.

È possibile apportare molte ottimizzazioni al database WordPress®, ma ci sono alcuni problemi significativi che, una volta risolti, il nostro database dovrebbe funzionare abbastanza bene. Quindi, concentriamoci sulla risoluzione di questi problemi con il vantaggio più significativo.

Questi sono:

  • pulizia delle metachiavi dal file wp_postmeta
  • pulire le voci di caricamento automatico dalla tabella wp_options
  • ripristino della chiave primaria persa dalla tabella wp_options

Pulizia delle metachiavi dalla tabella wp_postmeta

Anche dopo aver pulito il database con un plugin come WP Sweep, nella tabella wp_postmeta potrebbero ancora esistere voci non necessarie perché non tutto è stato pulito.

Accedi al database con phpMyAdmin o qualsiasi strumento di gestione del database, vai alla tabella wp_postmeta e guarda quali sono le voci.

Prendiamo questo esempio.

Puoi vedere che ci sono molte voci con il prefisso EG_. Puoi chiedere a Chatgpt : quale plug -in WordPress ha inserito voci con il prefisso EG_ nella mia tabella WP_PostMeta?

ChatGTP mi dice che è il plugin Essential Grid. Se non utilizzi più questo plug-in, puoi eliminare tutte queste voci manualmente o eseguendo una query per eliminarle in blocco.

ELIMINA DA wp_postmeta DOVE meta_key MI PIACE 'eg_%';


Questa query elimina tutte le metachiavi che iniziano con eg_. Non dimenticare di eseguire il backup del database o almeno della tabella wp_postmeta prima di iniziare a eseguire query per pulire la tabella.

Ripeti il ​​processo con tutte le altre meta chiavi che trovi in ​​gran numero e non riconosci cosa sono e a cosa servono.

Cancellazione delle voci di caricamento automatico dalla tabella wp_options

Questo è il problema di cui abbiamo discusso nell'introduzione di questo articolo: la tabella wp_options si è riempita di voci con il valore Autoload impostato su Sì.

Queste voci vengono lette ogni volta che WordPress viene inizializzato.

Il modo più semplice per vedere queste voci è utilizzare il plugin LiteSpeed ​​​​Cache e andare alla sezione Database. Scorri fino a Riepilogo database e visualizza l'elenco delle voci di caricamento automatico, il loro numero e dimensione.

Voci di caricamento automatico visualizzate nel plug-in LiteSpeed ​​Cache

Nell'esempio sopra, non ci sono problemi; È un database pulito, ma se vedi sul tuo sito Web alcune voci enormi, puoi chiedere Chat GPT : quale plugin ha messo la voce X nella tabella WP_OPTIONS del mio database WordPress?


Potrai così identificare il plugin che ha aggiunto quei dati e, se non lo utilizzi più, potrai cancellare la rispettiva voce.

ELIMINA DA wp_options DOVE nome_opzione COME 'nome-opzione';

La query SQL dall'alto elimina la voce, basta sostituire il nome dell'opzione con il nome effettivo della voce.

Non dimenticare di eseguire il backup del database o almeno della tabella wp_options prima di iniziare la pulizia.

Ripristino della chiave primaria persa dalla tabella wp_options

Un altro problema che ho riscontrato è legato alla tabella wp_options, ovvero ci sono casi in cui questa tabella perde la chiave primaria.

Il campo option_id è configurato per impostazione predefinita come chiave primaria.

La chiave primaria garantisce l'unicità di ogni riga nella tabella e consente l'indicizzazione delle righe per un accesso rapido. Se abbiamo valori duplicati e si perde la chiave primaria, le operazioni su questa tabella saranno più lente perché non sarà più possibile accedere rapidamente ad una riga specifica. Viene eseguita una scansione completa della tabella, ovvero ogni riga della tabella viene letta per trovare i dati necessari, operazione che richiede più tempo.

In alcune situazioni, come le migrazioni manuali con mysqldump da un server a un altro, la tabella potrebbe perdere la chiave primaria quando le versioni di MySQL sono diverse tra i server.

opzione_idnome_opzione
1opzione1
2opzione2
3opzione3
0opzione4
0opzione5
0opzione6

Per risolvere questa situazione, dobbiamo rendere nuovamente la colonna option_id la chiave primaria. Tuttavia, non possiamo farlo se sono presenti valori duplicati, quelli con 0, quindi devono essere eliminati o rinumerati.

L'eliminazione di reimpostazione del tema o delle configurazioni di plug -in, ma possiamo rinumerarli. Esegui queste domande sulla tabella WP_OPTIONS.

Set @new_option_id: = 4; Aggiorna wp_options set option_id = (@new_option_id: = @new_option_id + 1) dove opzione_id in (seleziona opzione_id da (selezionare opzione_id da wp_options dove opzione_id = 0 gruppo per opzione_id con conteggio (*)> 1) come duplicati); Elimina da wp_options dove opzione_id = 0; Alter tabella wp_options aggiungi la chiave primaria (opzione_id);

Le query visualizzate sullo schermo effettuano le seguenti operazioni:

  • Imposta un punto di partenza per option_id. Ad esempio, nell'esempio sopra la numerazione si è fermata a 3, quindi abbiamo impostato 4 come nuovo punto di partenza.
  • Identifica i duplicati di option_id con valore 0 e li aggiorna con nuovi valori a partire dal valore impostato
  • Rimuove tutte le righe rimanenti in cui option_id è 0
  • Aggiunge la chiave primaria su option_id

Assicurati di modificare il prefisso predefinito (WP_) in quello utilizzato dal database e imposta il numero secondo (il codice utilizza 4 come esempio).

Successivamente, esegui le seguenti domande.

Alter tabella wp_options auto_increment = 7; Alter tabella wp_options Modifica opzione_id bigint (20) non firmato non null auto_increment; Controlla tabella wp_options; Tabella di riparazione wp_options;

Le domande fanno quanto segue:

  • Imposta un nuovo valore iniziale per AUTO_INCREMENT sull'ultimo numero: nel nostro esempio si sono fermati a 6, quindi impostiamo 7 come nuovo punto iniziale
  • Attiviamo auto_increment per la colonna option_id
  • Stiamo facendo una tabella di controllo
  • E un tavolo per le riparazioni

Ancora una volta, assicurati di modificare il prefisso predefinito (WP_) in quello che il tuo database utilizza. E imposta il numero secondo (il codice utilizza 7 come esempio).

Prima di iniziare questa operazione, non dimenticare di eseguire il backup del database o della tabella WP_OPTIONS.

Puoi eseguire queste query in phpMyAdmin (uno strumento accessibile dal pannello di controllo del tuo hosting) o con uno strumento di gestione del database come Sequel Ace (Mac) o MySQL Workbench (Windows, Linux, Mac).

Utilizzo Sequel Ace e lo preferisco a phpMyAdmin perché è più veloce e più stabile. PhpMyAdmin a volte può bloccarsi a causa delle limitazioni di PHP, in particolare sull'hosting condiviso.

Best practice per mantenere pulito il database WordPress®

La maggior parte dei plugin e dei temi non si puliscono da soli, quindi è necessario eseguire una pulizia di tanto in tanto per garantire che tutto sia in ottime condizioni.

I plugin di ottimizzazione hanno questa funzionalità di pianificazione della pulizia automatica e di riduzione del volume del database:

  • FlyingPress
  • WP Razzo
  • Perfmatters
Ottimizzazione pianificata di Perfmatters

Puoi impostarlo su settimanale, mensile o qualunque sia il programma che preferisci.

Consiglio anche di eliminare plugin e temi inutilizzati. Questo aiuta anche dal punto di vista della sicurezza. Ti consiglio di non conservare script PHP (plugin, temi, altri file PHP) sul tuo server diversi da quelli che utilizzi attivamente.

Per rimuovere i plugin inutilizzati, accedi a wp-admin e vai su Plugin > Plugin installati. Fare clic su Inattivo per visualizzare i plugin inattivi ed eliminarli.

Per rimuovere i temi inutilizzati vai su Aspetto > Temi. Fai clic su ciascun tema che desideri eliminare, quindi fai clic su Elimina nell'angolo in basso a destra.

Ti consiglio di mantenere solo il tema attivo e un tema predefinito (se devi testare le incompatibilità).

È inoltre possibile evitare che le revisioni si accumulino limitando il numero di revisioni archiviate nel database, ad esempio 30. Aggiungi il seguente codice al file wp-config.php.

define('WP_POST_REVISIONS', 30);

Non lasciare commenti non approvati: approvali, inviali tramite spam o eliminali.

Attenzione ai plugin che memorizzano molti dati:

  • plugin statistici
  • plugin di sicurezza
  • plugin anti-spam
  • plugin per post correlati
  • plugin di tracciamento dei collegamenti

Non sto dicendo che non dovresti utilizzare nessuno dei plug-in di cui sopra, ma utilizza plug-in che offrono tali funzionalità e salvano i dati esternamente, non nel database WordPress®.

Se possibile, evita di utilizzare plugin che appesantiscono. Mantieni il database WordPress® il più leggero possibile. È meglio prevenire che curare il gonfiore.

L'ottimizzazione efficace del database garantisce siti Web veloci, affidabili e scalabili. L'implementazione delle migliori pratiche può migliorare significativamente le prestazioni del database riducendo i costi operativi. Ricorda, l'ottimizzazione del database non è un'attività una tantum, ma un processo continuo che si evolve con le esigenze e la crescita del tuo sistema.

Grazie per aver letto questo articolo sull'ottimizzazione del database. Spero che abbia fornito preziosi spunti e suggerimenti pratici per migliorare le prestazioni dei database WordPress®.

Se hai domande, feedback o tecniche aggiuntive che desideri condividere, sentiti libero di lasciare un commento o contattarci. Insieme possiamo costruire siti web migliori, più veloci e più efficienti!

Andrej Chira Avatara

Commenti

11 risposte

  1. Straordinaria risorsa sulla pulizia del database WP. Grazie per aver condiviso questo.

    1. Grazie. Se hai bisogno di altre informazioni o tutorial che potremmo scrivere, faccelo sapere.

  2. Avatar di Hong Ng

    Hai provato TablePlus? È simile a Sequel Pro ma supporta più driver.

    1. Non ne ho mai sentito parlare fino ad ora.

  3. Sto usando Akismet. Devo togliere anche quello? Ho provato più volte la versione gratuita di UPDRATPLUS, ma sempre con memoria esaurita e sito inattivo. Memoria aumentata in php.ini e provato, ma senza successo. Ho Godaddy condiviso hosting Linux.

    1. Preferisco Antispam Bee , penso che sia più efficace nel combattere lo spam rispetto ad Akismet.
      La maggior parte dei plugin di backup presenta problemi con l'hosting condiviso, una soluzione che potrebbe funzionare meglio è utilizzare ManageWP o WP Time Capsule .
      Queste soluzioni eseguono backup incrementali, quindi non è necessario comprimerli e zipparli e ciò utilizza meno risorse del server.

  4. Con l'aiuto delle conoscenze ottenute dal tuo articolo, ripulire il database si è rivelato abbastanza semplice e senza errori o problemi.

  5. Questo è davvero un ottimo articolo, grazie per averlo condiviso e vorrei dirlo, continua a condividere le tue informazioni per noi.

  6. Grazie.
    Funziona come un fascino!

  7. Ottime informazioni condivise, grazie per questo.

  8. Ottimo articolo condiviso, grazie per questo.

Lascia un commento

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