Korrektes Verwenden der robots.txt

Das Robots-Exclusion-Standard-Protokoll verpflichtet Webcrawler beim Durchsuchen einer Website als erstes die robots.txt zu lesen und deren Anweisungen zu befolgen. Dieses Protokoll kann natürlich nicht verpflichtend sein sondern ist auf das Mitmachen sogenannter „freundlicher“ Webcrawler angewiesen. In der robots.txt können Bereiche ausgewiesen werden, welche in Suchmaschinen nicht auftauchen sollen.

Lange war es geläufig, dabei auch CSS- und JS-Daten auszuschliessen. Seit Googles Suchmaschine aber Websites komplett rendert, und die Darstellung mit in das Ranking einfliessen lässt, ist dies nicht mehr zu empfehlen. Wer also sein Ranking nicht gefährden will, sollte dafür sorgen, dass Google alle erforderlichen Ressourcen abrufen kann. Ob Google alle Quellen zur Verfügung stehen, um die Site korrekt darzustellen, lässt sich mit Hilfe der Webmaster Tools herausfinden: Unter Crawling -> Abruf wie durch Google kann die Website getestet werden. Alle blockierten Ressourcen tauchen dort in einer Liste auf. Für diejenigen Ressourcen, die durch die robots.txt geblockt werden, stellt Google direkt einen Link zum robots.txt-Tester zur Verfügung. Wenn man diesem Link folgt, wird die zugehörige robots.txt abgerufen und die Zeile, welche den Block verursacht, rot unterlegt angezeigt. Mit diesem Tool lässt sich also sehr leicht testen, welche Ressourcen blockiert sind, und welcher Eintrag der robots.txt geändert werden muss, um den Fehler zu beheben. Für das Bild unten, haben wir kurzzeitig unseren gesamten Theme-Ordner gesperrt.

Fehlende Ressourcen in Google Webmastertools

robots.txt-Tester in Google Webmastertools

Reihenfolge von Allow und Deny

Wie kann ich nun aber ein gesamtes Unterverzeichnis sperren, darin aber einzelne Dateien zugänglich machen? Hierbei ist die korrekte Reihenfolge der Allow- und Deny-Befehle zu beachten. Der Webcrawler geht die robots.txt Zeile für Zeile durch und hält sich immer an die erste passende Anweisung, die er findet. Möchte ich beispielsweise meinen TYPO3 Fileadmin komplett sperren, reicht der Befehl

Disallow: /fileadmin/

Um aber nun einzelne CSS-Files innerhalb des Ordners freizugeben, muss dieser Befehl oberhalb der Disallow-Zeile stehen.

Allow: /fileadmin/mobile/css/mobile.css
Disallow: /fileadmin/

Wäre die Reihenfolge umgekehrt, würde der Crawler zuerst auf den Disallow-Befehl stossen und den gesamten Ordner folglich nicht abrufen, obwohl in der nächsten Zeile die Datei im Unterverzeichnis freigegeben ist.

Cache-Dateien mit Wildcards einbeziehen

Es kann vorkommen, dass sich der Name einer Datei mit der Zeit ändert. Typischerweise passiert dies bei Daten, die gecached werden. Um diese dennoch ansprechen zu können, kann mit dem * als Wildcard gearbeitet werden. Anstatt

Allow: /typo3temp/javascript_9a38f34785.js
Allow: /typo3temp/stylesheet_4f4c065516.css

kann einfach

Allow: /typo3temp/javascript_*
Allow: /typo3temp/stylesheet_*

in der robots.txt angegeben werden. Somit können diese Dateien auch dann noch gecrawlt werden, wenn sich das Kürzel im Dateinamen ändert.

 

Edit 03.06.2016 – Im Folgenden noch ein Update mit zwei weiteren Bereichen zum Thema robots.txt

Einzelne Pages via <meta> Tag blocken

Es gibt eine weitere Möglichkeit einzelne Pages einer Website für Bots zu sperren (oder natürlich auch explizit zu erlauben). Über ein <meta> Tag kann im <head> einer Website auch eine Direktive für Robots festgelegt werden. Dies kann beispielsweise so aussehen:

<head>
 <meta name="robots" content="noindex" />
</head>

In diesem Fall werden alle Robots davon abgehalten diese Page zu indexieren. Wahlweise können auch spezifische Bots angesprochen werden indem statt dem generellen „robots“ etwa „bingbot,googlebot“ explizit angesprochen werden. Es gibt verschiedene Direktiven wie „noindex“, „index“, „nocache“ und viele mehr. Auch dieser Artikel gibt eine gute Übersicht über die Möglichkeiten des robots meta Tag.

Virtuelle robots.txt in WordPress

Viele WordPress-User könnte es überraschen, eine robots.txt im Browser angezeigt zu bekommen, obwohl diese nicht auf dem Server selbst zu finden ist. In diesem Fall handelt es sich um eine virtuelle robots.txt. WordPress kann diese beispielsweise anlegen, wenn unter Einstellungen -> Lesen -> Sichtbarkeit für Suchmaschinen das Häkchen gesetzt wird. WordPress zeigt dann eine virtuelle robots.txt, welche alle Bots vom gesamten Inhalt abhält:

User-agent: *
Disallow: /

Auch manche Sitemap Plugins wie Google XML Sitemaps greifen auf eine virtuelle robots.txt zurück. In diesem Fall wird diese genutzt um Bots auf die Sitemap aufmerksam zu machen:

Sitemap: https://blog.k-webs.ch/sitemap.xml

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.