Procédure vidéo : Comment purger sa base de données suite aux frasques d’Akismet

On vous recommande d’utiliser Akismet pour gérer les spams que vous recevez sur votre blog.

C’est un excellent conseil. Ils sont vraiment puissants et gèrent près de 99% des spams reçus.

Le souci, c’est qu’il ne font pas leur job jusqu’au bout. Il manque un petit coup de balai !

serious young man in casual shirt with sweeping brush

En effet, même quand vous supprimez manuellement les spams que vous recevez, WordPress supprime bien les commentaires qui sont rentrés en spam, mais par contre, il ne suppriment pas les lignes qui se sont rentrées dans la base secondaire.

Ce qui fait qu’à raison de 50 à 100 spams par jour, votre base de donnée augmente d’environ 1 Mo par jour, même si vous supprimez vos indésirables.

Voyez jusqu’où ça peut vous mener en une année, voire en 6 mois.

Je vous propose donc une procédure SQL pour régler ce problème soit dans votre base de données, soit directement dans WordPress.

Ce qui fait que chaque appui sur le bouton de suppression des spams, WordPress videra également la table secondaire des lignes concernées.

Voici la vidéo qui vous explique tout :

Les codes sont les suivants :

1. A mettre dans la base de données :

DELETE FROM wp_commentmeta WHERE meta_key LIKE ‘%akismet%’

ATTENTION : Il ne FAUT PAS vous mettre sur l’affichage de la base wp_commentmeta pour exécuter cette fonction. Il faut vous mettre sur la page qui affiche toutes vos tables, puis cliquer sur “SQL” :

table-sql-pour-akismet

2. A mettre directement dans WordPress

Il faut que vous trouviez le fichier “edit-comments.php” qui se trouve dans le dossier wp-admin de votre blog.

Ensuite vous rajoutez ces lignes au bon endroit (voir la vidéo) :

$wpdb->query("DELETE FROM wp_commentmeta WHERE meta_key LIKE ‘%akismet%’");
$wpdb->query("OPTIMIZE TABLE  `wp_commentmeta`");

Enregistrez et validez.

N’oubliez pas de sauvegarder avant l’ancien fichier edit-comments.php chez vous et de le renommer en edit-comment-ancien.php pour revenir à l’ancienne configuration en cas de souci.

Précédent

Comment proposer un ebook en téléchargement sur son blog

Suivant

Un petit bout d’universalité…

  1. BK

    Hello Yvon,

    100 spams par jour… je ne les ai pas encore (pour l’instant, j’en suis à 115 au bout de 5 mois d’exercice).

    Mais ça peut quand même être utile… un jour !

    Bon week-end

    Bernard

  2. Salut Yvon,

    Il y a une petite coquille sur le code que tu as fourni, peut-être due à la gestion des guillemets par WordPress.

    Il faut en effet mettre des guillemets classiques avant et après %akismet% et non pas des apostrophes comme ça ‘. Sans ça, ça sort en erreur.

    On peut aussi en profiter pour faire une sauvegarde totale de sa bdd au cas où ;)

    Bonne journée,

    Robin

  3. Bonsoir Yvon,
    Je sais pas si je dois prendre ça bien ou plutôt m’inquiéter mais je suis looooiinn d’être envahie par le spam.

    Enfin…tant mieux…y paraît’ :(

    • Bonsoir MArie Eve

      Ca veut dire que tu n’es pas franchement positionné sur Google ;)
      Quand on regarde la différence entre Cédric et moi par exemple, c’est du simple au décuple (10 fois plus)
      Mais il est 10 fois plus présent que moi sur Google ;)

      • aaaaah je ne pensais pas que ça venait de là. Merci de l’info. Je vais vérifier mes positions, mais en effet, je crois que je ne suis pas bien positionnée.

        C’est volontaire d’ailleurs, suite à tes conseils, je travaille très peu le référencement ;) mais j’ai l’impression que ça n’est pas très bénéfique car je reçois quand même de plus en plus de visiteur de google, mais de moins en moins qualifié. :-o

  4. Bonjour Yvon,

    Je n’ai pas fouillé à fond mais il existe peut-être un plugin qui fait ce nettoyage ?

    Bon dimanche
    Pat

    • Salut Patrick

      Certainement, oui. Encore que ce n’est pas sûr.
      La méthode est rapide. Et utilisable en l’état.
      Personnellement, je me moque un peu de la manière tant que j’ai le résultat.
      Je donne ces procédures pour info, comme Morpheus montrait la porte à Néo.
      Après c’est à l’utilisateur de choisir de l’utiliser ou d’utiliser autre chose de mieux, de plus génial, de plus court, de plus sain, que sais-je…

      Yvon

  5. Hello Yvon,

    ahhh… super, merci, j’attendais cet article avec impatience, je ne voulais pas risquer de faire des bêtises.

    Alors j’ai déjà été faire le nettoyage d’un blog qui est hébergé chez 1&1 (le truc à ne surtout pas faire si on prévoit de développer un gros blog !) et il faut bien faire attention à la chose suivante : la table wp_commentmeta s’appelle chez eux wp_1commentmeta.

    Il faut donc juste remplacer ça dans la requête sinon vous aurez un message d’erreur, ce qui peut parfois amener un stress tel qu’on reste bloqué, alors que c’est tout bête. Même chose bien sûr pour le code à insérer dans le fichier edit-comments.php.

    Ce nettoyage en ce qui me concerne a permis quand même de virer 1080 entrées et de gagner 0,5 Mo, c’est toujours bon à prendre. Maintenant que je me suis fait la main, je vais m’attaquer à mon gros blog. J’ai peur de ce que je vais trouver ! :hin:

    Autre chose : comme l’a souligné Robin, il faut faire attention aux apostrophes lorsqu’on recopie tes lignes de code, le mieux c’est de passer par un bloc-notes avant de les coller dans la fenêtre de requête SQL, tout simplement.

    Amicalement,
    Alexandra

    Petit retour d’expérience : d’une part, la nomenclature change selon les bases de données (avec bien sûr toujours commentmeta) donc il faut bien noter le nom de la table en question, et d’autre part, le nombre d’enregistrements pour chaque spam qui n’est pas systématique (je n’ai pas trouvé trois enregistrements comme toi).

    Pour ma part, je trouve la fonctionnalité anti-spam de CommentLuv particulièrement efficace (mais la dernière version de CommentLuv ne fonctionne pas sur 1&1) : je n’ai plus aucun spam automatique et je ne trouve éventuellement dans les spams que quelques rares commentateurs qui n’ont pas coché la petite case ad hoc, donc très faciles à repêcher.

    • Bonsoir Alexandra

      Merci pour ton retour.
      En général, je passe toujours par la base de données en premier.
      En effet, quand tu supprimes une ligne directement en cliquant sur « Effacer », alors la requête effectuée s’affiche.
      Tu n’a plus qu’à la copier et à la modifier légèrement comme dans mon exemple.

      Bonne soirée
      Yvon

  6. Salut Yvon

    Pas fan d’Akismet du tout. Il filtre sans arrêt des commentaires légitimes. J’utilise spam stopper et plus aucun problème de filtrage, ni de base de donnée.

    • @Thierry
      à propos de spam stopper, voilà l’avertissement de WP:
       » ! Cette extension n’a pas été mis à jour plus de 2 ans. Il ne peut plus être maintenu ou pris en charge et peut avoir des problèmes de compatibilité lorsqu’il est utilisé avec des versions plus récentes de WordPress.  »
      Je pense donc que ce plugin ne doit plu être très efficace, non?
      Cordialement,
      Armand

  7. Bonjour Yvon,

    Merci pour ce tuto, qui sera d’une grande utilité à beaucoup de blogueur, j’en suis sûr ! :super:

    Amicalement,
    Laurent

  8. Bonsoir Yvon,

    Je guettais cet article avec impatience et bien que ne maîtrisant pas ces langages informatiques mystérieux, ta vidéo était très pédagogique ! Il me reste à me planifier un créneau pour faire la manip calmement sans précipitation.

    Tu donnes également un très bon conseil aux blogueurs débutants avec la duplication de l’ancien fichier avant de modifier le code. Si j’en avais eu conscience quand j’ai démarré mon blog et que j’ai voulu, pauvre inconsciente que j’étais (!), aller intervenir dans le code sans rien y connaître un soir à une heure avancée, cela m’aurait évité une nuit + une grosse journée de stress à me dire que j’avais tout perdu et sans comprendre ce que j’avais mal fait ! Je te garantis que cela m’a servi de leçon ! D’ailleurs maintenant j’hésite même à aller toucher au code : l’angoisse de l’écran blanc ! ;)
    Donc oui, dupliquer les fichiers est primordial et connaître un minimum ces langages qui nous permettent d’avoir un blog, ce sont de sacrés bons conseils !

    Merci pour ta patience et ton enseignement pas à pas.

  9. Salut Yvon,

    Merci pour cette procédure qui m’enlève une épine du pied. Grâce à toi j’ai l’un de mes plug-in de sauvegarde qui refonctionne correctement et automatiquement. J’ai enfin compris pourquoi ça « buguait »

    Cela faisait un moment que j’étais obligé de refaire des sauvegardes manuelles et je n’avais pas pensé au problème « Askimet »…

    Merci :)

    Pour répondre à Alexandra, je suis hébergé également chez 1and1 avec l’un de mes « gros blogs » et je n’ai pas de problèmes particuliers.
    Ma table s’appelle bien « wp-commentmeta » et non « wp_1commentmeta« , et j’utilise toujours la dernière version de wordpress.
    Peut-être qu’il existe des variantes mais personnellement je n’ai pas eu le même « soucis » qu’Alexandra.

    Merci également à Jérémy qui me facilite la tache avec son code PHP. En effet pour l’un de mes blogs, j’utilise un « thème enfant » pour ne pas à avoir trop à toucher au code original et bénéficier des mises à jour éventuelle de mon « thème parent« .

    De cette manière ça me permet d’éditer et de modifier uniquement mon propre functions.php de mon « thème enfant« , qui se charge avant le functions.php de mon « thème parent » (auquel je ne touche pas le code).
    Je ne touche donc pas non plus aux fichiers PHP dans le dossier « wp-admin ».

    En résumé, merci à toi Yvon pour l’explication, l’identification du problème et les lignes de codes à insérer :)
    Et merci à Jérémy pour l’adaptation au fichier functions.php qui va bien pour l’un de mes blogs, où je ne souhaitais pas toucher à autres choses qu’aux fichiers présents dans le dossier wp-content par mesure de sécurité.

    Bonne journée à tous :)

    David.

  10. Bonjour,

    Depuis que j’ai la purge en place, je ne recois plus mes backups de mon blog !!

    J’ai pourtant voulu supprimer les 2 lignes, mais elles ont disparu !
    J’ai aussi voulu ré-installer le plugin « backup » mais rien n’y fait !!! :cry:
    Même en faisant un backup manuel, je n’arrive pas à le recevoir !

    Si quelqu’un à une explication, je suis preneuse :-P

    • Bonjour Jérémy,

      Oui, j’ai essay d’autres plugins de backup, mais ça a générée plein d’erreur… et ça na pas mieux fonctionné.

      J’ai donc remis l’autre plugin, mais rien n’y fait.

      C’est vrai que depuis que j’ai mis la nouvelle version de WordPress, j’ai plein de petits problèmes qui me prennent beaucoup de temps ! ppffff…

      Même un backup manuel, je n’arrive pas à faire.
      Heureusement que j’ai l’hébergement qui en fait, mais seulement une semaine de sauvegarde !

      Bon bon… Merci de ton aide. Je vais voir ce que je peux faire

  11. Merci Yvon
    J’ai eu le probléme de surpoids de la base avec OVh qui me demandait de passer à 100 Mo (à 5,38 €/mois) ou de purger.

    Vu que le problème n’aurait été que reporté à plus tard, j’ai donc suivi scrupuleusement tes conseils du moins la 2eme partie en editant edit-comments avec dreamweaver car je ne sais pas où tu as trouvé la base de données mysql pour vérifier les tables.

    Bon à présent j’attends de voir sur Ovh le nouveau poids de ma base de données, en espérant que… l’espoir faisant vivre s’pas ?
    Si çà a suffit à purger un grand merci. Où dois je t’envoyer le chéque pour un an d’ économies réalisées ? ;-)

    • Je t’aime ;-)

      Bonjour,

      Actuellement sur votre hébergement jadidalocations.com, vous avez une base
      de données jadidalomod1 installée sur le serveur mysql5-2.300gp.

      Nous vous informons que l’état opérationnel de votre base de donnée a changé
      et est à « OK ». Ceci veut dire qu’elle est pleinement opérationnelle.

      Dans moins d’1 heure, le système va revérifier le quota de votre base.
      Si le quota de votre base dépasse toujours le quota recommandé votre
      base sera à nouveau passée en état « selectonly ».

      La taille de votre base de données: 0 Mo
      La taille recommandée: 25 Mo

      L’ancienne taille de votre base de données: 27 Mo

  12. Merci Yvon pour cet article instructif.
    Je commence à comprendre pourquoi mon blog ralentissait.
    Le temps de bien assimiler tes instructions et je m’en vais les appliquer.
    J’en profite pour remercier Alexandra car je suis aussi chez 1&1
    Armand

  13. Bonjour Yvon, bonjour tout le monde :D

    J’ai trouvé cette vidéo très intéressante, merci.

    Moi non plus je n’ai pas tant de spam que cela (j’allais ajouter « hélas ! » ^^)

    Pour ma part, lorsque je sauvegarde un fichier php avant d’en transformer le contenu, je le renomme en ajoutant trois « A » majuscules (ex: edit-commentAAA.php)

    Je faisais ça intuitivement et dès le début, avant même de lire que c’était hautement conseillé en cas de plantage.

    En plus, ça a l’avantage d’être rapide (je copie/colle les trois A afin de ne pas avoir à les remarquer à chaque fois)

    L’astuce pour ajouter un code au bouton « supprimer spam » est tout bonnement génial. Elle n’est pas tombée dans l’oreille d’un aveugle.

    Il est vrai qu’il fallait savoir que les spam se cumule sous la forme de trois lignes consécutives dans la table de la BDD.
    En plus de cela, ce n’est pas évident de toucher à cette « bestiole » quant on est un débutant dans ce genre de bidouillage !

    D’habitude, je n’aime guère visionner des vidéos et préfère lire, mais là, je ne regrette pas d’être allé jusqu’au bout.
    Je vais finir par croire que les vidéos ont du bon, finalement, et ce, malgré leur « poids » qui me fait encore hésiter…

    Bref, merci pour cette astuce qui devrait alléger notre travail (sans mauvais jeux de mots) :hin:

    Bien à vous.

    Serge Baccino

  14. Bonjour Yvon !

    Merci pour l’info. Je viens de faire l’opération. Cela marche super. je vais faire un cron aussi.

    Pour les requêtes j’ai dû enlever les apostrophes. Quand le nom de la table et des colonnes sont sans espace, pas la peine de les mettre.

    J’ai remarqué aussi que dans la vidéo tu confondais souvent table et base… ;-)

    Encore merci.

Laisser un commentaire

;) :super: :red: :hin: :haha: :evil: :cry: :coeur: :cafe: :beer: :D :?: :-z :-x :-o :-P :-? :) :( 8))

Créé et géré avec par Yvon CAVELIER