WorpPress : Pulire tabella wp_options causa Sessioni WooCommerce

Tempo di lettura: 2 minuti

Voglio condividere con voi un’esperienza in merito al database di WordPress, ed esattamente relativo alla tabella wp_options.

E da circa 2 giorni, che un sito di un mio cliente (ospitato su Siteground), viene sospeso, causa eccessivo uso della CPU.

In sostanza Siteground, ha dei controlli di utilizzo della CPU, e se vengono superati il sito viene bloccato e riprende a funzionare la mezzanotte successiva.

Ho cominciato ad indagare e ho notato subito che il database era di circa 150Mb; e soli 120Mb erano presenti nella tabella wp_options.

Che cos’è successo?

In alcuni casi, la tabella wp_options cresce di volume troppo in fretta a causa di WooCommerce. Per verificarlo è necessario analizzare la tabella; si può vedere che la tabella è piena di voci _wc_session_xxx e _wc_session_expires_xxx.

Tutto ciò può accadere a causa di due cose:

  • operazioni di cron non funzionano sul tuo sito ;
  • un bot che scansiona il tuo sito crea sessioni volativi che intasano la tabella e rimangono in memoria.

Come risolvere il problema ?

Woocommerce mette a disposizione unimportante funzione che permette di eliminare le sessioni scadute da parte degli utenti.
pulire-tabella-wp-options-woocommerce
tabella-wp-options-enorme-causa-woocommerce
Ma a volte, il database è così grande, che il processo non termina a causa del tempo di esecuzione Max di PHP, o per una mancanza di memoria.

In questo caso è possibile utilizzare la seguente query MySQL direttamente in phpMyAdmin:

DELETE FROM wp_options
WHERE option_name LIKE _wc_session_% OR option_name LIKE _wc_session_expires_%

Ed infine, per evitare che la tabella wp_options diventi con il tempo così grande, controllate il file wp-config.php, e verificate che non contenga questa riga di codice:

define(DISABLE_WP_CRON, true);

Se è presente, rimuovetela.

Unultima cosa che può risultare utile è aggiungere il seguente codice allinterno del file robots.txt, per evitare che i bot creino sessioni durante la scansione del tuo sito:

User-agent: *
Disallow: /*add-to-cart=*

Avete esperienza in merito? E successo anche a voi? Commentate e parliamone.

2 commenti su “WorpPress : Pulire tabella wp_options causa Sessioni WooCommerce”

  1. ROBERTO FILLORAMO

    Buongiorno, ho un problema con il mio sito ed ho notato di avere più di 1 GB di dati nelle woocommerce session. Le posso eliminare senza danneggiare il database del sito?

    1. Ciao Roberto,

      normalmente cancellare le sessioni di WooCommerce non crea problemi, ma per scrupolo e segui il backup del sito (soprattutto del database) PRIMA di fare l’operazione.

      Però ti posso dire che l’operazione è innoqua, almeno per me, personalmente non mi è mai capitato facesse danni.

Lascia un commento