O Akismet é uma das melhores coisas que já inventaram na luta contra o spam. O plugin é muito eficiente, e são raros os casos de comentários indesejados que passam pelo filtro. Está presente na instalação padrão do WordPress, e é, provavelmente, o plugin mais utilizado do mundo.
O problema é que o Akismet é eficiente após o envio do comentário. Em blogs pequenos, ou hospedados em servidores parrudos, isso é irrelevante. Mas em blogs de grande audiência, ou hospedados em servidores fracos, o volume de spam recebido pode ser prejudicial.
Cada comentário enviado faz com que o servidor trabalhe: muito PHP é processado, e informações são escritas no banco de dados. Imaginando um cenário caótico, de um blog que recebe milhares de spams diariamente, e está hospedado num servidor ruim, dá para imaginar o resultado, não? Não? Então lá vai: site lento, erros de timeout, e encheção de saco do suporte do servidor.
A solução, usando a lógica, é barrar esse comentário antes dele ser enviado. O spam é feito, majoritariamente, por robôs, ou bots, programas que varrem a Internet atrás de sites que rodam sob WordPress, e disparam contra eles suas armas, preenchendo automaticamente os campos do formulário de comentário: nome, e-mail, site e comentário. Se inserirmos um campo extra, incomum, e obrigatório, o bot fica incapacitado de enviar o comentário, simplesmente por não saber a resposta. Simples, não?
Mas, como fazer isso? É aqui que o Math Comment Spam Protection, um plugin desenvolvido pelo site alemão Software Guide, entra. Quando ativado, ele adiciona uma soma matemática no formulário, e o comentário só “entra” se a soma estiver correta. Como, até o momento, bots não têm essa capacidade, eles param ali, e seu blog fica, enfim, livre dessas pragas.
A instalação é um pouquinho diferente do convencional, pois envolve a edição do tema – mais especificamente, do arquivo comments.php. Baixe o plugin, descompacte-o e envie a pasta gerada para a /wp-content/plugins/, do seu WordPress. Ative-o, e em seguida, vá até o menu Options, e clique em Math Comment Spam, a fim de configurá-lo. Só altere os campos de mensagens de erro (Error Messages); os demais não precisam ser alterados.
Vá ao editor de temas (Presentation, Theme Editor), e selecione o arquivo comments.php (Comments). Nele, localize o formulário de comentário. Ele começa com a seguinte linha:
Localizado, insira o código (este aqui) no lugar que julgar mais conveniente – eu coloco entre os campos de site/blog e área de texto.

Este código está otimizado para o tema padrão do WordPress. Nada impede, todavia, que adaptações sejam feitas. Dêem uma olhada em como ficou no meu blog (imagem acima). Lá, aliás, tinha um problema sério com spam nos comentários. Não era o suficiente para prejudicar o servidor, mas estava próximo disso. Após a instalação do Math Comment Spam Protection, não recebi mais nenhum spam do tipo; só trackbacks, mas isso é assunto para outro post.
Espero que o tutorial lhes seja útil, e até a próxima!
Teste!
Eu tenho uma solução melhor. É o plugin Challenge.
Não só ele adiciona o campo automaticamente em todos os temas como permite fazer diversos tipos de pergunta, não se limitando às matemáticas.
Você pode fazer operações matemáticas diferentes ao invés da soma, pode escolher um grupo maior de números, pode perguntar se a pessoa é humana (e colocar as respostas “sim, não, talvez, não sei” como respostas esperadas, etc.
Interessante esse plugin, vou fazer uma explanação sobre ele no meu blog. Realmente quando falamos em poucos comentários fica fácil administrar, mas quando a quantidade de comentários é elevada, além da paciência para ficar conferindo um por uma para ver se é spamm mesmo, tem a questão do consumo de banda.
Uma ótica dica!
Obrigado pela dica!
Olá, estou tentando instalar e está dando erro quando coloco o código na página comments.php. Você poderia me enviar por email um exêmplo de como ficaria o código inserido no formulário? Ou mesmo postar aqui. Muito obrigado.
Aqui o erro:
Warning: array_rand() [function.array-rand]: Second argument has to be between 1 and the number of elements in the array in C:\Arquivos de programas\EasyPHP 2.0b1\www\wp-content\plugins\math-comment-spam-protection\math-comment-spam-protection.classes.php on line 71
Uso esse sistema e foi o que resolveu meus problemas com Spam. Não é 100% mas se tratanto de tecnologia não existe nada 100% eficaz.
Eu tentei umas 40000 vezes colocar na frente: /wp-content/plugins/ mais não deu.
Parece que não é wp-content/plugins para colocar plugins, tantas vezes, um dia para o outro não funciona. O que devo fazer??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
Olá Érico no meu blog infelizmente este plugin está dando erro, mesmo colocando a resposta correta ele acusa como resposta inválida uma pena, pois é uma mão na roda para tirar a carga do servidor, abçs.
Muito bom, estava tentando usar esse plugin. Só que eu pecava em não mudar o comments.php.
Valeu mesmo pela dica.
Excelente tutorial, muito obrigado!!!!!
Alenônimo, deu uma olhada no CHALLENGE e achei bem interessante. Mas tenho uma pergunta pra ti: tem traduzido para português brasileiro?
Pingback: Morte aos SPAMS! « :: ACIDLIPS ::