Schnellere Webseite dank der robots.txt

Klingt komisch, ist aber so. Gerade wenn eine Webseite von vielen Bots besucht wird und die Bot-Requests einen wesentlichen Anteil an der Server-Load ausmachen, kann eine gute robots.txt den Server entlasten und die echten Besucher bekommen die Seite merklich schneller zu sehen.

Wichtig ist natürlich, dass dabei die Bots der “echten Suchmaschinen” wie Google, Bing, MSN, Yandex, etc. nicht ausgeschlossen werden da sonst die gewonnene Performance nicht mehr benötigt wird :-).

Bei meiner Suche nach diesne Bots in den Logfiles hat mir folgender Kleine Befehl geholfen:

grep robots.txt *.access.log | awk -F "\"-\"" '{ print $2 }' | sort -u

Damit liste ich alle Bot-Namen auf, die meine robots.txt aufgerufen haben. Die Liste ist nicht recht groß, aber immerhin 30 Bots, die heute auf meine Webseiten zugreifen haben.

Da meine Logfiles täglich gezippt und wegsortiert werden, kann ich also relativ leicht prüfen, welcher Bit wie viele Zugriffe gemacht hat.

Dazu schreibe ich mir für jeden Bot ein Suchpattern und zähle dann die Zugriffe seit Mitternacht. Da ich nicht so viel Aufwand treiben möchte, kopiere ich einfach die Ausgabe des vorherigen Befehls in eine Datei mit dem Namen pattern.txt die dann folgenden Inhalt hat.

AwarioSmartBot/1.0 (+https://awario.com/bots.html; bots@awario.com)
 Buck/2.2; (+https://app.hypefactors.com/media-monitoring/about.html)
 CheckMarkNetwork/1.0 (+http://www.checkmarknetwork.com/spider.html)
 Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:59.0) Gecko/20100101 Firefox/59.0
 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5 (Applebot/0.1; +http://www.apple.com/go/applebot)
 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
 Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:48.0) Gecko/20100101 Firefox/48.0
 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/77.0.3865.90 Chrome/77.0.3865.90 Safari/537.36
 Mozilla/5.0 (compatible; AhrefsBot/6.1; +http://ahrefs.com/robot/)
 Mozilla/5.0 (compatible; BLEXBot/1.0; +http://webmeup-crawler.com/)
 Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com)
 Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
 Mozilla/5.0 (compatible; MJ12bot/v1.4.8; http://mj12bot.com/)
 Mozilla/5.0 (compatible; Optimizer)
 Mozilla/5.0 (compatible; SemrushBot/6~bl; +http://www.semrush.com/bot.html)
 Mozilla/5.0 (compatible; SeznamBot/3.2; +http://napoveda.seznam.cz/en/seznambot-intro/)
 Mozilla/5.0 (compatible; SurdotlyBot/1.0; +http://sur.ly/bot.html)
 Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
 Mozilla/5.0 (compatible; adscanner/)/1.0 (http://seocompany.store; spider@seocompany.store)
 Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
 Mozilla/5.0 (compatible; coccocbot-web/1.0; +http://help.coccoc.com/searchengine)
 Mozilla/5.0 (compatible; svetabot/1.0; +http://svetabot.online/index.php
 Mozilla/5.0 (compatible; um-IC/1.0; mailto: techinfo@ubermetrics-technologies.com; Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1
 R6_CommentReader(www.radian6.com/crawler)
 Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)
 ZoominfoBot (zoominfobot at zoominfo dot com)
 bidswitchbot/1.0
 ltx71 - (http://ltx71.com/)
 msnbot/2.0b (+http://search.msn.com/msnbot.htm)

Ich gehe einfach mal davon aus, dass der User-Agent sich nicht ändert und die Zugriffe immer mit dem gleichen User-Agent durchgeführt werden. Fehlt also nur noch ein kleines Shall Skript, das in den Logs nach den Pattern sucht und mir die Anzahl der HTTP-Request ausgibt.

#!/bin/sh

SUM=0
while read p; do
  COUNT=`grep -i "$p" *.access.log | wc -l`
  echo "$COUNT:$p"
  SUM=$(($SUM+$COUNT))
done < pattern.txt
echo "###########################################"
echo "Summe: $SUM"

Das Ergebnis sieht folgendermaßen aus:

3:AwarioSmartBot/1.0 (+https://awario.com/bots.html; bots@awario.com)
 8:Buck/2.2; (+https://app.hypefactors.com/media-monitoring/about.html)
 18:CheckMarkNetwork/1.0 (+http://www.checkmarknetwork.com/spider.html)
 3:Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:59.0) Gecko/20100101 Firefox/59.0
 18:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5 (Applebot/0.1; +http://www.apple.com/go/applebot)
 553:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
 7:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:48.0) Gecko/20100101 Firefox/48.0
 5:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
 17:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/77.0.3865.90 Chrome/77.0.3865.90 Safari/537.36
 3944:Mozilla/5.0 (compatible; AhrefsBot/6.1; +http://ahrefs.com/robot/)
 20:Mozilla/5.0 (compatible; BLEXBot/1.0; +http://webmeup-crawler.com/)
 788:Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com)
 141:Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
 3505:Mozilla/5.0 (compatible; MJ12bot/v1.4.8; http://mj12bot.com/)
 6:Mozilla/5.0 (compatible; Optimizer)
 2963:Mozilla/5.0 (compatible; SemrushBot/6~bl; +http://www.semrush.com/bot.html)
 73:Mozilla/5.0 (compatible; SeznamBot/3.2; +http://napoveda.seznam.cz/en/seznambot-intro/)
 6:Mozilla/5.0 (compatible; SurdotlyBot/1.0; +http://sur.ly/bot.html)
 180:Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
 188:Mozilla/5.0 (compatible; adscanner/)/1.0 (http://seocompany.store; spider@seocompany.store)
 110:Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
 5:Mozilla/5.0 (compatible; coccocbot-web/1.0; +http://help.coccoc.com/searchengine)
 4:Mozilla/5.0 (compatible; svetabot/1.0; +http://svetabot.online/index.php
 10:Mozilla/5.0 (compatible; um-IC/1.0; mailto: techinfo@ubermetrics-technologies.com; Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1
 1:R6_CommentReader(www.radian6.com/crawler)
 17:Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)
 4:ZoominfoBot (zoominfobot at zoominfo dot com)
 11:bidswitchbot/1.0
 5:ltx71 - (http://ltx71.com/)
 28:msnbot/2.0b (+http://search.msn.com/msnbot.htm)
 ###########################################
 Summe: 12641

Alles in allem also etwa 1000 Aufrufe pro Stunde. Also alle 3.6 Sekunden ein HTTP-Request. Jetzt ist mein Server nicht so stark frequentiert, wie manch anderer Server aber es ist trotdem schon einiges. Bei insgesamt 32718 HTTP Requests im gleichen Zeitraum sind das immerhin fast 40% Bot-Zugriffe.

Nachdem ich mir zu den Bots mal die passenden robots.txt Einträge herausgesucht habe und die resultierende robots.txt mit einer etwas veralteten, aber sehr unfangreichen robots.txt Datei unter https://www.knothemedia.de/crawler-spider-robots-bots-sperren.html kombiniert habe hier das Ergebenis meiner robots.txt Datei für WordPress.


User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

User-agent: AhrefsBot
Disallow: /

User-agent: SemrushBot
Disallow: /

User-agent: SemrushBot-SA
Disallow: /

User-agent: dotbot
Disallow: /

User-agent: AwarioRssBot
Disallow: /

User-agent: AwarioSmartBot
Disallow: /

User-agent: ltx71 - (http://ltx71.com/)
Disallow: /

User-agent: BLEXBot
Disallow: /

User-agent: MJ12bot
Disallow: /

User-agent: CheckMarkNetwork/1.0 (+http://www.checkmarknetwork.com/spider.html)
Disallow: /

User-agent: NextGenSearchBot
Disallow: /

User-agent: svetabot
Disallow: /

User-agent: coccocbot-web
Disallow: /

User-agent: SEOkicks
Disallow: /

User-agent: SEOkicks-Robot
Disallow: /
 
User-agent: sistrix
Disallow: /

User-agent: MajesticSEO
Disallow: /

User-agent: BacklinkCrawler
Disallow: /

User-agent: xovi
Disallow: /

User-agent: XoviBot
Disallow: /

User-agent: MJ12bot
Disallow: /

User-agent: spbot
Disallow: /

User-agent: SearchmetricsBot
Disallow: /

User-agent: search17
Disallow: /

User-agent: AhrefsBot
Disallow: / 

User-agent: TurnitinBot
Disallow: / 

User-agent: SlySearch
Disallow: / 

User-agent: findlinks
Disallow: / 

User-agent: magpie-crawler
Disallow: / 

User-agent: Pixray-Seeker
Disallow: / 
 
User-agent: 008
Disallow: /	


User-agent: Ezooms
Disallow: /	


User-agent: lb-spider
Disallow: /	


User-agent: WBSearchBot
Disallow: /


User-agent: psbot
Disallow: /


User-agent: HuaweiSymantecSpider
Disallow: / 


User-agent: EC2LinkFinder
Disallow: / 


User-agent: htdig
Disallow: / 


User-agent: SemrushBot
Disallow: / 


User-agent: discobot
Disallow: / 


User-agent: linkdex.com
Disallow: / 


User-agent: SeznamBot
Disallow: / 


User-agent: EdisterBot
Disallow: / 


User-agent: SWEBot
Disallow: / 


User-agent: picmole
Disallow: / 


User-agent: Yeti
Disallow: / 

User-agent: Yeti-Mobile
Disallow: / 

User-agent: PagePeeker
Disallow: / 

User-agent: CatchBot
Disallow: / 

User-agent: yacybot
Disallow: /

User-agent: netEstateNECrawler
Disallow: /

User-agent: SurveyBot
Disallow: /

User-agent: COMODOSSLChecker
Disallow: /

User-agent: Comodo-Certificates-Spider
Disallow: /

User-agent: gonzo
Disallow: /

User-agent: schrein
Disallow: /

User-agent: AfiliasWebMiningTool
Disallow: /

User-agent: suggybot
Disallow: /

User-agent: bdbrandprotect
Disallow: /

User-agent: BPImageWalker
Disallow: /

User-agent: Updownerbot
Disallow: /

User-agent: lex
Disallow: /

User-agent: ContentCrawler
Disallow: /

User-agent: DCPbot
Disallow: /

User-agent: KaloogaBot
Disallow: /

User-agent: MLBot
Disallow: /

User-agent: iCjobs
Disallow: /

User-agent: oBot
Disallow: /

User-agent: WebmasterCoffee
Disallow: /

User-agent: Qualidator
Disallow: /

User-agent: Webinator
Disallow: /

User-agent: Scooter
Disallow: /

User-agent: thunderstone
Disallow: /

User-agent: larbin
Disallow: /

User-agent: OpidooBOT 
Disallow: /

User-agent: ips-agent 
Disallow: /

User-agent: TinEye
Disallow: /

User-agent: UnisterBot
Disallow: /

User-agent: Unister
Disallow: /

User-agent: ReverseGet
Disallow: /

Nun glaube ich nicht, dass mein Server dadurch wesentlich schneller wird, aber immerhin habe ich nun ein paar freie Ressourcen, dich ich anders verbraten kann :-).

Meine Apps im Google Play-Strore Jetzt bei Google Play