Die robots.txt – alles zur Crawlersteuerung

Was die robots.txt ist, wofür du sie verwenden kannst und wofür nicht. Ein häufiger Irrglaube z. B. ist: Mit der Robots.txt kann man die Indexierung bei Google verhindern, das ist falsch! Wie du das tust und wofür du dir robots.txt benötigst, erfährst du jetzt!
Alles zur robots.txt

Was ist die robots.txt

Die robots.txt ist eine einfache Textdatei, die im Root-Verzeichnis der Domain abgelegt wird. Der Inhalt der Datei dient der Steuerung von Robots (wie dem Googlebot). Sie enthält zum Beispiel den Pfad zur XML-Sitemap, disallow Anweisungen und steuert verschiedene Robots.

So kannst du zum Beispiel dem “Googlebot Image” anders behandeln, als den Googlebot oder den AdsBot. Du kannst mit der robots.txt nicht verhindern, dass eine Seite im Index der Suchmaschinen (also auch dem Google Index) auftaucht. Dafür gibt es das Meta-Tag Robots mit dem Inhalt nofollow.

Aufbau der robots.txt

Der Aufbau erfolgt nach einem Protokoll. Und zwar das sogenannte „Robots Exclusion Standard Protokoll“ ( oder kurz: REP).

REP wurde im Jahr 1994 veröffentlicht und legt fest, dass Suchmaschinen-Robots, oder besser User Agents, zuerst im Root-Verzeichnis nach dieser Datei “robots.txt” suchen sollen. Sie werden nun die Datei auslesen und sich an die Regeln halten.

Die robots.txt muss also im Root- oder Anfangsverzeichnis deiner Domain abgelegt werden und genau diesen Dateinamen in Kleinbuchstaben tragen. Denn das Auslesen der robots.txt durch den Bot erfolgt case-sensitive. Das heißt es wird auf Groß- und Kleinschreibung geachtet. Gleiches gilt für die Anweisungen, die in der Datei stehen.

Die robots.txt Datei ist kein echter Schutz für dich, denn wie oben erwähnt: Nicht alle Bots halten sich an diese Spielregeln. Die wichtigsten Suchmaschinen, also Google, und weniger wichtig Bing und Yahoo halten sich an die Vorgaben in der robots.txt und verfahren nach dem REP.

Die robots.txt Syntax

  • robots.txt muss eine UTF-8-codierte Textdatei sein (ASCII-Dateien demnach eingeschloosen). Die Verwendung anderer Zeichensätze ist demnach auch nicht möglich.
  • Die Datei ist case-sensitiv, Groß- und Kleinschreibung ist wichtig, schon beim Namen: robots.txt
  • Die Datei enthält mindestens eine oder mehrere Gruppen.
  • Jede Gruppe besteht aus Regeln oder Anweisungen wobei diese jeweils eine pro Zeile vorkommen.
  • Eine Gruppe enthält in der Regel die folgenden Informationen:
    • für wen gilt die Regel (User-Agent)
    • auf welche Verzeichnisse oder Dateien trifft die Regel zu
    • auf welche Verzeichnisse oder Dateien ist crawlen erlaubt oder nicht
  • Gruppen werden von oben nach unten verarbeitet und ein Agent kann nur einen Regelsatz anwenden.
  • Er wendet die spezifischste Regel an, also die für den Bot selbst, auch wenn woanders allen Agents etwas anderes erlaubt wird, gilt die Anweisung für den speziellen Bot höher.
  • Mehr als eine Anweisung die auf diesen User-Agent anwendbar ist und sich voneinander Unterscheiden? Dann wird die Regel angewandt, die zuerst in der Datei erscheint.
  • Standardmäßig wird davon ausgegangen, dass ein User-Agent alle Seiten und Verzeichnisse crawlen darf.

Auswahl des zu steuernden Bots

Du kannst bestimmten Bots bestimmte Anweisungen geben. Wenn du alle Bots gleich behandeln möchtest, dann verwendest du * als Platzhalter für alle Bots und Crawler.

Bots kannst du so ansprechen:

robots.txt user-agent auswahl
User-agent: *
User-agent: Googlebot
User-agent: Googlebot-Image

Im ersten Beispiel sprichst du alle Bots an, im Zweiten nur den Googlebot und im Dritten nur den Googlebot für Bilder.

Du kannst nicht nur die Suchmaschinen Robots ansprechen, auch Websites wie Archive.org oder SEO-Tools wie Screamingfrog, Semrush usw. verwenden Bots zum crawlen deiner Website.

Diese kannst du steuern, das crawlen erlauben oder verbieten. Die meisten Crawler halten sich an diese Anweisungen, manche jedoch nicht.

Allow und Disallow Regeln für Bots

Indexierung ausgeschlossen ist das, was viele bei Disallow glauben, allerdings heißt das: Crawling ausgeschlossen! Indexierung und Crawling sind zwei unterschiedliche paar Schuhe!

Disallow- Anweisung: Bitte nicht crawlen

Disallow Regeln in der Textdatei erlauben einem Bot nicht, die Inhalte zu crawlen. Demnach wird sich der Bot zum Beispiel nicht den Ordner /wp-includes ansehen, wenn du folgende Disallow Zeile in deiner robots.txt verwendest:

Disallow: /wp-includes/

Das bedeutet, dass der Bot beim crawlen dieses Verzeichnis ignoriert. Auch alles was darin liegt. Demnach gibt es für den Bot blockierte URLs.

Gerade für dein Google Ranking ist allerdings wichtig, dass du keine URLs blockierst, die Dateien enthalten, die für das Rendern deiner Website benötigt werden. Also Bilder, Scripte oder Stylesheets zum Beispiel.

In der Google Search Console bekommst du eine Liste mit blockierten URLs, die der Bot eigentlich benötigt. Zusätzlich gibt es auch einen robots.txt Tester, mit denen du Änderungen prüfen oder testen kannst.

Der “quasi standard” in der Datei robots.txt für ist:

User-agent: *
Disallow:

Das bedeutet: Jeder Bot darf alles crawlen. Vorsicht: Nur ein zeichen mehr würde bedeuten, jeder Bot darf gar nichts crawlen:

User-agent: *
Disallow: /

Denn der Slash sagt, alles in diesem Rootverzeichnis und darüber hinaus ist Tabu. Der Bot wird also nichts crawlen! Folglich aber auch, möchtest du das Google nichts crawlt, geht das so:

User-agent: Googlebot 
Disallow: /

Allow- Anweisung: Exklusiv erlauben

Hast du bestimmte Verzeichnisse verboten, kannst du mit der “Allow” Anweisung allerdings Ordner-Inhalte exklusiv erlauben:

User-agent: *
Disallow: /css/
Allow: /css/release.css
Allow: /css/gecashtes-css.css?*

Die letzte Zeile im übrigen erlaubt eine gecashte CSS in jeder Version. Wenn ein Plugin zum Beispiel eine CSS- oder JS-Datei casht, die Datei in einem verbotenen Verzeichnis liegt, musst du nicht nach jedem neuen Cashen die neue Version in der robots.txt eintragen. Cashing-Plugins erstellen Dateien mit Versionierung, die sich regelmäßig ändert. Es gibt Platzhalter:

Allow: /css/gecashtes-css.css?*

Es ist bei dieser Zeile egal ob es “gecashtes-css.css?ver-1_0” oder “gecashtes-css.css?ver-2_11_3” ist. Alles was den Teil “gecashtes-css.css” enthält, wird erlaubt. Das funktioniert übrigens bei allen Befehlen.

Manchmal möchte man, dass der Bot (z. B. Googlebot Bilder) einige Bilder die das CMS verwendet (und nur wenn man angemeldet ist sichtbar werden) nicht crawlt. Das geht so:

User-agent: Googlebot-Image
Disallow: *.jpg

Oder besser:

User-agent: Googlebot-Image
Disallow: /cms/bilder/*.jpg

Denn die erste Zeile, würde ja generell Bilder verbieten.

Wie kann ich die Indexierung verbieten

Wie gesagt, nicht mit der robots.txt, das wäre sogar schädlich. Nehmen wir an, du willst alle URLs unter /test/ nicht indexieren, dann schreiben viele in die robots:

User-agent: *
Disallow: /test/
Disallow: /test/*

Das ist doppelt und falsch! Indexierung ist immer noch möglich, nämlich dann, wenn die Seiten intern verlinkt sind. Zur Deindexierung verwendest du das Meta-Robots-Tag, dass in den Head-Bereich deiner Website kommt:

<meta name=”robots” content=”noindex” />

Das die Anweisung gelten kann, muss dem Bot erlaubt sein, diese Datei zu crawlen! Also ist disallow und Meta-Robots falsch! Deindexierung erreichst du nur mit dem Meta-Tag-Robots und der Erlaubnis, die URLs zu crawlen!

Dir sind vielleicht schon Seiten im Google-Index aufgefallen, bei denen der Bot sagt: Aufgrund der Einstellungen in der robots.txt kann ich nichts zu dieser Seite sagen. Das liegt daran, dass die Seite nicht gecrawlt werden darf, die Seite aber gut verlinkt ist. So wurde sie indexiert, denn das meta-robots-tag konnte nicht gelesen werden. Leider kann Google auch sonst nichts sage, es konnte weder die Meta-Description, noch den Text sehen. Alles was der Bot weiß, kennt er aus den verweisenden internen und externen Links.

Die Sitemap in der robots.txt angeben

Die Sitemap gibst du (wieder ein quasi Standard) direkt in der ersten Zeile an:
Sitemap: http://domainname.tld/sitemap.xml

Kommentieren in der robots.txt

Das du auch in zwei Jahren noch weißt, warum etwas in der robots.txt steht, darfst du Kommentieren. Kommentare beginnen immer mit dem #-Symbol.

# Beispielkommentar für die robots.txt

Beispiel robots.txt

# Sitemap angeben:
Sitemap: https://intenseo.de/sitemap_index.xml

# Alle Bots, Crawler:
User-agent: *

# Verbote:
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /tmp/

# Exklusive Gebote (gelten trotz verbot):
Allow: /wp-admin/admin-ajax.php*

# Exklusives Gebot für Datei die versioniert wird
Allow: /wp-includes/js/wp-embed.min.js?*

# AdsBot blockieren
User-agent: AdsBot-Google
Disallow: /

# Google-Image-Bot einige CMS-Bilder verbieten:
User-agent: Googlebot-Image
Disallow: /cms/bilder/*.jpg

Die robots.txt Zusammengefasst

  • robots.txt dient der Botsteuerung
  • dient nicht der deindexierung
  • liegt im Root-Verzeichnis
  • ist Case-Sensitive
  • UTF-8 Codiert
  • nicht verboten = erlaubt
  • 2 unterschiedliche Anweisungen? Die erste gilt!
robots txt show