Die robots.txt ist eine einfache Textdatei im Hauptverzeichnis Ihrer Website. Sie folgt dem Robots Exclusion Protocol, das seit 2022 als RFC 9309 standardisiert ist, und teilt Suchmaschinen-Crawlern mit, welche Pfade sie nicht abrufen sollen. Seriöse Crawler wie Googlebot und Bingbot halten sich daran – sie ist aber kein Zugriffsschutz: Jeder kann die Datei lesen, und böswillige Bots ignorieren sie.
Aufbau und Syntax
Eine robots.txt besteht aus Gruppen. Jede Gruppe beginnt mit einer oder mehreren User-agent-Zeilen, gefolgt von Regeln:
User-agent: *
Disallow: /intern/
Allow: /intern/presse/
Sitemap: https://www.beispiel.de/sitemap.xml
| Anweisung | Bedeutung |
|---|---|
User-agent |
Für welchen Crawler die Gruppe gilt (* = alle) |
Disallow |
Pfad, der nicht gecrawlt werden soll |
Allow |
Ausnahme innerhalb eines gesperrten Pfads |
Sitemap |
Absolute URL einer XML-Sitemap (gilt global) |
* |
Platzhalter für beliebige Zeichen |
$ |
Ende der URL |
Wichtige Regeln:
- Pfade sind case-sensitive:
/Intern/ist etwas anderes als/intern/. - Bei widersprüchlichen Regeln gewinnt bei Google die spezifischere (längere) Regel; bei Gleichstand gewinnt
Allow. - Ein Crawler folgt nur der Gruppe, die am besten zu ihm passt. Hat Googlebot eine eigene Gruppe, ignoriert er die
*-Gruppe komplett. - Google verarbeitet nur die ersten 500 KiB der Datei.
Crawl-delaywird von Google ignoriert; Bing berücksichtigt es.noindexin der robots.txt wird seit 2019 von Google nicht mehr unterstützt.
Beispiele aus der Praxis
WordPress
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/
Sitemap: https://www.beispiel.de/wp-sitemap.xml
Sperren Sie nicht /wp-content/ oder /wp-includes/: Dort liegen CSS, JavaScript und Bilder, die Google zum Rendern der Seite braucht.
Onlineshop
User-agent: *
Disallow: /warenkorb/
Disallow: /kasse/
Disallow: /mein-konto/
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*&sessionid=
Sitemap: https://www.beispiel-shop.de/sitemap_index.xml
Filter- und Sortierparameter erzeugen schnell Tausende nahezu identischer URLs. Diese zu sperren spart Crawl-Budget, damit Google seine Zeit für Produkte und Kategorien nutzt.
KI-Crawler ausschließen
User-agent: GPTBot
Disallow: /
User-agent: Google-Extended
Disallow: /
Google-Extended steuert, ob Inhalte für das Training von Googles KI-Modellen genutzt werden dürfen; die normale Google-Suche bleibt davon unberührt.
Testumgebung komplett sperren
User-agent: *
Disallow: /
Sicherer ist hier allerdings ein Passwortschutz, denn auch gesperrte URLs können im Index landen, wenn sie verlinkt sind.
Eine passende Datei für Ihre Website stellen Sie mit dem robots.txt-Generator zusammen.
robots.txt vs. noindex
Das ist der häufigste Denkfehler: Disallow ≠ nicht indexieren.
| Ziel | Richtiges Mittel |
|---|---|
| Crawler soll Bereich nicht abrufen (Crawl-Budget, Serverlast) | Disallow in robots.txt |
| Seite soll nicht in den Suchergebnissen erscheinen | <meta name="robots" content="noindex"> oder Header X-Robots-Tag: noindex |
| Inhalt soll niemand sehen | Passwortschutz |
Wichtig: Damit Google ein noindex überhaupt sieht, darf die Seite nicht per robots.txt gesperrt sein. Wer beides kombiniert, erreicht das Gegenteil: Google kann das noindex nicht lesen, und die URL bleibt unter Umständen im Index – mit dem Hinweis, dass keine Beschreibung verfügbar ist.
Häufige Fehler
Disallow: /aus der Entwicklungsphase bleibt nach dem Livegang stehen – die gesamte Website verschwindet nach und nach aus Google. WordPress setzt bei „Suchmaschinen davon abhalten …“ ähnliche Signale.- CSS- und JS-Ordner gesperrt, sodass Google die Seite nicht korrekt rendern kann.
- Falscher Ort:
/seo/robots.txtstatt im Stammverzeichnis. - Relative Sitemap-URL statt absoluter Adresse.
- Server liefert 5xx für die robots.txt: Google crawlt dann vorsichtshalber eine Zeit lang gar nicht.
- Tippfehler wie
Dissallowoder fehlender Doppelpunkt – solche Zeilen werden ignoriert. - Groß-/Kleinschreibung im Pfad nicht beachtet.
Crawl-Budget: Wann sich Sperren lohnen
Für eine Website mit 50 Seiten spielt Crawl-Budget praktisch keine Rolle – Google schafft das problemlos. Relevant wird es bei großen Shops und Portalen mit Zehntausenden URLs. Ein Rechenbeispiel: Ein Shop hat 2.000 Produkte in 50 Kategorien. Jede Kategorie lässt sich nach 4 Kriterien sortieren und nach 10 Filtern eingrenzen. Schon einfache Kombinationen erzeugen 50 × 4 × 10 = 2.000 zusätzliche Kategorie-URLs, Mehrfachfilter ein Vielfaches davon. Ohne Sperre verbringt Googlebot viel Zeit mit nahezu identischen Listen, statt neue Produkte zu entdecken.
Sinnvoll ist dann eine Kombination: Filter-Parameter per robots.txt ausschließen, kanonische Kategorie-URLs per Canonical-Tag festlegen und nur die kanonischen URLs in die Sitemap aufnehmen.
Subdomains, Protokolle und Sonderfälle
Jede Host-Adresse braucht ihre eigene Datei: https://www.beispiel.de/robots.txt gilt nicht für https://shop.beispiel.de oder https://blog.beispiel.de. Leitet die HTTP-Version per 301 auf HTTPS weiter, folgt Google der Weiterleitung. Liefert der Server für die robots.txt einen 404-Fehler, geht Google davon aus, dass alles erlaubt ist. Bei Serverfehlern (5xx) über längere Zeit stellt Google das Crawlen dagegen vorsichtshalber ein. Achten Sie auch darauf, dass ein Bot-Schutz oder eine Firewall die robots.txt nicht für Crawler blockiert.
Testen und überwachen
- Rufen Sie
https://ihre-domain.de/robots.txtdirekt im Browser auf. - Prüfen Sie einzelne URLs mit dem robots.txt-Tester: Ist die Seite für Googlebot erlaubt oder gesperrt, und welche Regel greift?
- In der Search Console finden Sie unter Einstellungen den robots.txt-Bericht mit Abrufstatus und Fehlern.
- Nach jedem Relaunch oder Theme-Wechsel erneut prüfen.
Wie die Sitemap mit der robots.txt zusammenspielt, erklärt der Ratgeber XML-Sitemap erstellen.
Tipp: Bewahren Sie bei jeder Änderung eine Kopie der vorherigen Version auf. Fällt nach einem Update der Traffic plötzlich ab, können Sie so schnell vergleichen und zurückkehren.
Checkliste
- Datei liegt unter
/robots.txt, liefert Status 200 und ist kleiner als 500 KiB. - Kein versehentliches
Disallow: /. - CSS, JavaScript und Bilder sind nicht gesperrt.
- Interne Suche, Warenkorb, Konto und Filterparameter ausgeschlossen.
- Sitemap mit absoluter URL angegeben.
- Seiten, die nicht in den Index sollen, nutzen
noindexstattDisallow.