Grundlagen/Robots.txt

Aus SELFHTML-Wiki
< Grundlagen(Weitergeleitet von Grundlagen/Robots)
Wechseln zu: Navigation, Suche

In der Datei robots.txt können Sie angeben, welches Verhalten von Such-Robots Sie auf Ihrer Seite wünschen.

Beachten Sie: Es ist mit dieser Technik nicht möglich, Webseiten vor dem Zugriff durch Robots oder Personen zu schützen. Sie können lediglich das Erscheinen in den Suchergebnissen steuern.
Beachten Sie: Es besteht keinerlei Garantie, dass sich Suchmaschinen an die Verbote in der robots.txt halten. Die überwiegende Mehrheit der Robots moderner Suchmaschinen berücksichtigt das Vorhandensein einer robots.txt, liest sie aus und befolgt die Anweisungen. Robots, die mit bösen Absichten das Web durchsuchen, halten sich vermutlich nicht daran.

Falls Sie Ihre Inhalte vor unberechtigtem Zugriff schützen möchten, lesen Sie etwa die entsprechenden Abschnitte zur Konfiguration von Webservern.

Inhaltsverzeichnis

[Bearbeiten] Allgemeines

Im sogenannten Robots-Exclusion-Standard-Protokoll ist geregelt, wie Sie mithilfe einer Datei robots.txt das Verhalten von Suchmaschinen-Robots auf Ihrer Domain beeinflussen können. Dieses Protokoll ist auch ohne RFC inzwischen zu einem Quasi-Standard gewachsen.

Zwar lässt sich auch in einzelnen HTML-Dateien mit Hilfe eines Meta-Tags für Suchmaschinen die Verwertung der Seite festlegen, doch das betrifft eben nur die einzelne HTML-Datei und maximal alle darin durch Verweise erreichbaren Seiten, nicht jedoch andere Ressourcen wie z.B. Bilder. In einer zentralen robots.txt können Sie dagegen unabhängig von der Datei- und Verweisstruktur Ihres Web-Projekts festlegen, welche Regeln für Verzeichnisse und Verzeichnisbäume gelten sollen. Da es an einem geschriebenen RFC fehlt, wird die Interpretation der robots.txt und deren Syntax von den Robotern nicht immer einheitlich gehandhabt. Die zusätzliche Verwendung von Meta-Tags in HTML-Dateien ist daher in Fällen der unerwünschten Indexierung durch den Robot zu empfehlen, falls der Robot die robots.txt nicht oder nicht richtig interpretiert hat.

[Bearbeiten] Speicherort

Die robots.txt (es kann nur maximal eine solche Datei pro (Sub-)Domain geben) muss unter diesem Namen (alle Buchstaben klein geschrieben) im Wurzelverzeichnis der Web-Dateien der Domain abgelegt werden. Für die Domain example.org lautet der URI folglich http://example.org/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 kann mit jedem Texteditor bearbeitet werden.

[Bearbeiten] Aufbau einer robots.txt

Beispiel: robots.txt
# robots.txt zu http://www.example.org/ User-agent: UniversalRobot/1.0 User-agent: mein-Robot Disallow: /quellen/dtd/ User-agent: * Disallow: /fotos/ Disallow: /temp/ Disallow: /fotoalbum.html
Im ersten Datensatz wird den Robots UniversalRobot/1.0 und mein-Robot untersagt, Daten aus dem Verzeichnis /quellen/dtd/ und allen Unterverzeichnissen zu indizieren.

Im zweiten Datensatz wird allen Robots verboten, die beiden Unterverzeichnisse /fotos/ und /temp/ auszulesen. Zudem wird der Zugriff auf die Datei fotoalbum.html verboten.

Die erste Zeile ist lediglich eine Kommentarzeile. Kommentare werden durch ein Gatterzeichen # eingeleitet und können auch in der Zeile beginnen.

Eine robots.txt besteht aus Datensätzen (records), welcher wiederum grundsätzlich aus zwei Teilen besteht. 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).

Jede Zeile eines Datensatzes beginnt mit einem der zwei erlaubten Schlüsselwörter User-agent oder Disallow. 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 beginnen. Die Angaben dazu werden dann von den Robots beachtet, die im gleichen Datensatz mit User-agent spezifiziert wurden. Leerzeilen innerhalb eines Datensatzes sind nicht erlaubt.

Bei User-agent: ist entweder der Platzhalter * (Asterisk) erlaubt, was so viel bedeutet wie „alle Robots“, oder der Name eines bestimmten Robots, dessen Namen Sie allerdings kennen müssen. Zwischen Groß- und Kleinschreibung wird nicht unterschieden. Mehr als ein Datensatz für alle Robots ist nicht erlaubt.

Hinter jeder Zeile, die mit Disallow: beginnt, können Sie jeweils eine Pfadangabe notieren. Die Robots werden diese Pfade auf Ihrer Seite dann nicht indizieren.

Bei den Angaben zu Disallow: 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/.

[Bearbeiten] Beispiele

Beispiel: keinem Suchmaschinen-Bot irgendetwas erlauben
User-agent: * Disallow: /
Mit / bestimmen Sie alle Daten des Wurzelverzeichnisses und aller Unterverzeichnisse.
Beispiel: mein-Robot von allen anderen Verboten ausschließen
User-agent: mein-Robot Disallow: User-agent: * Disallow: /
Durch eine fehlende Angabe hinter Disallow: wird alles erlaubt.

[Bearbeiten] Erweiterungen des ursprünglichen Protokolls

Schon das ursprüngliche Protokoll hat lediglich empfehlenden Charakter, die hier vorgestellten Erweiterungen werden von Google, Microsoft und Yahoo! seit 2008 unterstützt.[1]

[Bearbeiten] Reihenfolge der User-Agents

Ursprünglicherweise wurde die robots.txt streng von oben nach unten abgearbeitet. Deshalb sollten die Anweisungen für alle Robots (User-Agent: *) ganz am Ende der Aufzählung stehen. Zudem musste der Name eines User-Agents bis auf die Groß- und Kleinschreibung genau bekannt sein.

Die Angabe zum User-Agent stellt nur den Anfang des User-Agent-Strings dar, User-Agent: google ist also gleichbedeutend mit User-Agent: google*.

Auf einen Robot kann immer nur ein Datensatz der robots.txt angewendet werden. Der Robot muss also den für ihn zutreffenden Datensatz bestimmen, indem er den Datensatz mit der genauesten User-Agent-Angabe ermittelt, die noch eine Übereinstimmung ergibt. Alle anderen Datensätze werden ignoriert. Die Reihenfolge der Datensätze ist also nicht von Bedeutung.

Beispiel
User-Agent: * # Anweisungen 1 User-Agent: google # Anweisungen 2 User-Agent: google-news # Anweisungen 3
Ein Robot mit dem Namen googlebot akzeptiert die Anweisungen 2, google-news-europe Anweisungen 3; einer mit dem Namen MyGoogle akzeptiert lediglich die Angaben für alle Robots.

[Bearbeiten] Allow

Im ursprünglichen Protokoll war die Möglichkeit, einzelne Dateien oder Verzeichnisse für die Indizierung zu erlauben, nicht vorgesehen.

Allow ist geeignet, um Unterverzeichnisse oder Dateien in gesperrten Verzeichnissen trotzdem für die Suchmaschinenergebnisse freizugeben.

Beispiel
User-Agent: * Disallow: /pics/ Allow: /pics/public/
Das Verzeichnis mit dem Namen pics ist von der Indizierung ausgeschlossen; Bilder, die in den Suchergebnissen dennoch auftauchen dürfen, befinden sich in pics/public.
User-Agent: * Disallow: / Allow: /public/
Hier ist die gesamte Domän gesperrt, lediglich das Verzeichnis public ist den Suchmaschinenrobots zugänglich.


Auch weiterhin ist es nicht notwendig, für einzelne Verzeichnisse das Durchsuchen zu erlauben, falls das übergeordnete Verzeichnis nicht für den Bot gesperrt ist.

Beispiel
User-Agent: * Disallow: /pics/ Allow: /docs/
Hier ist die Erlaubnis, das Verzeichnis docs zu durchsuchen, überflüssig, da es sich nicht in einem gesperrten Verzeichnis befindet.

[Bearbeiten] Wildcards

Das erweiterte Protokoll kennt für die Pfadangaben zwei Platzhalterzeichen:

  • *: beliebig viele Zeichen
  • $: Zeilenende
Beispiel
User-agent: * Disallow: /priv*/ # alle Unterverzeichnisse, die mit "priv" beginnen Disallow: /*priv/ # alle Unterverzeichnisse, die "priv" enthalten Disallow: /*.jpg$ # alle Dateien, die auf ".jpg" enden

[Bearbeiten] Sitemap

Eine Sitemap enthält in maschinenlesbarer Form die Struktur Ihrer Webpräsenz.

Sie können den vollständigen URI der Sitemap, die anders als die robots.txt selbst, an einer beliebigen Stelle unter einem beliebigem Namen gespeichert werden kann, in der robots.txt angeben.

Beispiel
Sitemap: http://example.com/sitemap.xml

Obwohl die Sitemap sinnvolle Zusatzinformationen für Suchmaschinen enthalten darf[2], ist das Erstellen einer solchen nur in wenigen Fällen sinnvoll, etwa bei sehr großen oder sehr komplexen Seiten. Sorgen Sie dafür, dass Ihre Seiten untereinander verlinkt sind. Wenn ein menschlicher Besucher alle Seiten findet, ist dies auch jedem Bot zuzutrauen.

[Bearbeiten] Quellen

  1. Google Webmaster-Zentrale Blog: Verbesserungen des Robots-Exclusion-Protokolls
  2. sitemaps.org: sitemaps-protokoll

[Bearbeiten] siehe auch

[Bearbeiten] Weblinks

Meine Werkzeuge
Namensräume

Varianten
Aktionen
Übersicht
Schnell‑Index
Mitmachen
Werkzeuge
Spenden
SELFHTML