For Wordpress I have a two pronged approach. The first is Askimet which still catches a lot of spam, and the second (much more effective approach) has been the plugin "IP Geo Block".<p>I started off with a blacklist containing the usually spammy suspects (China, India, Ukraine, Russia, Brazil), since they appeared to be the source of most of my spam comments.<p>It was OK, but stuff was still getting through. I then found it better to maintain a whitelist:<p><pre><code> US,GB,CA,DE,NL,SE,NO,DK,FR,ES,IT,BE,PL,SI,SK,LI,CH,PT,AT,AU,NZ,FI,EE,IE,IS,JP,LU,LV,ZA
</code></pre>
My theory is that anyone (excluding VPN users) that originates from a poor country, especially one that is non-English speaking, is more likely to be a spammer. My reasoning: spamming is a low margin business that uses outsourced cheap labour and/or countries that have a poor record of cracking down of spamming and botnets.<p>To date this has been very effective. What spam I get these days is the tamer 'test the water spam'. I think this is where spammers use new email accounts to try and get them onto Askimet whitelists (bloggers are more likely not too mark these as spam). There are never any website urls in the content though there maybe a link in the website field, and the email reads something like:<p><pre><code> This is very interesting, You’re a very skilled blogger.
I’ve joined your feed andd look forward to seeking more of your great post.
Also, I have shared your site in my social networks!
</code></pre>
Here are my stats (blocked comments by country). I don't get many comments on my blog in total anyway:<p><pre><code> Blocked by countries
CN: 3787
RO: 76
VE: 236
TR: 133
ID: 69
IN: 12
SC: 30
AR: 3
AL: 1
TH: 46
BR: 33
UA: 284
RU: 145
CZ: 4
IL: 8
MO: 2
MY: 4
VN: 9
EU: 4
SG: 9
LT: 1
EG: 11
HR: 5
BD: 5
MX: 1
PH: 1
TW: 29
PE: 3
PK: 3
TJ: 1
RS: 3
KR: 5
HK: 45
CO: 6
DZ: 6
GR: 2
PR: 1
IR: 3
NG: 6
LY: 1
CR: 1
MD: 3
BA: 1
PA: 1
SD: 1
IQ: 7
MM: 1
CL: 3
AE: 2
KH: 2
BI: 1
NP: 1
HU: 4
PY: 2
A2: 2
A1: 1
KZ: 1
EC: 2
LB: 1
TN: 1</code></pre>