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.

robots.txt ist eine Empfehlung, kein Schutzmechanismus. Seriöse Bots wie Googlebot und Yandex halten sich an die Anweisungen. Bösartige Crawler und Scraper ignorieren die Datei vollständig. Um sensible Daten zu schützen, nutzen Sie serverseitige Zugriffskontrollen und Authentifizierung – nicht robots.txt.

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.

Entscheidungsbaum des Googlebots: robots.txt steuert das Crawling, das Meta-noindex steuert die Indexierung. Zusammen ergeben sie vier unterschiedliche Ergebnisse.

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 #.

DirektiveUnterstützungBeschreibung
User-agentAlleBot-Kennung. * bedeutet „alle Crawler“. Ein Block kann mehrere User-agent-Zeilen haben.
DisallowAllePfad, dessen Crawling untersagt ist. Ein leerer Wert bedeutet „nichts ist gesperrt“ (alles erlaubt).
AllowGoogle, YandexErlaubt ausdrücklich einen Pfad innerhalb eines gesperrten Bereichs. Hat Vorrang vor Disallow.
Crawl-delayYandex, BingMindestabstand in Sekunden zwischen Bot-Anfragen. Wird von Google ignoriert.
SitemapGoogle, Yandex, BingAbsolute 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.

text
# 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$
Widersprechen sich Disallow und Allow, gewinnt die spezifischere Regel (mit mehr Zeichen). Bei gleicher Länge gewinnt Allow. Dieses Verhalten ist googlespezifisch. Andere Bots können es anders umsetzen.

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:

text
Sitemap: https://example.com/sitemap.xml
Nutzen Sie einen Sitemap-Index, reicht eine Sitemap-Zeile für die Index-Datei. Sie müssen nicht jede untergeordnete Sitemap auflisten. Die Suchmaschine findet alle über den Index.

Fertige 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.

text
# robots.txt for example.com — simple public site
User-agent: *
Disallow: /admin/
Disallow: /login
Disallow: /dashboard/

Sitemap: https://example.com/sitemap.xml

Szenario 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.

text
# 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.xml
Bei parametrischen Seiten mit eigenem Inhalt, etwa einem Produkt mit bestimmter Größe oder Farbe, ist ein Canonical-Tag einem Disallow vorzuziehen. Es schont das Crawl-Budget, ohne die Seite komplett vom Crawling abzuschneiden.

Szenario 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.

text
# 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.xml
Ein per robots.txt gesperrter Bereich ist nicht vertraulich. URLs von Staging-Seiten können trotzdem indexiert werden, wenn externe Seiten auf sie verlinken. Für echte Abschottung nutzen Sie HTTP-Basisauthentifizierung oder eine IP-Freigabeliste auf Serverebene.

Disallow 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.

WerkzeugWo es liegtWas es bewirktWann einsetzen
Disallow in robots.txtrobots.txtVerhindert, 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 noindexHTML <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-TagHTTP-Antwort-HeaderEntspricht meta robots, funktioniert aber für jeden Dateityp: PDFs, Bilder, Dokumente.Indexierung von Nicht-HTML-Ressourcen steuern (PDF, DOCX, Bilder).
Kombinieren Sie Disallow und noindex nie für dieselbe Seite. Ist eine Seite in robots.txt blockiert, kann Google ihr noindex nicht lesen und hält die URL womöglich mit leerem Snippet im Index. Setzen Sie noindex nur auf Seiten, die der Crawler besuchen darf.

Beispiel für X-Robots-Tag im HTTP-Antwort-Header (konfiguriert in Nginx oder im Anwendungscode):

text
# 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.
Beispiel für eine robots.txt, die die obigen Empfehlungen umsetzt:
bash
# 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.txt

Häufige Fehler und ihre Behebung

FehlerSymptomBehebung
Disallow: / für die ganze WebsiteDer 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 PfadDisallow: /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 SeiteDie 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 RegelnSyntaxfehler: Die Regeln gelten für keinen Bot.User-agent: * vor den Block mit Disallow und Allow setzen.
robots.txt liefert 404 oder 500404 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.

Verlassen Sie sich nicht allein auf robots.txt als Schutz für sensible Bereiche. Ein Pfad wie Disallow: /internal-api/v2/keys/ zeigt einem Angreifer genau, wo er suchen muss.
  • 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:

text
# 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.xml

FAQ

Beeinflusst robots.txt das Ranking?
Indirekt. Die Datei selbst ist kein Rankingsignal, aber Disallow-Sperren verringern das Crawling der betroffenen Seiten. Sperren Sie wichtige Seiten, verlieren sie an Sichtbarkeit. Sperren Sie doppelte parametrische URLs, geben Sie Crawl-Budget für wertvolle Seiten frei.
Was passiert, wenn robots.txt einen 404-Fehler liefert?
Google behandelt eine fehlende robots.txt (404) als „keine Einschränkungen“ und crawlt die gesamte Website. Ein 500-Fehler oder ein Timeout gilt als vorübergehende Sperre. Google pausiert das Crawling, bis die Datei wieder verfügbar ist.
Kann ich in einer Datei unterschiedliche Regeln für Googlebot und Yandex festlegen?
Ja. Legen Sie zwei getrennte User-agent-Blöcke an. Der Googlebot liest nur seinen Block, Yandex nur seinen eigenen. Der Block User-agent: * gilt für alle Bots ohne eigenen Block.
Disallow: / sperrt die ganze Website. Wie behebe ich das schnell?
Ersetzen oder entfernen Sie die Zeile Disallow: / im Block User-agent: *. Prüfen Sie danach in der GSC mit der URL-Prüfung, ob die Seiten wieder erreichbar sind. Das normale Crawling setzt sich innerhalb weniger Tage nach der Korrektur fort.
Wie sperre ich eine einzelne Datei, aber nicht ihr Verzeichnis?
Verwenden Sie einen exakten Pfad ohne abschließenden Schrägstrich: Disallow: /private-doc.pdf. Um eine Dateiendung website-weit zu sperren, nutzen Sie einen Platzhalter: Disallow: /*.pdf$

Check it with SpiderHead

Free and local: run the audit on your own machine.

Try it