Jack Barber / Website Design

Blocking Spam Referral Traffic with .htaccess

Over the past few weeks it became apparent that my server was handling quite a lot more traffic than it used to - resulting in nasty spikes in CPU and memory usage.

With my hosts (Bytemark in York) convinced there was nothing physically wrong with the server I dug a little deeper to try and ascertain what was causing the problem.

Looking at some Google Analytics data for a number of my busiest websites, it became apparent that they were handling a lot of referral traffic from unfavourable sources. I can't really say what the purpose of these sites are - but all they seem to do is direct quite a large amount of traffic to random websites.

Not only does this result in stretched server resources, but it also totally messes up the Google Analytics data (making a site look much busier than it actually is).

Blocking the referrers seemed like a good idea, so I've used .htaccess to do so, making use of this very usueful .htaccess generator.

This is what I now have at the top of my .htaccess files for the sites which appeared to be getting most of this referral traffic:

RewriteEngine on
 RewriteCond %{HTTP_REFERER} trafficmonetize\.org [NC,OR]
 RewriteCond %{HTTP_REFERER} 4webmasters\.org [NC,OR]
 RewriteCond %{HTTP_REFERER} webmonetizer\.net [NC,OR]
 RewriteCond %{HTTP_REFERER} 100dollars\-seo\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} buttons\-for\-your\-website\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} 24753470\.videos\-for\-your\-business\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} semaltmedia\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} best\-seo\-offer\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} howtostopreferralspam\.eu [NC,OR]
 RewriteCond %{HTTP_REFERER} erot\.co [NC,OR]
 RewriteCond %{HTTP_REFERER} guardlink\.org [NC,OR]
 RewriteCond %{HTTP_REFERER} www1\.free\-social\-buttons\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} www\.event\-tracking\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} www2\.free\-social\-buttons\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} free\-social\-buttons\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} www3\.free\-social\-buttons\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} www4\.free\-social\-buttons\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} buttons\-for\-your\-website\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} www7\.free\-social\-buttons\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} www\.Get\-Free\-Traffic\-Now\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} www5\.free\-social\-buttons\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} best\-seo\-offer\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} free\-share\-buttons\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} www6\.free\-social\-buttons\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} www8\.free\-social\-buttons\.com [NC]
RewriteRule .* - [F]

Feel free to copy this into your .htaccess file - the list of sites is compiled from the referrer data in from Google Analytics for a number of the affected sites.

Have you got any suggestions to make to improve this - or a different approach? Get in touch and let me know!