Eliminare definitivamente i commenti di spam su Wordpress

Wordpress ha una particolarità nella gestione dei commenti di spam che a qualcuno potrebbe risultare fastidiosa: non li elimina definitivamente ma li flagga come spam (non permettendo, quindi, la loro visualizzazione nel blog). Per fare questo sfrutta il campo comment_approved che può assumere 3 stati:

0 -> In attesa di moderazione
1 -> Approvato
spam -> Commenti di spam

La non cancellazione del commento è dovuto al fatto che, Wordpress gestisce automaticamente (in base a delle keyword impostate dal Pannello di Amministrazione), sia la semplice Moderazione Commenti che la BlackList Commenti; e come ogni cosa automatica è soggetta ad errore! Per cui i messaggi vengono salvati lo stesso nel database (nella tabella `wp_comments`) ma non vengono visualizzati sul blog. Il problema è che a lungo andare questi commenti flaggati come spam possono aumentare a dismisura: nel mio caso su un totale di 1969 commenti ben 989 erano di spam!

Diciamo che accumulare inutilmente messaggi di spam mi dava un pò fastidio; se ci si mette poi che andavano anche ad aumentare le dimensioni del mio database e dei miei backup quotidiani, allora ho deciso di eliminarli. Una volta avevo letto anche di un plugin per Wordpress ma, non ricordando più dove andarlo a scaricare, ho deciso di usare qualche riga di SQL direttamente da PhpMyAdmin.
Ecco i passi che ho seguito, dopo aver opportunamente eseguito il backup della tabella wp_comments:

1. Contare il numero di commenti presenti sul proprio blog
SELECT count(*) FROM `wp_comments`;
1969
2. Contare il numero di commenti di spam
SELECT count(*) FROM `wp_comments` WHERE comment_approved = 'spam';
989 commenti
3. Per maggiore sicurezza ho fatto stampare a video gli id dei commenti ho verificato che appartenessero a commenti di spam veri:
SELECT `comment_ID` FROM `wp_comments` WHERE comment_approved = 'spam';
4. Cancellati tutti i commenti di spam
DELETE FROM `wp_comments` WHERE comment_approved = 'spam';
Righe cancellate: 989 (La query ha impiegato 0.0714 sec)
5. Ricontato il numero di commenti presenti dopo la cancellazione
SELECT count(*) FROM `wp_comments`;
980
6. Verificato che non ci fossero più i commenti di spam
SELECT count(*) FROM `wp_comments` WHERE comment_approved = 'spam';
0

Dimensioni tabella prima della cancellazione dello spam: 1.136.391 byte
Dimensioni tabella dopo la cancellazione dello spam: 411.186 byte


7 Commenti to “Eliminare definitivamente i commenti di spam su Wordpress”

  1. 1
    Treviño ha detto

    Grazie per il tip, però non so se usi già qualche forma di protezione maggiore con wordpress… Io ne ho provate un po’, ma secondo me il migliore è bad behaviour: http://www.ioerror.us/software/bad-behavior/.

    Da quando l’ho messo non ho ricevuto più alcuna forma di spam… A dir poco spettacolare :)

  2. 2
    maurizio ha detto

    questa proprio non la sapevo …
    da me sono solo 54 ma preferisco stroncarli sul nascere.

    grazie per la dritta

  3. 3
    Barbara ha detto

    Grazie mille davvero utilissimo :)

  4. 4
    Antonio Troise ha detto

    Sono contento che questa guida serva a qualcuno :) Grazie Treviño, proverò ad usare bad behaviour e poi ti dirò!

  5. 5
    Taglia ha detto

    Ma nessuno usa Askimet ?

  6. 6
    cateyes ha detto

    Anche io sono completamente a favore di Akismet, bisogna solo fare una registrazione su http://www.wordpress.org (non importa se il blog non viene usato) e mettere il codice che viene fornito dentro il plugin del nostro blog.
    E voilà Akismet si occupa di filtrare il tutto e ogni tanto dobbiamo solo ripulire i commenti con un agile pulsantino.

    In alternativa c’è anche Spam Karma 2 che è davvero notevole!
    unknowngenius.com/blog/wordpress/spam-karma/

    Tra i due non so cosa preferire, ma per un utente poco esperto raccomando alla grande Akismet!

  7. 7

    Commenti di spam su Wordpress: eliminarli definitivamente…

    Oggi, nell’eseguire il backup del database di un sito Wordpress mi sono accorto che stava diventando troppo pesante. Non vedevo il motivo di così tanto spazio occupato. Così, attraverso phpmyadmin ho iniziato a cercare le cause. Appena arrivato…..

Lascia un messaggio

Il tuo commento:


Chiudi
Invia e-mail