Below is a simple solution to stupid, yet annoying spam problem. I never actually realised how bad it can get until I started this blog. Not that I get a lot of visitors and genuine commentators, but for some reason I used to get approximately 10 spammy comments per day - that's across all blog posts.
The idea for this spam block is very simple: apparently spam bots rely on the presence of certain fields in your HTML comment form. If you change names of those fields on the server, that will confuse hell out of those poor spambots that try to help some shady SEO dudes to make their living. It doesn't have to be a big change - just adding an extra "1" or "a" in front of every value for "name" attribute on ‹input › tags.
This method requires editing of your comments.php file. Since this file is a part of the Wordpress installation, it can be overwritten whenever you happen to upgrade your Wordpress or theme next time, thus removing your superior, tailor-made spam protection. So please consider this drawback and whether that's a showstopper for you at all.
Step by Step Guide
Open comments.php file. Most likely you'll be using some sort of a theme, so this file is usually located under wp-content/themes/[theme-name]/comments.php
Find line that contains call to comments_form() function. It looks something like this:
For every combination of name="..." add an arbitrary character, say "z" in front of the value, so it looks like this:
Notice how we specifically select only elements with name that starts with the arbitrary character (in this case "z") in our $('#commentform').children('[name^="z"]') statement? So if you were to use some other character instead, make sure you modify the script accordingly
Hope you find this helpful. Let me know of any comments, concerns or questions.