Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I've got the Akismet plugin on my WordPress site but I've been getting more and more spammy comments (that get caught). I'm amazed at the number as the site isn't that popular and doesn't have much traffic. Are there any methods for reducing spam?

share|improve this question
add comment

4 Answers 4

up vote 14 down vote accepted

For my blog, I too run Akismet to catch any spam that is posted to my blog, but I also prevent spam from being posted in the first place using a few plugins:

  1. Cookies For Comments requires that people leaving comments have cookies and CSS stylesheets enabled. A stylesheet is added to your site that when loaded sets a cookie. This cookie is then looked for when a comment is left. No cookie? The comment is rejected.

    This is effective because most spam bots do not load stylesheets or accept cookies. Note this will not prevent spam left by humans (it'll be Akismet's job to catch that).

  2. Disable Trackbacks does exactly what it says it does. When you receive spam pings (links from other blogs), most often those are in the form of the deprecated trackback instead of the better and more modern pingback. Trackbacks, when used normally, require the person sending the trackback to enter a special URL from your blog into their blog. Trackbacks are pretty much never used legitimately anymore, so you can safely disable them and avoid lots and lots of ping spam. Akismet will take care of any pingback spam (it happens, but not nearly as much).

With those two plugins installed along side Akismet, I only get a few spams and very rarely do any of them actually make it onto my blog.

Hope that helps.

share|improve this answer
1  
We use cookies for comments. Works like a charm. –  Dan Gayle Aug 11 '10 at 22:08
1  
Except that if a user rejects cookies, he wouldn't be able to leave a comment. –  thunderror Aug 12 '10 at 2:45
    
I wondered if adding nonces might help as well: wordpress.stackexchange.com/questions/478/… –  hakre Aug 24 '10 at 12:00
    
@hakre, how would you implement it? add the snippet from the link to the functions.php? –  Tara Jan 8 at 22:30
add comment

Most of the spam I get is via the contact form, always using a gmail address. I take the time to report every single one of them to Google. I figure since they are trying to use that gmail address then the sooner I help get it taken down, the less ROI they will get on that method and they will simply stop trying.

Akismet has been very good at filtering out comment spam. Captcha is a big PITA and having to register to leave comments is a strong comment-deterrent but the easy maths question or a css hidden field are 2 options you could try.

share|improve this answer
add comment

To actually reduce spam, I'd suggest installing a Captcha plug-in. Really, though, if the spam is being caught by Akismet already, there's not much of a need to add another filter. It just adds an 'are you human?' verification step before double checking by passing the actual comment through Akismet.

Using both systems in concert will block most automated spam (i.e. bots) and filter out any "your blog is kewl! buy a rolex" junk that somehow makes it through.

share|improve this answer
2  
Both image and math based CAPTCHAs are fairly ineffective at stopping spam bots and just annoy the legitimate user. There are much better solutions out there to stop bots while not bothering the end user. –  Viper007Bond Aug 11 '10 at 21:38
2  
I have to confess that being prompted with a captcha is a great way for me (personally) to abandon a comment. –  Chris_K Aug 12 '10 at 5:14
add comment

I also use Akismet but rarely does a spam comment get thru.

This is what i do.

1. If you remove the website url field from your comment form, you'll find this will reduce both automated and manual spam comments as spammers are only interested in leaving links. You can do this by installing a plugin or using code.

2. I also removed the comment form allowed tags because they include the word email which spam bots are programmed to look for. You can do this by installing a plugin or using code.

3. Configure Discussion settings correctly. I would disable trackbacks and also set comment author must have at least one approved comment. All comments must be approved by an administrator.

You can also configure your settings so only one link is allowed however its better to not allow any unless manually approved.

Comment spam has never been a problem for me except when Akismet stopped working sometimes which isn't very often and doesn't last long but you will know about it when it happens.

enter image description here

Here's the code you can paste at the end of your child themes functions.php file to remove the website url field from your comment form:

function remove_website_url_field_comment_form($fields) {
unset($fields['url']);
return $fields;
}
add_filter('comment_form_default_fields','remove_website_url_field_comment_form');

Here's the code you can paste at the end of your child themes functions.php file to remove comment form allowed tags:

add_filter( 'comment_form_defaults', 'wpsites_remove_comment_form_allowed_tags' );

function wpsites_remove_comment_form_allowed_tags( $defaults ) {

$defaults['comment_notes_after'] = '';

return $defaults;

}
share|improve this answer
add comment

protected by toscho Jan 8 at 15:47

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.