So kannst du zum Beispiel den “Googlebot Image” anders behandeln als den „Googlebot mobile“ 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“. Die robots.txt steuert das Crawling, nicht das Indexing.
Aufbau der robots.txt
Der Aufbau erfolgt nach einem Protokoll. Und zwar das sogenannte „Robots Exclusion Standard Protocol“ (oder kurz: REP).
Die robots.txt-Datei ist kein echter „Schutz“ für dich: 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 eingeschlossen.
- 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 einmal 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.
- Wird mehr als eine Anweisung, die auf diesen User-Agent anwendbar ist und sich voneinander unterscheidet
- 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:
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 Screaming Frog, 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, Skripte 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-Report, mit dem du Änderungen prüfen oder testen kannst.
Der “quasi Standard” in der Datei robots.txt 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, dass 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 ein gecachtes 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, das in den Head-Bereich deiner Website kommt:
<meta name=”robots” content=”noindex” />
Dass die Anweisung gelten kann, muss dem Bot erlaubt sein, diese Datei zu crawlen! Also sind „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 sagen, 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
Dass 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!






