Indexierungsmanagement mit der robots.txt

In der Regel sind Betreiber professioneller Websites bemüht, die Sichtbarkeit des eigenen Projekts in der Suchmaschine zu erhöhen. Eine Voraussetzung dafür ist, dass alle relevanten URLs von Suchrobotern ausgelesen und somit in den Index aufgenommen werden können. Dabei ist zu beachten, dass Suchmaschinen Websites nur selten komplett crawlen. Denn selbst beim Marktführer Google sind die Kapazitäten für das Erfassen und Speichern von Webinhalten begrenzt. Stattdessen wird jeder Domain ein bestimmtes Crawling-Budget zugesprochen. Dieses legt fest, wie viele URLs pro Tag ausgelesen und ggf. indexiert werden. Gerade Betreiber umfangreicher Webprojekte sind gut beraten, hier strategisch vorzugehen, indem sie Suchrobotern signalisieren, welche Seitenbereiche gecrawlt werden sollen und welche ignoriert werden können. Wichtige Werkzeuge im Rahmen dieses Indexierungsmanagements sind Robots-Angaben in Meta-Tags, das Canonical-Tag, Weiterleitungen und nicht zuletzt die Datei robots.txt, um die es in diesem Tutorial geht.

Was ist die robots.txt?

Bei der robots.txt handelt es sich um eine reine Textdatei, die im Stammverzeichnis einer Domain abgelegt wird. Diese ermöglicht es Webseitenbetreibern, den Zugriff von Suchmaschinen auf die Website zu steuern, indem ausgesuchte Bereiche für bestimmte oder alle Suchroboter blockiert werden. Die Angaben in der robots.txt beziehen sich auf den gesamten Verzeichnisbaum. Damit unterscheidet sich dieses Instrument des Indexierungsmanagements signifikant von Meta-Robots-Angaben und Weiterleitungen, die nur für ein spezielles HTML-Dokument gelten. Zu beachten ist, dass die robots.txt von Suchmaschinen lediglich als Richtlinie verstanden wird. Erzwingen lässt sich ein bestimmtes Crawling-Verhalten durch Angaben in der robots.txt nicht. Google und andere große Suchmaschinenanbieter geben an, entsprechende Anweisungen zu befolgen. Sicher ausgeschlossen werden kann ein Zugriff auf Webseitenbereiche jedoch nur durch einen Passwortschutz.

Eine robots.txt erstellen

Um Suchrobotern den Zugriff auf die individuellen Crawling-Richtlinien zu ermöglichen, muss eine reine Textdatei exakt als robots.txt benannt und im Stammverzeichnis (Root) der Domain abgelegt werden. Sollen Crawling-Richtlinien für die Domain beispiel.de definiert werden, muss sich die robots.txt somit im selben Verzeichnis befinden wie www.beispiel.de. Über das Internet wäre eine solche Datei unter www.beispiel.de/robots.txt abrufbar. Bietet das gewählte Hosting-Modell keinen Zugriff auf das Root-Verzeichnis des Servers, sondern nur auf einen Unterordner (etwa www.beispiel.de/benutzer/), ist ein Indexierungsmanagement mittels robots.txt nicht möglich. Webseitenbetreiber, die eine robots.txt erstellen, sollten auf einen reinen Texteditor wie vi (Linux) oder notepad.exe (Windows) zurückgreifen und beim FTP-Transfer sicherstellen, dass die Datei im ASCII-Modus übertragen wird. Im Netz lässt sich die robots.txt mit einem Generator erstellen. Da syntaktische Fehler schwerwiegende Auswirkungen auf die Indexierung des Webprojekts haben können, empfiehlt es sich, die Textdatei vor dem Upload zu testen. Google hält dafür ein entsprechendes Tool im Rahmen der Search Console bereit.

Aufbau der robots.txt

Jede robots.txt beinhaltet Datensätze (records), die jeweils aus zwei Teilen bestehen. Der erste Teil wird mit dem Keyword User-agent eingeleitet und adressiert einen Suchroboter, dem im zweiten Teil Anweisungen gegeben werden. Bei diesen Anweisungen handelt es sich in der Regel um Crawling-Verbote, die mit dem Keyword Disallow eingeleitet werden und nachfolgend ein Verzeichnis bzw. eine oder mehrere Dateien nennen. Somit ergibt sich folgendes Grundschema:

User-agent: Googlebot
Disallow: /temp/ 
Disallow: /news.html
Disallow: /print 

Die robots.txt im Beispiel gilt lediglich für Webcrawler mit dem Namen „Googlebot“ und untersagt diesen, das Verzeichnis /temp/ sowie die Datei news.html auszulesen. Zudem werden alle Dateien und Verzeichnisse blockiert, deren Pfad mit print beginnt. Hier ist zu beachten, dass sich Disallow: /temp/ und Disallow: /print syntaktisch nur durch einen fehlenden Slash (/) am Ende unterscheiden. In der Syntax der robots.txt sorgt dieser jedoch ein für einen signifikanten Bedeutungsunterschied.

Kommentare einfügen

Die robots.txt kann bei Bedarf durch Kommentare ergänzt werden. Diese werden durch ein Doppelkreuz (#) eingeleitet und lassen sich an beliebiger Stelle einfügen.

# robots.txt für http://www.beispiel.de

User-agent: Googlebot
Disallow: /temp/ # Verzeichnis enthält kurzlebige Dateien 
Disallow: /print/ # Verzeichnis enthält Print-Seiten
Disallow: /news.html # Datei ändert sich täglich 

Mehrere User-Agents adressieren

Sollen verschiedene Webcrawler angesprochen werden, kann die robots.txt beliebig viele Blöcke beinhalten, die nach dem Grundschema aufgebaut sind. Dazu wird vor jedem weiteren User-Agent eine Leerzeile eingefügt.

# robots.txt für http://www.beispiel.de

  User-agent: Googlebot
  Disallow: /temp/ 
   
  User-agent: Bingbot 
  Disallow: /print/

Während dem Crawler von Google untersagt wird, das Verzeichnis /temp/ zu durchsuchen, wird der Bingbot daran gehindert /print/ zu crawlen.

Alle User-Agents adressieren

Sollen bestimmte Verzeichnisse oder Dateien für alle Webcrawler blockiert werden, kommt ein Sternchen (*) als Wildcard für alle User-Agents zum Einsatz.

# robots.txt für http://www.beispiel.de

User-agent: *
Disallow: /temp/
Disallow: /print/
Disallow: /pictures/

Die robots.txt blockiert die Verzeichnisse /temp/, /print/ und /pictures/ für alle Webcrawler.

Alle Verzeichnisse von der Indexierung ausschließen

Soll eine ganze Website für User-Agents gesperrt werden, genügt ein einfacher Slash (/) nach dem Keyword Disallow:

# robots.txt für http://www.beispiel.de

  User-agent: *
  Disallow: /

Alle Webcrawler werden angewiesen, die gesamte Website zu ignorieren. Anwenden lässt sich eine solche robots.txt zum Beispiel bei Webprojekten, die sich noch in der Testphase befinden.

Indexierung für alle Verzeichnisse erlauben

Soll ein Suchroboter die gesamte Website crawlen und indexieren können, signalisieren Webseitenbetreiber dies, indem sie das Keyword Disallow ohne Slash verwenden:

# robots.txt für http://www.beispiel.de

User-agent: Googlebot
Disallow: 

Enthält die robots.txt ein Disallow ohne Slash, wird die gesamte Website für den unter User-agent definierten Webcrawler freigegeben.

Tabelle 1: Grundfunktionen der robots.txt
Anweisung Beispiel Funktion
User-agent: User-agent: Googlebot Adressiert einen bestimmten Webcrawler.
  User-agent: * Adressiert alle Webcrawler.
Disallow: Disallow: Die gesamte Website darf durchsucht werden.
  Disallow: / Die gesamte Website wird blockiert.
  Disallow: /datei.html Eine bestimmte Datei wird blockiert.
  Disallow: /beispiel Alle Verzeichnisse und Dateien, deren Pfad mit beispiel anfängt, werden blockiert.

Erweiterte Funktionen

Neben den als Quasi-Standard geltenden Grundfunktionen unterstützen einige Suchmaschinen weitere Parameter, die es ermöglichen, die Angaben in der robots.txt zu präzisieren. Folgende Funktionen finden sich im Supportbereich von Google. Sie gehen auf eine Übereinkunft mit Microsoft und Yahoo! zurück.

Ausnahmen definieren

Neben Disallow unterstützt Google mit Allow ein weiteres Keyword in der robots.txt, das es ermöglicht, Ausnahmeregelungen für gesperrte Verzeichnisse zu definieren:

# robots.txt für http://www.beispiel.de

User-agent: Googlebot
Disallow: /news/ 
Allow: /news/index.html 

Das Keyword Allow ermöglicht es, die Datei "http://www.beispiel.de/news/index.html" für den Googlebot freizugeben, obwohl das übergeordnete Verzeichnis /news/ blockiert wurde.

Dateien mit bestimmten Endungen blockieren

Webseitenbetreiber, die dem Googlebot das Auslesen von Dateien mit einer bestimmten Endung untersagen möchten, nutzen dafür Datensätze nach folgendem Beispiel:

# robots.txt für http://www.beispiel.de

User-agent: Googlebot
Disallow: /*.pdf$

Das Keyword Disallow bezieht sich auf alle Dateien mit der Endung .pdf und schützt diese vor einem Zugriff durch den Googlebot. Das Sternchen (*) fungiert als Wildcard für den Dateinamen vor der Endung. Abgeschlossen wird der Eintrag mit einem Dollarzeichen ($) als Zeilenende-Anker.

Webcrawler auf Sitemap hinweisen

Neben der Steuerung des Crawling-Verhaltens erlaubt es die robots.txt, Suchroboter auf die Sitemap einer Website hinzuweisen. Eine robots.txt mit Sitemap-Verweis realisiert man folgendermaßen:

# robots.txt für http://www.beispiel.de

User-agent: *
Disallow: /temp/

Sitemap: http://www.beispiel.de/sitemap.xml

Tabelle 2: Erweiterte Funktionen der robots.txt
Anweisung Beispiel Funktion
Allow: Allow: /beispiel.html Die angegebene Datei bzw. das Verzeichnis darf durchsucht werden.
Disallow: /*…$ Disallow: /*.jpg$ Dateien mit einer bestimmten Endung werden blockiert.
Sitemap: Sitemap: http://www.beispiel.de/sitemap.xml Die XML-Sitemap findet sich unter der angegebenen Adresse.