Eric Nagel

Blocking Spam Comments By IP

I have been, or can be if you click on a link and make a purchase, compensated via a cash payment, gift, or something else of value for writing this post. Regardless, I only recommend products or services I use personally and believe will be good for my readers.

Wordpress Comment Spam
Vinny O’Hare and Missy Ward had a conversation on Twitter today about blocking spammers by IP, something I’ve done for a while. But how do you know when to block an IP, and when to just mark the comment as spam and move on?

@missyward We have been banning IP’s at the server level due to spam. Seems to help a lot ask @loxlyless than a minute ago via HootSuite

First of all, if you don’t have Akismet installed, you’re just asking for trouble. I up the challenge a bit by requiring a captcha to be answered with the reCAPTCHA plugin. Even so, some spam still gets submitted and most of the time flagged as spam by Akismet. To ban repeat offenders by IP, do the following:

First, find those who repeatedly spam you. Run this SQL query:

SELECT count( * ) AS nCnt, comment_author_IP FROM wp_comments WHERE comment_approved = 'spam' GROUP BY comment_author_IP ORDER BY nCnt DESC

What you’ll get back is a table of those who spam you, ordered by how many times they spammed you:

Wordpress Comment Spam Count

Now you can see who spams you the most, and decide if you want to block those IPs. Let’s say I want to ban 178.32.81.224. I download my .htaccess file, and open it in a plain text editor. Then, at the very top, add:

order allow,deny
deny from 178.32.81.224
allow from all

Now if the user from 178.32.81.224 comes back, they’ll get a 403/Forbidden response, banned from my site forever.

Sure, they can get another IP, but since they spammed me 6 times from this same IP, I’m sure numbers 7, 8, and 9 are right around the corner. But, not anymore.

What else do you do to stop spammers from commenting on your blog? Oh, and no spam comments, please 🙂