16

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?

0

5 Answers 5

15

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.

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

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.

3

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.

2
  • 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. Commented Aug 11, 2010 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
    Commented Aug 12, 2010 at 5:14
3

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;

}
0

Comment spams can be reduced by eliminating all direct requests to your blog's comments-post.php file. This will block the automated scripts and will not allow them to bypass your comment form. You can achieve it with placing this php function in your functions.php file

function check_referrer() {
    if (!isset($_SERVER['HTTP_REFERER']) || $_SERVER['HTTP_REFERER'] == '') {
        wp_die(__('Any Message'));
    }
}
add_action('check_comment_flood', 'check_referrer');

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