Nicht nur Firmen profitieren von der Informations- und Werbewirkung einer eigenen Webseite. Immer öfter präsentieren sich auch Privatpersonen mit einer kleinen Seite im Internet. In beiden Fällen spielt das Thema Sicherheit im Internet eine wichtige Rolle. Welche Seiten und welche Informationen auf den Webseiten angezeigt werden, steuert der Anwender in der Regel selbst und hat hiermit relativ große Kontrolle über deren Nutzung. Es liegt jedoch in der Natur des Internets, dass jedwede Webseiten mit allen Inhalten und Unterseiten von Suchmaschinen besucht und indiziert werden. Dies ist in der Regel auch gewünscht, wodurch die Chancen auf Auffindbarkeit und gutes Ranking in den Suchanfragen gewährleistet wird.
Für was benötigt man eine robots.txt-Datei?
Wie bereits erwähnt ist es das gewünschte Ziel eines Webseitenbetreibers, dass man in den Suchmaschinen gut gefunden und möglichst weit oben in der Liste der Suchergebnisse angezeigt wird. Je besser eine Platzierung im Ranking, umso größer die Chance, dass ein Besucher auch auf die eigenen Webseiten kommt. Aber auch hier gibt es durchaus gewünschte Ausnahmen. Nicht immer möchte man Webseiten in den Suchergebnissen finden oder Seitenverzeichnisse direkt ansteuerbar gestalten. Es gibt viele Gründe, warum man eine Webseite oder ein Webverzeichnis quasi „verstecken“ möchte:
- Wenn sich eine Webseite mit beispielsweise Produktangeboten täglich ändert, so macht es keinen Sinn diese von einer Suchmaschine indizieren zu lassen. Je nach Besuchsfrequenz eines Robots werden einige der Seiten dann gar nicht erst gefunden und jene, die gefunden werden, sind dann nach kurzer Zeit nicht mehr aktuell bzw. erreichbar.
- Solange eine Webseite in der Entwicklung und noch nicht fertiggestellt ist, sollte diese auch nicht in den Suchmaschinen aufgelistet werden. Wird die Seite also noch erstellt, versuchsweise Inhalte eingefügt und getestet sowie am Layout gefeilt, ist ein Zugriff verständlicherweise nicht gewünscht. Zudem gilt auch hier der Leitsatz: Was das Web einmal kennt vergisst es nicht.
- Obwohl die Verwendung einer HTML-Seite auch in dem Seitenquelltext mit einem META-Tag festgelegt werden kann, betrifft diese Angabe jedoch nur die Seite selbst. Weitere Dateien wie Bilder oder Videos sowie die vorhandenen Links sind davon nicht betroffen und verwendbar. Hier muss dann sinnvollerweise das gesamte Seitenverzeichnis für den Zugriff ausgeschlossen werden.
Wie funktioniert eine robots.txt-Datei?
Um eine oder mehrere Webseiten sowie bestimmte Verzeichnisse nicht in den Suchmaschinen sichtbar zu haben, müssen Sie bestimmte Vorkehrungen hierfür treffen. Hierfür wurde ein Standard geschaffen in dem mit verschiedenen Steuerbefehlen genau festgelegt wurde, wie die Robots (oftmals auch Crawler genannt) einer Suchmaschine mit Ihrer Domain umgehen sollen. Der Standard wird als REP (Robots Exclusion Standard-Protokoll) bezeichnet und ist inzwischen auch ohne Zertifizierung durch das RFC als Quasi-Standard anerkannt. Die zentrale Datei robots.txt ist also eine Steuerdatei und regelt das Verhalten, wie Suchmaschinen Ihre Domain sehen und indizieren können. Die Datei darf nur einmal vorkommen, muss exakt in Kleinbuchstaben benannt werden und muss im Root-Verzeichnis der Domain gespeichert sein.
Wie weiter oben bereits beschrieben lässt sich in jeder einzelne HTML-Datei zwar die Verwendung direkt festlegen, davon sind aber die für die Seite verwendeten Ressourcen wie Bilder, Videos oder Verlinkungen nicht betroffen. Hierfür muss man das komplette Verzeichnis der HTML-Seite als geschützt ausweisen. Um den Suchmaschinen eine gezielte Selektion und Freigabe der zu indizierenden Elemente zu ermöglichen, verfügt das Protokoll über eine Vielzahl an Befehlen, die wir im Folgenden auch aufzeigen möchten.
Die grundlegenden Funktionen der robots.txt
Die Steuerdatei ist als reine Textdatei ausgelegt, kann mit jedem Standard-Texteditor neu angelegt und bearbeitet werden und benötigt keine zusätzlichen Formatierungen. Der Inhalt besteht grundsätzlich aus Datensätzen mit jeweils zwei Funktionsblöcken. Im ersten Block muss man angeben, für welche User-Agents (also Robots bzw. Crawler) die nachfolgenden Befehle gelten sollen. Im zweiten Block stehen dann die einzelnen Anweisungen für die User-Agents, um Zugriffe zu sperren oder auch zu erlauben. Den grundsätzlichen Aufbau sehen Sie im folgenden Quelltext:
# robots.txt zu http://www.meineseite.de/
User-agent: *
Disallow:
Mit diesen Direktiven in der robots.txt legen Sie in der ersten Zeile die Information der betroffenen Domain fest. Mit der Raute vorweg wird dieser Eintrag jedoch nicht als Befehl gewertet. Der erste Datensatz besteht hier aus zwei Zeilen mit Anweisungen. In der ersten Zeile werden die Robots genannt, für die alle folgenden Anweisungen gelten sollen. Setzen Sie hier einen Platzhalter (* Asterisk) ein, werden alle Webcrawler angesprochen. In der zweiten Zeile stehen nun die Anweisungen für die Suchrobots. Mit dem Befehl Disallow verbieten Sie entsprechende Zugriffe. Da hier keine Einträge folgen, darf der Crawler die komplette Domain durchsuchen und indizieren. Im folgenden Beispiel setzen wir nun einige Einschränkungen, um die Funktionsweise der robots.txt detaillierter darzustellen:
# robots.txt zu http://www.meineseite.de/
User-agent: Googlebot
Disallow: /foto/
Sobald der Suchmaschinenrobot von Google auf diese Steuerdatei trifft, gelten die folgenden Anweisungen für Ihn. Der Googlebot darf in der Domain alle Verzeichnisse mit Ausnahme von „/foto“ durchsuchen und indizieren. Durch die Anweisung „Disallow:“ wurde dieses eine Verzeichnis gesperrt. Allerdings gelten diese Anweisungen nur für den einen Suchmaschinenrobot von Google. Möchten Sie mehrere Robots ansprechen, so können Sie diese alle selektiv angeben. Dabei muss für jeden Robot ein eigener Eintrag angelegt werden:
# robots.txt zu http://www.meineseite.de/
User-agent: Googlebot
User-agent: bingbot
User-agent: msnbot
User-Agent: Yandexbot
Disallow: /foto/
Mit diesen Anweisungen legen Sie fest, dass die Suchrobots von Google, Bing, MSN und Yandex nicht auf das Verzeichnis /foto zugreifen dürfen. Allen anderen Robots ist der Zugriff jedoch erlaubt.
Selektive Steuerungsbefehle für die User-Agents
Mit dem Robots Exclusion Standard-Protokoll können aber wesentlich gezieltere Steuerbefehle erstellt werden. Damit wird es Ihnen möglich, unterschiedliche Zugriffsarten für verschiedenste Webcrawler zu definieren. Neben der Angabe von Suchmaschinen-Robots können Sie aber auch Webbrowser als User-Agents festlegen. Damit wird es möglich, bestimmten Browser den Aufruf von Webseiten und Verzeichnissen zu versagen. Im folgenden Beispiel legen wir je einen Datensatz für Suchmaschinenroboter und Webbrowser fest:
# robots.txt zu http://www.meineseite.de/
User-agent: Googlebot
User-agent: bingbot
Disallow: /foto/
User-agent: Chrome
User-Agent: Opera
Disallow: /foto/
Disallow: /video/
Über diese Steuerbefehle können wir nun schon sehr selektiv bestimmen, wer und was von Suchmaschinen und Webbrowsern auf unserer Webseite verwendet werden darf. Der erste Datensatz betrifft hier beispielhaft nur Suchmaschinenrobots von Google und Bing. Diesen verbieten wir den Zugriff auf das Domainverzeichnis „/foto“. Im zweiten Datensatz legen wir zusätzlich Restriktionen für Webbrowser fest. Die beiden Browser Chrome und Opera haben somit keinen Zugriff auf die Domainverzeichnisse „/foto“ und „/video“. Eine Liste aller User-Agents finden Sie im Web beispielsweise unter http://www.robotstxt.org/db.html.
Nicht nur Verbote sind möglich
Bislang sprachen wir nur über Zugriffsverbote bzw. Ausschlüsse. Es sind aber noch wesentlich gezieltere Zugriffsmöglichkeiten gegeben. Wenn wir in einer Domain beispielsweise ein Verzeichnis „/medien“ haben und darunter weitere Verzeichnisse wie Foto, Audio, Video oder PDF, so können wir sehr selektive Vorgaben für die Suchrobots und Browser vorgeben:
# robots.txt zu http://www.meineseite.de/
User-agent: Googlebot
User-agent: bingbot
Disallow: /medien/
Allow: /medien/pdf/
User-agent: Chrome
User-Agent: Opera
Disallow: /medien/
Allow: /medien/video/
Über diese Anweisungen in der robots.txt legen wir nun folgendes Verhalten fest. Die beiden Suchmaschinenrobots von Google und Bing dürfen auf das Domainverzeichnis „/medien“ nicht zugreifen. Allerdings wurde eine Ausnahme für das Unterverzeichnis „/medien/pdf“ festgelegt. Somit werden alle Inhalte aus diesem freigegebenen Verzeichnis auch erfasst und indiziert. Für die beiden Browser Chrome und Opera wurde festgelegt, dass ein Zugriff nur im Domainverzeichnis „/medien/video“ möglich ist. Alle anderen Unterverzeichnisse von „/medien“ bleiben den Browsern versagt.
Anwendung von Wildcards in Steuerbefehlen
Auch wenn im Robots Exclusion Standard-Protokoll die Verwendung von regulären Ausdrücken (sog. Wildcards) nicht wirklich erlaubt ist, wurden 2 Ausnahmen definiert und sind verwendbar. Zum einen ist dies das Sternchen (*) und das Dollar-Zeichen ($). Gerade die großen Suchmaschinenbetreiber verwenden gerne diese zwei Wildcards in den Auswertungen. Dies bedeutet für uns nun, dass wir diese 2 regulären Ausdrücke auch in unseren Anweisungen anwenden dürfen. Dies ist sinnvollerweise aber nur für Disallow-Anweisungen wie folgt einzusetzen:
# robots.txt zu http://www.meineseite.de/
User-agent: *
Disallow: *bilder
User-agent: Chrome
Disallow: *listen
Eine derart gestaltete robots.txt hat nun folgende Funktionsweise. Ausnahmslos allen Suchmaschinenrobots und Crawlern wird der Zugriff auf alle Domainverzeichnisse verwehrt, die mit der Zeichenkette „bilder“ enden. Dies wäre beispielsweise das Verzeichnis „/urlaubsbilder“ oder „/produktbilder“. Alle Zeichen nach dem Sternchen (* Asterisk) dienen hierbei als Selektor. Die gleiche Variante funktioniert auch mit Browsern als User-Agent.
Durch das Dollar-Zeichen ($) als Platzhalter erreichen wir eine weitere Filterregel für unsere Anweisungen. Diesmal ist die Funktionsweise jedoch eine andere. Alle Zeichenketten die auf diese Zeichen enden, dienen als Ausschlusskriterium. Das folgende Beispiel soll die veranschaulichen:
# robots.txt zu http://www.meineseite.de/
User-agent: *
Disallow: /*.pdf$
Disallow: /*.log$
User-agent: Chrome
Disallow: /produkte$
Eine derart gestaltete robots.txt würde nun wie folgt funktionieren. Mit der Anweisung User-agent: * adressieren wir alle Suchmaschinenrobots und verweigern den Zugriff auf alle PDF-Dateien und Logfiles in der Domain. Dem Browser Chrome versagen wir hingegen den Zugriff auf alle Verzeichnisse, die auf …produkte enden.
Fazit
Mit der robots.txt haben wir ein universelles und mächtiges Werkzeug an der Hand, um den Zugriff von Suchmaschinenroboter oder Webbrowser gezielt steuern zu können. Allerdings hat die Sache auch einen Haken; Die Anweisungen in der Steuerdatei sind nicht zwingend. Dies bedeutet für uns, dass sich die Robots, Crawler und Browser nicht wirklich an unsere Vorgaben halten müssen. Alle großen und bekannten Suchmaschinen bestätigen zwar die Einhaltung der Direktiven, aber eine Garantie würden Sie hier sicherlich nicht bekommen.
Aus diesem Grund sollten Sie neben einer gut strukturierten und auf Ihre Anforderungen angepasste robots.txt auch noch die Möglichkeiten der META-Tags innerhalb der HTML-Dateien nutzen und Ausschlüsse definieren.
Um Dateien oder ganze Verzeichnisse wirksam zu verstecken, sollten diese über eine .htaccess-Datei oder andere Reglementarien vor Zugriffen gesichert werden.