Sinn der <code>robots.txtcode>
Viele Robots/Spider/Crawler/Bots durchsuchen wahllos das Internet nach Inhalten. Manchmal ist es sinnvoll, bestimmte Seiten oder Bereiche der eigenen Site vor diesen Robots zu schützen.
Beispiele:- Seiten die sich täglich ändern oder an denen noch gearbeitet wird.
- Programmdateien oder Logfiles.
- Bilder und Download-Dateien.
Aufbau der <code>robots.txtcode>
Eine Textdatei mit dem Namen <code>robots.txtcode> wird im Stammverzeichnis des Webs angelegt.
Das Schema der <code>robots.txtcode> Datei ist einfach aufgebaut:
- Welchen Robot betrifft es?
<code>User-Agentcode> - Was darf er, was nicht?
<code>Allowcode> und <code>Disallowcode> - Nächster Regelblock wird wieder mit <code>User-Agentcode> eingeleitet.
- Kommentare beginnen mit <code>#code> und gehen bis zum Ende der Zeile.
Syntax von <code>User-Agentcode>:
<code>User-Agent: [Name|*]code>
Entweder die Regel gilt nur einen Robot, oder mit <code>*code> für alle.
Syntax von <code>Allowcode>:
<code>Allow: [Datei|Pfad&|*]code>
Ein Pfad beginnt und endet immer mit einem <code>/code> (slash).
Da die Allow Anweisung aber erst später als der eigentliche Standard eingeführt wurde, wird sie noch nicht von allen Robots unterstützt. Von daher sollte man sich nicht darauf verlassen und lieber nur Disallow benutzen.
Syntax von <code>Disallowcode>:
<code>Disallow: [Pfad]code>
Bei Disallow ist keine Wildcard <code>*code> erlaubt.
Hier muß auch aktiv auf die Pfade geachtet werden. Ein <code>Disallow /indexcode> würde evtl. die Datei <code>index.htmlcode> und das Verzeichnis <code>index-dateien/code> ausschließen.
Beispiele für <code>robots.txtcode>
Es ist auf jeden Fall sinnvoll, eine minimale <code>robots.txtcode> zu erstellen:
<code># robots.txt for http://www.domain.tld/
# Zugriff auf alle Dateien erlauben
User-agent: *
Disallow:
code>
<code># robots.txt fuer http://www.domain.tld/
User-agent: BeispielRobot
Disallow: /temp/ # Die Dateien sind sehr kurzlebig
Disallow: /logfiles/ # Die ändern sich jeden Tag
Disallow: /bilder/ # Bilder nicht downloaden
Disallow: /cgi-bin/ # CGI Ausgaben nicht indexieren
Disallow: /news.html # Die news.html ändert sich täglich
code>
Mit <code>User-agent: BeispielRobotcode> bestimmt man, daß die Anweisungen nur für den Crawler <code>BeispielRobotcode> gelten.
Mit den einzelnen <code>Disallowcode> Einträgen bestimmt man Dateien und Verzeichnisse die nicht indexiert werden sollen.
Um alle Crawler aus einem Verzeichnis rauszuhalten, benutzt man den Wildchar <code>*code>.
<code># Alle Robots ausschließen
User-agent: *
Disallow: /temp/
code>
Wenn man nicht gleich alle Crawler, sondern nur ein paar bestimmte meint, kann man diese so angeben:
<code># Massendownloader vom CGI Verzeichnis fernhalten
User-agent: wget
User-agent: webzip
User-agent: webmirror
User-agent: webcopy
Disallow: /cgi-bin/
code>
Um seine Site ganz von der Indexierung auszuschließen kann man folgendes benutzen:
<code># Ganze Site für alle Robots sperren
User-agent: *
Disallow: /
code>
Wenn man den Slash (/) wegläßt, gibt man Seine Site ganz für die Indexierung frei.
<code># Ganze Site freigeben
User-agent: *
Disallow:
code>
Fehler vermeiden & Syntax prüfen
- Häufiger Fehler: Ein HTML-Editor wird beim erstellen der <code>robots.txtcode> benutzt und fügt ungewollten HTML-Code ein.
- Beim FTP-Transfer sollte die <code>robots.txtcode> im ASCII Modus übertragen werden.
- Der Dateiname besteht nur aus Kleinbuchstaben!
- Man sollte immer einen Syntax-Check machen um seine <code>robots.txtcode> zu prüfen. (Link siehe unten.)
Grenzen der <code>robots.txtcode>
- Man kann mit der <code>robots.txtcode> keine Dateien vor Zugriffen schützen.
- Kein Robot ist verbindlich verpflichtet sich an die <code>robots.txtcode> zu halten.
- Mit der <code>robots.txtcode> kann man keinen Robot dazu bringen etwas bestimmtes zu indexieren.