In der Regel sind Betreiber pro­fes­sio­nel­ler Websites bemüht, die Sicht­bar­keit des eigenen Projekts in der Such­ma­schi­ne zu erhöhen. Eine Vor­aus­set­zung dafür ist, dass alle re­le­van­ten URLs von Suchro­bo­tern aus­ge­le­sen und somit in den Index auf­ge­nom­men werden können. Dabei ist zu beachten, dass Such­ma­schi­nen Websites nur selten komplett crawlen. Denn selbst beim Markt­füh­rer Google sind die Ka­pa­zi­tä­ten für das Erfassen und Speichern von Web­in­hal­ten begrenzt. Statt­des­sen wird jeder Domain ein be­stimm­tes Crawling-Budget zu­ge­spro­chen. Dieses legt fest, wie viele URLs pro Tag aus­ge­le­sen und ggf. indexiert werden. Gerade Betreiber um­fang­rei­cher Web­pro­jek­te sind gut beraten, hier stra­te­gisch vor­zu­ge­hen, indem sie Suchro­bo­tern si­gna­li­sie­ren, welche Sei­ten­be­rei­che gecrawlt werden sollen und welche ignoriert werden können. Wichtige Werkzeuge im Rahmen dieses In­de­xie­rungs­ma­nage­ments sind Robots-Angaben in Meta-Tags, das Canonical-Tag, Wei­ter­lei­tun­gen 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 Stamm­ver­zeich­nis einer Domain abgelegt wird. Diese er­mög­licht es Web­sei­ten­be­trei­bern, den Zugriff von Such­ma­schi­nen auf die Website zu steuern, indem aus­ge­such­te Bereiche für bestimmte oder alle Suchro­bo­ter blockiert werden. Die Angaben in der robots.txt beziehen sich auf den gesamten Ver­zeich­nis­baum. Damit un­ter­schei­det sich dieses In­stru­ment des In­de­xie­rungs­ma­nage­ments si­gni­fi­kant von Meta-Robots-Angaben und Wei­ter­lei­tun­gen, die nur für ein spe­zi­el­les HTML-Dokument gelten. Zu beachten ist, dass die robots.txt von Such­ma­schi­nen lediglich als Richt­li­nie ver­stan­den wird. Erzwingen lässt sich ein be­stimm­tes Crawling-Verhalten durch Angaben in der robots.txt nicht. Google und andere große Such­ma­schi­nen­an­bie­ter geben an, ent­spre­chen­de An­wei­sun­gen zu befolgen. Sicher aus­ge­schlos­sen werden kann ein Zugriff auf Web­sei­ten­be­rei­che jedoch nur durch einen Pass­wort­schutz.

Eine robots.txt erstellen

Um Suchro­bo­tern den Zugriff auf die in­di­vi­du­el­len Crawling-Richt­li­ni­en zu er­mög­li­chen, muss eine reine Textdatei exakt als robots.txt benannt und im Stamm­ver­zeich­nis (Root) der Domain abgelegt werden. Sollen Crawling-Richt­li­ni­en für die Domain beispiel.de definiert werden, muss sich die robots.txt somit im selben Ver­zeich­nis 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-Ver­zeich­nis des Servers, sondern nur auf einen Un­ter­ord­ner (etwa www.beispiel.de/benutzer/), ist ein In­de­xie­rungs­ma­nage­ment mittels robots.txt nicht möglich. Web­sei­ten­be­trei­ber, die eine robots.txt erstellen, sollten auf einen reinen Text­edi­tor wie vi (Linux) oder notepad.exe (Windows) zu­rück­grei­fen und beim FTP-Transfer si­cher­stel­len, dass die Datei im ASCII-Modus über­tra­gen wird. Im Netz lässt sich die robots.txt mit einem Generator erstellen. Da syn­tak­ti­sche Fehler schwer­wie­gen­de Aus­wir­kun­gen auf die In­de­xie­rung des Web­pro­jekts haben können, empfiehlt es sich, die Textdatei vor dem Upload zu testen. Google hält dafür ein ent­spre­chen­des Tool im Rahmen der Search Console bereit.

Aufbau der robots.txt

Jede robots.txt be­inhal­tet Da­ten­sät­ze (records), die jeweils aus zwei Teilen bestehen. Der erste Teil wird mit dem Keyword User-agent ein­ge­lei­tet und adres­siert einen Suchro­bo­ter, dem im zweiten Teil An­wei­sun­gen gegeben werden. Bei diesen An­wei­sun­gen handelt es sich in der Regel um Crawling-Verbote, die mit dem Keyword Disallow ein­ge­lei­tet werden und nach­fol­gend ein Ver­zeich­nis bzw. eine oder mehrere Dateien nennen. Somit ergibt sich folgendes Grund­sche­ma:

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

Die robots.txt im Beispiel gilt lediglich für Web­craw­ler mit dem Namen „Googlebot“ und untersagt diesen, das Ver­zeich­nis /temp/ sowie die Datei news.html aus­zu­le­sen. Zudem werden alle Dateien und Ver­zeich­nis­se blockiert, deren Pfad mit print beginnt. Hier ist zu beachten, dass sich Disallow: /temp/ und Disallow: /print syn­tak­tisch nur durch einen fehlenden Slash (/) am Ende un­ter­schei­den. In der Syntax der robots.txt sorgt dieser jedoch ein für einen si­gni­fi­kan­ten Be­deu­tungs­un­ter­schied.

Kom­men­ta­re einfügen

Die robots.txt kann bei Bedarf durch Kom­men­ta­re ergänzt werden. Diese werden durch ein Dop­pel­kreuz (#) ein­ge­lei­tet und lassen sich an be­lie­bi­ger 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 adres­sie­ren

Sollen ver­schie­de­ne Web­craw­ler an­ge­spro­chen werden, kann die robots.txt beliebig viele Blöcke be­inhal­ten, die nach dem Grund­sche­ma 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 Ver­zeich­nis /temp/ zu durch­su­chen, wird der Bingbot daran gehindert /print/ zu crawlen.

Alle User-Agents adres­sie­ren

Sollen bestimmte Ver­zeich­nis­se oder Dateien für alle Web­craw­ler 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 Ver­zeich­nis­se /temp/, /print/ und /pictures/ für alle Web­craw­ler.

Alle Ver­zeich­nis­se von der In­de­xie­rung aus­schlie­ß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 Web­craw­ler werden an­ge­wie­sen, die gesamte Website zu igno­rie­ren. Anwenden lässt sich eine solche robots.txt zum Beispiel bei Web­pro­jek­ten, die sich noch in der Testphase befinden.

In­de­xie­rung für alle Ver­zeich­nis­se erlauben

Soll ein Suchro­bo­ter die gesamte Website crawlen und in­de­xie­ren können, si­gna­li­sie­ren Web­sei­ten­be­trei­ber 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 de­fi­nier­ten Web­craw­ler frei­ge­ge­ben.

Tabelle 1: Grund­funk­tio­nen der robots.txt
Anweisung Beispiel Funktion
User-agent: User-agent: Googlebot Adres­siert einen be­stimm­ten Web­craw­ler.
  User-agent: * Adres­siert alle Web­craw­ler.
Disallow: Disallow: Die gesamte Website darf durch­sucht werden.
  Disallow: / Die gesamte Website wird blockiert.
  Disallow: /datei.html Eine bestimmte Datei wird blockiert.
  Disallow: /beispiel Alle Ver­zeich­nis­se und Dateien, deren Pfad mit beispiel anfängt, werden blockiert.

Er­wei­ter­te Funk­tio­nen

Neben den als Quasi-Standard geltenden Grund­funk­tio­nen un­ter­stüt­zen einige Such­ma­schi­nen weitere Parameter, die es er­mög­li­chen, die Angaben in der robots.txt zu prä­zi­sie­ren. Folgende Funk­tio­nen finden sich im Sup­port­be­reich von Google. Sie gehen auf eine Über­ein­kunft mit Microsoft und Yahoo! zurück.

Ausnahmen de­fi­nie­ren

Neben Disallow un­ter­stützt Google mit Allow ein weiteres Keyword in der robots.txt, das es er­mög­licht, Aus­nah­me­re­ge­lun­gen für gesperrte Ver­zeich­nis­se zu de­fi­nie­ren:

# robots.txt für http://www.beispiel.de
User-agent: Googlebot
Disallow: /news/ 
Allow: /news/index.html

Das Keyword Allow er­mög­licht es, die Datei "http://www.beispiel.de/news/index.html" für den Googlebot frei­zu­ge­ben, obwohl das über­ge­ord­ne­te Ver­zeich­nis /news/ blockiert wurde.

Dateien mit be­stimm­ten Endungen blo­ckie­ren

Web­sei­ten­be­trei­ber, die dem Googlebot das Auslesen von Dateien mit einer be­stimm­ten Endung un­ter­sa­gen möchten, nutzen dafür Da­ten­sät­ze 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 Da­tei­na­men vor der Endung. Ab­ge­schlos­sen wird der Eintrag mit einem Dol­lar­zei­chen ($) als Zei­len­en­de-Anker.

Web­craw­ler auf Sitemap hinweisen

Neben der Steuerung des Crawling-Ver­hal­tens erlaubt es die robots.txt, Suchro­bo­ter auf die Sitemap einer Website hin­zu­wei­sen. Eine robots.txt mit Sitemap-Verweis rea­li­siert man fol­gen­der­ma­ßen:

# robots.txt für http://www.beispiel.de
User-agent: *
Disallow: /temp/
Sitemap: http://www.beispiel.de/sitemap.xml
Tabelle 2: Er­wei­ter­te Funk­tio­nen der robots.txt
Anweisung Beispiel Funktion
Allow: Allow: /beispiel.html Die an­ge­ge­be­ne Datei bzw. das Ver­zeich­nis darf durch­sucht werden.
Disallow: /*…$ Disallow: /*.jpg$ Dateien mit einer be­stimm­ten Endung werden blockiert.
Sitemap: Sitemap: http://www.beispiel.de/sitemap.xml Die XML-Sitemap findet sich unter der an­ge­ge­be­nen Adresse.
Zum Hauptmenü