SEO: Nur erwünschte Bots per .htaccess zulassen

Mittlerweile gibt es unzählige Bots die rund um die Uhr Shops spidern – dadurch wird die Performance des Server belastet und letztendlich die Geschwindigkeit des Shop negativ beeinflusst. Dies ist weder gut für die Conversion Rate, noch für das Ranking in den Suchergebnissen.

Der folgende Beitrag beschreibt eine einfache Methode, wie man die Botaktivität serverseitig kontrollieren kann.

Ausschluß offensichtlicher Botbezeichnungen

Im ersten Schritt kann man Anfragen sperren, die nur eine einfachen oder keinen UserAgent aufweisen. Dies lässt sich einfach über die folgende Anweisung realisieren:

<IfModule mod_setenvif.c>
 SetEnvIfNoCase User-Agent (^$|^\$|^spider$|^bot$|^agent$|^crawl$) botswithnoaccess
 <Limit GET POST PUT>
  Order Allow,Deny
  Allow from all
  Deny from env=botswithnoaccess 
 </Limit>
</IfModule>

 
Der Eintrag ist nicht unbedingt notwendig, dient nur der groben Vorfilterung. Grundsätzlich müssen solche Filterungen in den Logfiles überwacht werden, um unerwünschte Sperrungen zu verhindern.

Zulässige Bots für den Online-Shop freigeben 

Im zweiten Schritt kann man über einen weiteren Eintrag in die .htaccess die UserAgent verifizieren, die den Shop crawlen dürfen:

RewriteCond %{HTTP_USER_AGENT} (bot|agent|spider|crawl|extractor) [NC] 
RewriteCond %{HTTP_USER_AGENT} !(googlebot|adsbot-google|bingbot|
       msnbot|twitterbot|yahoo-mmcrawler) [NC] 
RewriteCond %{Request_URI} !^robots.txt 
RewriteRule . robots.txt [PT,L] 

 
Die erste Zeile prüft „grob“ ob der UserAgent einer angegebenen Begriffe beinhaltet, die Liste kann beliebig erweitert und verändert werden. In der folgenden Zeile werden dann die UserAgents definiert, die den Shop spidern dürfen (z.B. von Google). Abschließend wird noch geprüft, ob ggf. die robots.txt aufgerufen wurde, die dann grundsätzlich ausgeliefert wird – ob der Zugriff geblockt wird oder nicht. Daher sollte immer auch eine „robots.txt“ angelegt werden. Alternativ kann eine andere Textdatei angelegt werden, z.B. mit einem Hinweistext.

Problem Fakebots

Da die Prüfung ausschließlich auf den leicht zu manipulierenden UserAgent abzielt, decken wir damit leider nicht das große Problem der FakeBots ab – das sind Bots sich vor allem als GoogleBot ausgeben, um nicht über die beschriebenen Methoden geblockt zu werden. Von einer .htaccess-basierten IP-Range-Block-Lösung raten wir ab, zumal z.B. Google keine IP-Ranges veröffentlicht. Google selber empfiehlt eine DNS-Check für die Verifizierung des Bots durchzuführen, dies ist aber nur innerhalb des Shopsystems möglich oder man leitet jede Anfrage vorher über ein Script um, daß die Prüfung durchführt und dann auf die ursprüngliche URL weiterleitet. Das kann je nach Größenordnung der FakeBot-Aktivitäten eine Alternative sein, die man in Betracht ziehen sollte.

Bei der IP-Prüfung eines tatsächlichen Googlebots würde das Ergebnis z.B. wie folgt ausfallen:
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
66.249.67.106 » crawl-66-249-67-106.googlebot.com

Warnhinweis

Abschließend möchten wir darauf hinweisen, daß wir keinerlei Verantwortung für die Richtigkeit der genannten Methoden übernehmen. Der Ausschluss von Anfragen über die genannten Techniken bürgt die Gefahr, daß man unbewußt mehr Anfragen ausschließt als man möchte – daher ist es zwingend notwendig, die Logfiles des Webservers umfassend zu überwachen und die UserAgent-Listen an seine Bedürfnisse anzupassen.

Auf keinen Fall empfehlen wir den Einsatz solcher Techniken, wenn dafür das nötige technische Grundverständnis fehlt.