Se Débarrasser du Spam sur WordPress
Le spam devient de plus en plus problématique sur mon WordPress, je viens de dépasser les 150 000 pour le seul mois de Juillet ! J’ai beau utiliser Akismet qui accompli un très beau travail, il a le défaut de laisser les spams 15 jours dans la catégorie indésirable avant de les effacer.
Bilan, ma base de données atteint la taille respectable de 350 Mo !!
Il est toujours possible de demander à WordPress de purger tous les commentaires indésirables, mais, via le moteur php, il n’en efface que 15 000 à la fois tout en laissant le serveur indisponible pendant un bon quart d’heure !
Alors une autre méthode brutale, mais efficace. Pensez bien à faire un back-up de votre Base de Données avant !
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | root@server:~# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 64670 Server version: 10.0.21-MariaDB-1~wheezy mariadb.org binary distribution Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | tmp | | tokudb | | wpdb | | wpdbpb | +--------------------+ 7 rows in set (0.00 sec) MariaDB [(none)]> use wpdbpb; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [wpdbpb]> show tables; +---------------------------+ | Tables_in_wpdbpb | +---------------------------+ | wp_commentmeta | | wp_comments | [...] +---------------------------+ 14 rows in set (0.00 sec) MariaDB [wpdbpb]> DELETE from wp_comments WHERE comment_approved = 'spam'; Query OK, 35010 rows affected (0.57 sec) |
Et voilà, 35 000 spams effacés en 0,57 sec !! Imbattable.
La table à nettoyer est wp_comment, elle a peut être été renommée par un plugin à l’aide d’un préfixe pour sécuriser WordPress. Pour résumer quelques queries utiles :
Si vous voulez nettoyer les commentaires en attente :
1 | DELETE from wp_comments WHERE comment_approved = '0'; |
Si vous voulez nettoyer les commentaires en corbeille :
1 | DELETE from wp_comments WHERE comment_approved = 'trash'; |
Si vous voulez nettoyer les commentaires en indésirables :
1 | DELETE from wp_comments WHERE comment_approved = 'spam'; |
Éventuellement, il ne reste plus qu’à scripter rapidement quelque chose en crontab pour nettoyer périodiquement le spam.