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.


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”
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?
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.