## robots.txt - Robots kontrollieren

| Allgemeines zur robots.txt Speicherort und Aufbau einer robots.txt

## Allgemeines zur robots.txt

Es gibt defacto-Standards im Internet, die einfach gewachsen sind, ohne es je zu einer RFC gebracht haben. Dazu gehört auch der Status, den die Datei robots.txt im Web hat. In einer Datei dieses Namens können Betreiber von Web-Projekten angeben, welcher Suchrobot welche Projektverzeichnisse auslesen darf und welcher was nicht lesen darf. Die Datei enthält also Anweisungen für Robots von Suchmaschinen. Die überwiegende Mehrheit der Robots moderner Suchmaschinen berücksichtigen das Vorhandensein einer robots.txt, lesen sie aus und befolgen die Anweisungen.

Zwar lässt sich auch in einzelnen HTML-Dateien mit Hilfe eines Meta-Tags für Suchprogramme das Auslesen erlauben bzw. verbieten. Doch das betrifft nur die jeweilige HTML-Datei und maximal alle weiteren, durch Verweise erreichbaren Dateien. In einer zentralen robots.txt können Sie dagegen unabhängig von der Datei- und Verweisstruktur Ihres Web-Projekts festlegen, welche Verzeichnisse und Verzeichnisbäume ausgelesen werden dürfen, und welche nicht.

## Speicherort und Aufbau einer robots.txt

Die robots.txt muss unter diesem Namen (alle Buchstaben klein geschrieben) im Wurzelverzeichnis der Web-Dateien der Domain abgelegt werden. Wenn Sie also einen Domain-Namen mein-name.de haben, dann muss die robots.txt in dem Verzeichnis abgelegt werden, in dem auch die oberste Einstiegsdatei von www.mein-name.de liegt. Der URI wäre also http://www.mein-name.de/robots.txt. Nur so kann sie von Suchmaschinen-Robots, die das Projekt aufsuchen, gefunden werden. Das bedeutet, dass Sie die Technik der robots.txt nur nutzen können, wenn Sie eine eigene Domain haben, nicht aber bei Webspace-Angeboten, wo Sie lediglich ein Homepage-Verzeichnis auf einem Server erhalten, ohne an das Wurzelverzeichnis der Domain zu kommen.

Die robots.txt ist eine reine Textdatei und muss mit einem Texteditor bearbeitet werden.

### Beispiel: robots.txt:

    # robots.txt zu http://www.mein-name.de/

    User-agent: UniservalRobot/1.0
    User-agent: mein-Robot
    Disallow: /quellen/dtd/
    Allow: /quellen/dtd/index.html

    User-agent: *
    Disallow: /unsinn/
    Disallow: /temp/
    Disallow: /newsticker.shtml

### Erläuterung

Die erste Zeile ist lediglich eine Kommentarzeile. Kommentarzeilen werden durch ein Gatterzeichen `#` eingeleitet.

Ansonsten besteht eine robots.txt aus Datensätzen (records). Im obigen Beispiel sind zwei solcher Datensätze notiert. Ein Datensatz besteht grundsätzlich aus zwei Teilen. Im ersten Teil wird angegeben, für welche Robots (`User-agent`) die nachfolgenden Anweisungen gelten. Im zweiten Teil werden die Anweisungen selbst notiert. Die Anweisungen bestehen darin, den zuvor bestimmten Robots etwas zu verbieten (`Disallow`) oder zu erlauben (`Allow`).

Jede Zeile eines Datensatzes beginnt mit einem der drei erlaubten Schlüsselwörter `User-agent`, `Disallow` oder `Allow`. Dahinter folgt, durch ein Doppelpunkt und Leerzeichen getrennt, die zugehörige Angabe. Zwischen den Datensätzen wird eine Leerzeile notiert. Innerhalb eines Datensatzes muss zunächst mindestens eine Zeile mit `User-agent:` beginnen. Dahinter ist immer nur eine Angabe möglich. Wenn Sie mehr als einen bestimmten Robot ansprechen möchten, müssen Sie mehrere Zeilen untereinander notieren, die mit `User-agent:` beginnen - so wie im ersten Datensatz des obigen Beispiels. Unterhalb der Zeilen, die mit `User-agent:` beginnen, werden die Zeilen notiert, die mit `Disallow` oder `Allow:` beginnen. Die Angaben dazu werden dann von den Robots beachtet, die im gleichen Datensatz mit `User-agent` spezifiziert wurden.

Bei `User-agent:` ist entweder die Angabe `*` (Sternzeichen) erlaubt, was so viel bedeutet wie "alle Robots", oder der Name eines bestimmten Robots. Diesen Namen müssen Sie allerdings kennen. Wenn Sie `*` angeben, sollte in dem gleichen Datensatz keine weitere Angabe zu `User-agent` folgen, da dies dem Platzhalter für "alle" widersprechen würde.

Hinter jeder Zeile, die mit `Disallow:` oder `Allow:` beginnt, können Sie jeweils eine Pfadangabe notieren. Benutzen Sie im Zweifelsfall so viel wie möglich die Angabe `Disallow:` und so wenig wie möglich die Angabe `Allow:`. Der Grund ist, dass `Disallow:` früher in die Spezifikation der robots.txt aufgenommen wurde und von mehr Robots verstanden wird als `Allow:`.

Bei den Angaben zu `Disallow:` und `Allow:` können Sie Verzeichnispfade und einzelne Dateien mit Pfadangabe angeben. Wildcards wie `*` oder `*.*` sind dabei nicht erlaubt. Achten Sie darauf, bei Verzeichnispfaden einen abschließenden Schrägstrich `/` zu notieren. Wenn Sie nämlich beispielsweise `/index` notieren, wäre auch die Datei `/index.html` betroffen, und nicht nur das Unterverzeichnis `/index/`.

Im ersten der obigen Beispiel-Datensätze wird angenommen, dass ein superschlauer Robot namens `UniversalRobot/1.0` sowie ein selbstgestrickter Robot namens `mein-Robot` Daten aus dem Verzeichnis `/quellen/dtd/` in ihre Suchmaschinen einspeisen. Das ist aber nicht erwünscht, weil in diesem Verzeichnis beispielsweise DTDs für XML-Dateien abgespeichert sind. Deshalb wird speziell diesen beiden Robots der Zugriff auf dieses Verzeichnis (und alle Unterverzeichnisse davon) verboten. Nur die Datei `index.html`, die im Verzeichnis für die DTDs ebenfalls abgelegt ist, dürfen die beiden Robots trotzdem auslesen.

Im zweiten Datensatz wird allen Robots verboten, die beiden Unterverzeichnisse `/unsinn/` und `/temp/` auszulesen. Die Verzeichnisnamen sprechen ja für sich, und es ist leicht ersichtlich, wozu dieses Verbot gut ist: nämlich um überflüssigen Datenmüll in den großen Suchmaschinen zu vermeiden. Ferner wird der Zugriff auf die Datei `newsticker.shtml` verboten. Der Grund könnte sein, dass diese Datei von einem über Server Side Includes eingebundenen CGI-Script laufend aktuelle Daten erhält, weswegen es keinen Sinn macht, diese Datei in Suchmaschinen aufzunehmen.

### Beachten Sie:

Mit der folgenden Syntax erlauben Sie keinem Suchmaschinen-Robot, auch nur irgendetwas von ihren Daten auszulesen:
`User-agent: *
Disallow: /`
Mit `/` bestimmen Sie "alle Daten dieses Verzeichnisses und aller Unterverzeichnisse".

Mit der folgenden Syntax nehmen Sie einen bestimmten Robot namens `mein-Robot` von allen anderen Verboten aus:
`User-agent: mein-Robot
Disallow:`
Durch eine fehlende Angabe hinter `Disallow:` wird alles erlaubt!

Web-Browser ignorieren die robots.txt. Es ist also nicht möglich, damit Daten vor Anwendern zu schützen. Lesen Sie zu diesem Zweck den Abschnitt .htaccess - Server-Reaktionen kontrollieren

| .htaccess - Server-Reaktionen kontrollieren
| Client-Identifikationen

© 2001 selfhtml@teamone.de