2 conseils pour nettoyer et optimiser votre base de données WordPress

le

Mauvaise surprise en ce week-end, non pas la pluie qui s’abat sur ma charmante ville de Perpignan depuis déjà 2 semaines mais plutôt un mail pas très plaisant de la part de mon hébergeur. En effet, au réveille samedi matin, mon café à la main, OVH m’annonce que ma base de données est remplie à plus de 90% et que si jamais je ne fais rien pour l’alléger de quelques Mégaoctets, elle serait alors suspendue avec comme résultat final : PassioN @Net HS.

2 conseils pour nettoyer et optimiser votre base de données WordPress

C’est mal connaître Julien, je vous le dis car à l’heure où j’écris ces quelques lignes, ma tendre et cher base de données est passée de 48 Mo à seulement 7 Mo. Voici mes astuces …

Pensez à sauvegarder votre base de données avant d’y apporter n’importe quelle modification. Pour cela, vous pouvez utiliser l’extension WordPress Database Backup

Supprimer les révisions d’articles

Ce qui est intéressant dans WordPress c’est de pouvoir sauvegarder un article en cours de rédaction pour pouvoir le reprendre plus tard ou tout simplement pour le planifier à une date bien précise. Malheureusement le CMS abuse trop des bonnes choses et créer des sauvegardes à tout va ce qui au final encombre fortement la base de données. Pour remédier à ce problème, il peut être intéressant d’enregistrer uniquement les 3 ou 5 dernières sauvegardes. Voici comment faire :

Connectez-vous à la racine de votre blog WordPress à l’aide d’un client FTP, éditez le fichier « wp-config.php » puis ajoutez la ligne suivante à la fin.

// Limite à 5 sauvegardes, la révision des articles define('WP_POST_REVISIONS', 5)

Ceci permet de dire à WordPress d’enregistrer uniquement les 5 dernières sauvegardes créées. Si vous souhaitez désactiver complètement le système de révision, ajoutez cette ligne à la place de la précédente.

// Désactive la révision des articles define('WP_POST_REVISIONS', false)

Voilà, votre base de données est un peu plus optimisée mais pas encore nettoyée. Pour supprimer les anciennes révisions, vous allez devoir exécuter la requête SQL suivante : (n’oubliez pas de modifier le préfixe de vos tables si nécessaire)

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) WHERE a.post_type = 'revision'

Grâce à cette première modification, ma base de données est passée de 48 Mo à 14 Mo. Autant dire que ce n’est pas négligeable du tout. Passons à la deuxième optimisation …

Nettoyer les tables d’Akismet

Vous connaissez et vous utilisez (en tout cas je vous le conseil) très certainement Akismet, le célèbre plugin permettant de lutter contre le spam sur votre blog WordPress. Ce dernier amasse de nombreuses informations au fil du temps et fait grossir de manière importante votre base de données. Afin d’offrir un grain d’optimisation à votre BDD, vous allez devoir effectuer un gros nettoyage de printemps aux tables créées par ce plugin. Voici comment faire :

La première chose à faire est de vérifier si des entrées contenues dans la table « wp_commentmeta » ne sont plus en relation avec la table des commentaires « wp_comments ». Pour cela, exécutez la requête SQL suivante : (n’oubliez pas de modifier le préfixe de vos tables si nécessaire)

SELECT * FROM wp_commentmeta WHERE comment_id NOT IN ( SELECT comment_id FROM wp_comments)

Si, après cette vérification, des entrées contenues dans la table « wp_commentmeta » ne sont plus en relation avec la table « wp_comments », supprimez-les à l’aide de requête suivante :

DELETE FROM wp_commentmeta WHERE comment_id NOT IN ( SELECT comment_id FROM wp_comments)

Une fois les entrées inutiles supprimées, vous allez pouvoir vider la table « wp_commentmeta » des enregistrements liés à Akismet. Pour cela, effectuez dans un premier temps la requête SQL suivante :

SELECT * FROM wp_commentmeta WHERE meta_key LIKE "%akismet%"

Pour finir, supprimez le tout en exécutant cette dernière requête :

DELETE FROM wp_commentmeta WHERE meta_key LIKE "%akismet%"

Grâce à cette deuxième et dernière modification, ma base de données est passée de 14 Mo à 7 Mo.

Si vous avez effectuez toutes les opérations décrites dans cet article, vous devriez à présent être en possession d’une base de données complètement vidée de choses inutiles et parée pour l’avenir. Pensez tout de même à optimiser le tout à l’aide des plugins WordPress Database Optimizer et Database Cache Reloaded Fix.

Et vous, avez-vous des conseils à nous donner pour nettoyer et optimiser nos bases de données ?