Yesterday I talked about developing a comment spam prevention plugin with zero false positives. I am currently using it on all of our blogs. Today I want to talk briefly about its origin and goals.

But first here are the stats from my Simple Thoughts blog:

1095 spam comments were blocked by Angsuman's Comment Guard plugin in 23 hours 46 minutes. 99.094% of the comments you received during this time were spam.

Stats for Anaconda Theme blog:

1982 spam comments were blocked by Angsuman's Comment Guard plugin in 3 days 10 hours 14 minutes. 99.748% of the comments you received during this time were spam.

As you can see it is quite effective. After I installed the Comment Guard plugin my Akismet queue is empty. I haven't received any spam comments since. However I have received some valuable comments during this time. I have gained more time to answer to them as I do not have to anymore clean up spam from Moderation queue (used to get around 100 per day from Simple Thoughts blog alone; spams which passed through Akismet queue)

BTW: I did receive a comment in Chinese which was suspiciously small in length and so I suspected it to be spam. However on Google translation I realized it is a valid comment asking me when I would release the next version of Anaconda theme. I am impressed by how much you can write in little space in Chinese. See for yourself here.

Comment Guard is a labor of love more than anything else. It is born out of my strong experiences and pain with handling comment spam in several of my blogs. I respect my readers and will not take them through hoops to post a comment. However I could never find a clean way in numerous plugins I used to completely stop robot / program generated comment spam.

Anti-spam plugins adopt questionable techniques like checking RBL (and other such black hole lists) for identifying spam IP's. This is plain wrong. Many people, for example, connect from countries like India where ISP's primarily issue dynamic IP's. Spam Karma 2 blocks them from posting comment in many cases because the RBL it uses blocks the whole dynamic IP ranges solely because they are dynamic and sometimes because someone from these IP's have in the past spammed someone. This is something people do not have any control. The usual solutions suggested are contacting the IP to remove these addresses. It is easier said then done. In India ISP's enjoy near-monopoly (like BSNL) and most often they do not care about their customers, let alone do something at their request. Nowadays some RBL's have started charging fees for removal! In essence checking RBL is a bad policy. It is only acceptable if you do not care a bit about your readers and what they have to say.

Then there are checking for proxies. Again there are RBL's which are used to check for open proxies and many of the anti-spam plugin decide to block them. This is a draconian policy. In many countries like China or even Iran people are forced to access web through proxy to get access to most content. Blocking proxies effectively blocks lots of valuable readers.

Plugins like SK 2 makes guesses about user behavior based on the author's observation which in many cases are wrong. A case in point. I tried to contact a customer who was having problems. I wasn't able to connect with him via email as it was getting bounced due to mail server error. So I tried posting a comment to his blog. The comment kept getting rejected , most likely because SK2 determines that comments can only be of certain size and no more! So I persisted and tried submitting, without success, with smaller and smaller size. After some attempts SK2 determined I was a spammer and informed me that I was reported to Akismet.

When you go down and dirty with the code you will find tons of such inane assumptions. I can go on whole night about them. The bottomline is I couldn't trust my blog with SK2 or Bad Behaviour. Even Akismet has lots of false positive issues. However it is better of the three. Even then I was getting over 100 spams in moderation queue for this blog alone. I was going way over my bandwidth and people thought what was I doing all day.

Out of this frustration Comment Guard was born. I am very happy to say that so far it has given me 100% success rate . I am testing it on all my blogs and will continue to do so for about a month, or till I am confident that I have fully tamed the beast. I know that I will be fully happy with this plugin if all it does is stop 100% of spams on my sites only. I would however be happy to enroll beta testers after about a week. So if you would like to test it, let me know.

BTW: If you are a spammer, bring it on baby!