robots.txt: vollständige Einrichtungsanleitung für SEO
So wirkt sich robots.txt auf das Crawling aus, wo die Datei die Indexierung nicht steuern kann und wie Sie Anweisungen testen, ohne Seiten zu blockieren, die gefunden werden sollen.
robots.txt ist eine einfache Textdatei im Stammverzeichnis Ihrer Website. Sie teilt Suchmaschinen-Crawlern mit, welche Bereiche sie besuchen dürfen und welche sie auslassen sollen. Beim Besuch Ihrer Website liest ein Crawler diese Datei als Erstes. Die Datei gibt es seit 1994, und bis heute ist sie der faktische Standard für die Steuerung des Crawlings.
Die zentrale Einschränkung: Eine Seite, die per Disallow blockiert ist, verschwindet nicht automatisch aus dem Index. Verlinken andere Websites auf sie, kann Google die URL indexieren, ohne sie zu besuchen, und sie in den Suchergebnissen womöglich ohne Snippet anzeigen. Um eine Seite vollständig aus dem Index zu entfernen, brauchen Sie andere Werkzeuge.
Was robots.txt ist und wo ihre Grenzen liegen
Die Datei robots.txt muss im Domain-Stammverzeichnis liegen: https://example.com/robots.txt. Subdomains haben eigene Dateien: robots.txt für blog.example.com liegt unter https://blog.example.com/robots.txt. Der Robots Exclusion Standard (REP) definiert die Kernanweisungen. Google und Yandex haben ihn um zusätzliche Funktionen erweitert.
Crawl-Steuerung
Verhindert, dass Bots bestimmte Bereiche besuchen. Das reduziert unnötige Serverlast und schont das Crawl-Budget für wertvolle Seiten.
Verweist auf die Sitemap
Die Sitemap-Anweisung hilft Suchmaschinen, Ihre XML-Sitemap sofort zu finden, ohne zusätzliche Einrichtung.
Schützt keine Inhalte
robots.txt ist öffentlich einsehbar. Die Datei verschlüsselt oder verbirgt keine Seiteninhalte. Sie bittet Bots nur, die Seiten nicht zu besuchen.
Format und Syntax
Die Datei besteht aus Blöcken, die Datensätze heißen. Jeder Datensatz beginnt mit einer oder mehreren User-agent-Zeilen und kann beliebig viele Disallow-, Allow-, Crawl-delay- und Sitemap-Zeilen enthalten. Datensätze werden durch eine Leerzeile getrennt. Kommentare beginnen mit #.
| Direktive | Unterstützung | Beschreibung |
|---|---|---|
| User-agent | Alle | Bot-Kennung. * bedeutet „alle Crawler“. Ein Block kann mehrere User-agent-Zeilen haben. |
| Disallow | Alle | Pfad, dessen Crawling untersagt ist. Ein leerer Wert bedeutet „nichts ist gesperrt“ (alles erlaubt). |
| Allow | Google, Yandex | Erlaubt ausdrücklich einen Pfad innerhalb eines gesperrten Bereichs. Hat Vorrang vor Disallow. |
| Crawl-delay | Yandex, Bing | Mindestabstand in Sekunden zwischen Bot-Anfragen. Wird von Google ignoriert. |
| Sitemap | Google, Yandex, Bing | Absolute URL der XML-Sitemap. Mehrere Sitemap-Zeilen sind erlaubt. |
Wildcards: * und $
Google und Yandex unterstützen in Disallow- und Allow-Pfaden zwei Platzhalterzeichen. Ein Sternchen * steht für eine beliebige Zeichenfolge, auch für eine leere. Ein Dollarzeichen $ markiert das Ende einer URL. Es erzwingt eine exakte Übereinstimmung bis zum letzten Zeichen.
# Block all URLs with the ?sort= parameter
Disallow: /*?sort=
# Block only /page (exact match, not /page/child)
Disallow: /page$
# Block all PDFs across the entire site
Disallow: /*.pdf$Die Sitemap-Anweisung kann überall in der Datei stehen. Sie muss nicht in einem bestimmten User-agent-Block liegen. Verwenden Sie immer eine vollständige absolute URL:
Sitemap: https://example.com/sitemap.xmlFertige Beispiele für verschiedene Szenarien
Szenario 1: einfache öffentliche Website
Für eine kleine Website ohne private Bereiche genügt eine minimale Datei: alles erlauben, Admin-Bereich und technische Pfade sperren und die Sitemap angeben.
# robots.txt for example.com — simple public site
User-agent: *
Disallow: /admin/
Disallow: /login
Disallow: /dashboard/
Sitemap: https://example.com/sitemap.xmlSzenario 2: großer Onlineshop mit Katalog- und Parameterseiten
Ein Onlineshop erzeugt über Filter, Sortierung und Paginierung Hunderttausende URLs. Die meisten sind Duplikate oder Seiten ohne eigenständigen Wert. Sperren Sie parametrische URLs mit Disallow und Platzhaltern, während saubere Kategorie- und Produktseiten zugänglich bleiben.
# robots.txt for e-commerce example.com
User-agent: *
# Technical and admin sections
Disallow: /admin/
Disallow: /checkout/
Disallow: /cart
Disallow: /account/
Disallow: /api/
# Parametric catalogue duplicates
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?page=
Disallow: /*?ref=
Disallow: /search
# Explicitly allow a useful parameter in one section
Allow: /catalog/shoes?size=
Crawl-delay: 1
Sitemap: https://example.com/sitemap.xmlSzenario 3: Website mit Staging- und temporären Seiten
Landingpages für Webinare, Entwürfe, Vorlagenseiten und Staging-Bereiche sollten vom Crawling ausgeschlossen werden. Nutzen Sie Disallow mit Pfad-Präfix und bei Bedarf einen eigenen Block für bestimmte Bots.
# robots.txt for example.com — main site with staging sections
User-agent: *
Disallow: /webinar-drafts/
Disallow: /templates/
Disallow: /staging/
Disallow: /_preview/
Disallow: /thank-you-test
# Block the entire site for a specific bot (e.g. an aggressive crawler)
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Disallow: /
Sitemap: https://example.com/sitemap.xmlDisallow vs. Meta-robots-noindex vs. X-Robots-Tag
Das sind drei verschiedene Werkzeuge mit unterschiedlichen Aufgaben. Sie zu verwechseln führt zu einem klassischen Fehler: Eine Seite ist in robots.txt blockiert und trägt zusätzlich ein noindex-Meta-Tag. Google kann das Meta-Tag aber nicht lesen, weil die Seite vom Crawling ausgeschlossen ist. Die noindex-Anweisung wird also nie ausgeführt.
| Werkzeug | Wo es liegt | Was es bewirkt | Wann einsetzen |
|---|---|---|---|
| Disallow in robots.txt | robots.txt | Verhindert, dass der Bot die URL besucht. Entfernt die URL nicht aus dem Index, wenn sie dort bereits enthalten ist. | Dienstbereiche sperren und unnötigen Verbrauch des Crawl-Budgets reduzieren. |
| meta robots noindex | HTML <head> | Erlaubt dem Bot den Besuch, untersagt aber die Aufnahme in den Index. Der Bot liest das Tag und folgt der Anweisung. | Einzelne Seiten aus dem Index entfernen (Danke-Seiten, Paginierung, Filterseiten). |
| X-Robots-Tag | HTTP-Antwort-Header | Entspricht meta robots, funktioniert aber für jeden Dateityp: PDFs, Bilder, Dokumente. | Indexierung von Nicht-HTML-Ressourcen steuern (PDF, DOCX, Bilder). |
Beispiel für X-Robots-Tag im HTTP-Antwort-Header (konfiguriert in Nginx oder im Anwendungscode):
# Nginx: prevent indexation of all PDFs
location ~* \.pdf$ {
add_header X-Robots-Tag "noindex, nofollow";
}So testen Sie robots.txt
Prüfen Sie Änderungen immer, bevor Sie sie live schalten. Ein einziger Tippfehler kann Ihre gesamte Website für Crawler sperren.
- Google Search Console → robots.txt-Tester: direkt in der GSC integriert. Geben Sie eine URL ein, um zu prüfen, ob Googlebot und andere Google-Bots sie abrufen dürfen oder blockiert sind.
- Yandex Webmaster → Analyse von robots.txt: das Pendant für Yandex. Zeigt, wie der Yandex-Bot Ihre Datei interpretiert.
- Screaming Frog SEO Spider → Configuration → Robots.txt: crawlt die Website unter Beachtung der robots.txt und listet die blockierten URLs im Bericht auf.
- curl: schneller Check über die Kommandozeile, um die Datei zu lesen und den HTTP-Status zu prüfen.
# Fetch robots.txt and inspect its contents
curl -s https://example.com/robots.txt
# Check HTTP status (must be 200)
curl -I https://example.com/robots.txtHäufige Fehler und ihre Behebung
| Fehler | Symptom | Behebung |
|---|---|---|
| Disallow: / für die ganze Website | Der Googlebot crawlt nichts mehr. Die GSC zeigt Seiten als „durch robots.txt blockiert“ an. | Zeile entfernen oder durch einen konkreten Pfad ersetzen. Das rutscht bei Deployments häufig unbemerkt hinein. |
| Versehentliches Leerzeichen im Pfad | Disallow: /admin / (mit Leerzeichen): Der Bot liest den Pfad wörtlich, und nichts wird blockiert. | Leerzeichen entfernen. Pfade unterscheiden Groß- und Kleinschreibung und reagieren empfindlich auf Leerzeichen. |
| noindex + Disallow auf derselben Seite | Die Seite bleibt im Index, und die noindex-Anweisung wird nie ausgeführt. | Disallow entfernen und nur noindex behalten. Der Bot muss die Seite besuchen können, um das Tag zu lesen. |
| User-agent fehlt vor den Regeln | Syntaxfehler: Die Regeln gelten für keinen Bot. | User-agent: * vor den Block mit Disallow und Allow setzen. |
| robots.txt liefert 404 oder 500 | 404 wird als „keine Einschränkungen“ gewertet. 500 stoppt das Crawling vorübergehend. | Stellen Sie HTTP 200 sicher. Eine leere Datei bedeutet „alles erlauben“. |
Sicherheitsempfehlungen
robots.txt ist öffentlich einsehbar und wird von Suchmaschinen indexiert, jeder kann sie also lesen. Wer Pfade zu Admin-Bereichen, Backups, internen APIs oder Konfigurationsdateien in robots.txt auflistet, liefert Angreifern im Grunde eine Landkarte Ihrer Website.
- Sensible Pfade nicht offenlegen: Backups (.zip, .sql), Konfigurationsdateien (.env, config.php) und interne APIs gehören nicht in die Datei.
- Vertrauliche Bereiche auf Serverebene schützen: HTTP-Basisauthentifizierung, IP-Freigabeliste, OAuth. Nicht über robots.txt.
- Die Disallow-Liste schlank halten: Sperren Sie nur Pfade, die aus SEO-Gründen tatsächlich vom Crawling ausgeschlossen werden sollen.
- robots.txt regelmäßig in der GSC prüfen: So merken Sie, wenn ein Deployment versehentlich Disallow: / eingeführt hat.
Checkliste und abschließendes Beispiel
- Die Datei ist unter https://example.com/robots.txt erreichbar und liefert HTTP 200
- UTF-8-Kodierung ohne BOM (Byte Order Mark)
- Jeder Block beginnt mit User-agent
- Eine Leerzeile trennt Blöcke für unterschiedliche User-agents
- Keine Kombination aus Disallow und noindex auf derselben Seite
- Keine sensiblen Pfade öffentlich offengelegt
- Crawl-delay für Yandex gesetzt, wenn die Serverlast hoch ist
- Die Sitemap-Anweisung verweist auf die Index-Datei im Stammverzeichnis
- Datei in GSC und Yandex Webmaster geprüft
- Screaming Frog zeigt die erwartete Anzahl blockierter URLs
Abschließendes Beispiel einer robots.txt für example.com mit Kommentaren, eine universelle Vorlage für die meisten Szenarien:
# robots.txt for example.com
# Updated: 2026-05-15
# Rules for all crawlers
User-agent: *
# Admin and auth sections
Disallow: /admin/
Disallow: /login
Disallow: /dashboard/
Disallow: /account/
# Technical paths
Disallow: /api/
Disallow: /_next/
Disallow: /cdn-cgi/
# Parametric duplicates (e-commerce)
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?ref=
Disallow: /search
# Staging and temporary pages
Disallow: /staging/
Disallow: /webinar-drafts/
Disallow: /templates/
# Explicit allow for a useful API path
Allow: /api/og-image/
# Crawl rate for Yandex
User-agent: Yandex
Crawl-delay: 1
# Aggressive SEO bots (optional)
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Disallow: /
# Sitemap
Sitemap: https://example.com/sitemap.xmlFAQ
Beeinflusst robots.txt das Ranking?
Was passiert, wenn robots.txt einen 404-Fehler liefert?
Kann ich in einer Datei unterschiedliche Regeln für Googlebot und Yandex festlegen?
Disallow: / sperrt die ganze Website. Wie behebe ich das schnell?
Wie sperre ich eine einzelne Datei, aber nicht ihr Verzeichnis?
Check it with SpiderHead
Free and local: run the audit on your own machine.



