Ottimizzare il database di WordPress

Ottimizzare il database di WordPress
Ottimizzare il database di WordPress

Se utilizzi WordPress da un po di tempo, probabilmente ci sono molti dati inutili nel tuo database come revisioni, commenti spam, cestino e così via.

Questi dati aumentano le dimensioni del database di WordPress, il che significa che il backup di WordPress richiederà più spazio su disco e più tempo per suo il ripristino.

La pulizia e l’ottimizzazione riduce significativamente le dimensioni del database di WordPress, cosi di eseguire i backup più velocemente e di conseguenza un ripristino più semplice ma sopratutto il miglioramento delle prestazioni del database.

WordPress ha una funzione automatica che permette di ottimizzare il database, per abilitare è necessario modificare il file wp-config.php e inserire la seguente costante:

define('WP_ALLOW_REPAIR', true);

prima del commento:

/* That's all, stop editing! Happy blogging. */

Una volta apportata la modifica la file wp-config.php è possible eseguire l’ottimizzazione visitando il seguente link:

/wp-admin/maint/repair.php  

Disabilitare il cestino in WordPress

Quando elimini un post, una pagina o un commento, anziché eliminarlo definitivamente, esso va nel cestino. Quindi, puoi ripristinarlo più tardi se ti accorgi che è stato cancellato accidentalmente.

Per impostazione predefinita, qualsiasi cosa nel cestino di WordPress viene archiviata per 30 giorni, a meno che non la elimini manualmente. Disabilitando il cestino in WordPress puoi diminuire lo spazio occupato dal database di WordPress. Basta aggiungere la seguente riga nel tuo file wp-config.php:

define ('EMPTY_TRASH_DAYS', 0);

prima del commento:

/* That's all, stop editing! Happy blogging. */

Ora troverai il link “Elimina definitivamente” anziché “Cestino”.

Disabilitare le revisioni

Ogni volta che modifichi o aggiorni i tuoi articoli e le tue pagine, WordPress salva nel database le revisioni del contenuto pubblicato.

WordPress non limita il numero di revisioni salvate, pertanto il rischio è quello di ritrovarsi con centinaia di vecchie revisioni e con un database di dimensioni enormi.

Per disattivare le revisioni basta aggiungere la seguente costante nel tuo file wp-config.php:

define('WP_POST_REVISIONS', false);

prima del commento:

/* That's all, stop editing! Happy blogging. */

Eliminare le revisioni dei post

Le revisioni dei post occupano rapidamente tanto spazio nel database di WordPress, specialmente se sul tuo sito sono presenti autori che salvano costantemente il loro lavoro per molti giorni. Se vuoi eliminare tutte le revisioni dei post nel tuo database, puoi eseguire questa query:

DELETE a,b,c
  FROM wp_posts a
  LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id)
  LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id )
  LEFT JOIN wp_term_taxonomy d ON ( b.term_taxonomy_id = d.term_taxonomy_id)
  WHERE a.post_type = 'revision'
  AND d.taxonomy != 'link_category';

InnoDB storage engine

Assicurati che le tabelle del database MySQL utilizzano il motore di archiviazione InnoDB in quanto MyISAM è obsoleto.

Esegui la seguente query sul tuo database per convertire le tabelle MyISAM in InnoDB:

SELECT CONCAT('ALTER TABLE ',table_schema,'.',table_name,' ENGINE=InnoDB;')
FROM information_schema.tables WHERE engine='MyISAM' 
AND table_schema NOT IN ('information_schema','mysql','performance_schema');

L’output generato sarà simile a questo:

ALTER TABLE db-name.table1 ENGINE=InnoDB;
ALTER TABLE db-name.table2 ENGINE=InnoDB;
ALTER TABLE db-name.table3 ENGINE=InnoDB;

Eliminare le transients

Gli sviluppatori di temi e plugin di WordPress utilizzano spesso Transients per archiviare informazioni temporanee nel tuo database.

DELETE FROM `wp_options` WHERE `option_name` LIKE ('%\_transient\_%')

Pulire la tabella wp_option permette di ottimizzare il database e la velocità del sito in quanto la maggior parte dei temi e dei plugin non rimuove le opzioni al momento della disattivazione, quindi dopo aver “provato” alcuni plugin sul tuo sito, troverai diverse centinaia di dati inutili nel database che poi sono caricati automaticamente in memoria su ogni richiesta.

Mi chiamo Ostap Mykhaylyak

Avatar for Ostap MykhaylyakSono un Web Developer e blogger per passione. Sul mio sito puoi trovare guide per WordPress, Linux e Magento. Ho una fissa per l'ottimizzazione pertanto non troverai mai una guida su come installare un plugin ( a parte i rari casi ).