robots.txt und sitemap.xml haben unterschiedliche Aufgaben
| Mechanismus | Zweck | Bereich | Wirkung |
|---|---|---|---|
| robots.txt | Crawling steuern | Crawler-Pfade | Garantiert keine Deindexierung |
| sitemap.xml | Wichtige URLs melden | URLs und Metadaten | Hinweis, keine Indexierungsgarantie |
| noindex | Aus Index ausschließen | URL oder Ressource | Wirkt nach dem Crawlen |
| rel="canonical" | Bevorzugte Duplikatversion angeben | URL oder Ressource | Starkes Signal, keine absolute Direktive |
robots.txt gehört zum Robots Exclusion Protocol und regelt den Zugriff von Crawlern auf URL-Pfade. RFC 9309 stellt klar, dass diese Regeln keine Zugriffsauthentifizierung sind. [4]
Eine Sitemap informiert Suchmaschinen über wichtige Seiten, Videos und andere Dateien sowie deren Beziehungen und Metadaten. [6]
Speicherort und Geltungsbereich von robots.txt
Die Datei muss `robots.txt` heißen und im Root des Hosts liegen, zum Beispiel `https://example.com/robots.txt`. Eine Datei in einem Unterverzeichnis steuert nicht die gesamte Website. [2][4]
Der Geltungsbereich ist an Protokoll, Host und Port gebunden. Außerdem gilt bei Google ein Limit von 500 KiB. [2][3]
Grundlegende robots.txt-Syntax
User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://example.com/sitemap.xml
Google unterstützt `user-agent`, `allow`, `disallow` und `sitemap`. `crawl-delay` wird von Google nicht unterstützt. [3]
`sitemap` muss eine vollständig qualifizierte URL enthalten. Mehrere `Sitemap`-Zeilen sind möglich. [2][3]
Regelabgleich, Großschreibung und Wildcards
Google verwendet die spezifischste passende Regel. Sind `allow` und `disallow` gleich spezifisch, gewinnt die weniger restriktive `allow`-Regel. [3][4]
Pfadwerte sind case-sensitive. Google unterstützt außerdem `*` als Wildcard und `$` für das URL-Ende. [3]
robots.txt ist kein noindex
Eine durch robots.txt blockierte URL kann trotzdem in Suchergebnissen erscheinen, wenn Google sie über andere Links entdeckt. [1][3]
Für die Entfernung aus dem Index sollte `noindex` als Meta-Robots-Regel oder `X-Robots-Tag` verwendet werden. Google muss die Ressource crawlen können, um diese Regel zu sehen. [5][16]
HTTP-Fehler und Caching von robots.txt
| Status | Verhalten von Google |
|---|---|
| 2xx | Verarbeitet die Datei |
| 3xx | Folgt mindestens 5 Weiterleitungen |
| 4xx except 429 | Behandelt wie fehlende robots.txt |
| 5xx / network | Kann Crawling pausieren und letzte gültige Version nutzen |
Google verarbeitet `2xx`, folgt bei `3xx` mindestens fünf Weiterleitungen und behandelt die meisten `4xx` außer `429` so, als gäbe es keine Crawl-Beschränkungen. [3]
Bei `5xx` oder Netzwerkproblemen kann Google das Crawling vorübergehend stoppen und die letzte gültige Version verwenden. robots.txt wird normalerweise bis zu 24 Stunden gecacht. [3]
Wozu sitemap.xml dient
Sitemaps helfen beim Entdecken wichtiger URLs und können Änderungsdaten, Sprachvarianten sowie Informationen zu Bildern, Videos und News übertragen. [6][7]
Kleine Websites mit ungefähr 500 Seiten oder weniger und guter interner Verlinkung benötigen laut Google nicht zwingend eine Sitemap. [6]
Unterstützte Sitemap-Formate
Google unterstützt XML, RSS, mRSS, Atom 1.0 und Text-Sitemaps. XML ist am flexibelsten und unterstützt Erweiterungen für Medien, News und Lokalisierung. [7]
Google bevorzugt keines der unterstützten Formate grundsätzlich. [7]
Limits für Sitemap und Sitemap-Index
| Datei | Maximale Einträge | Maximale Größe | Hinweis |
|---|---|---|---|
| Einzelne Sitemap | 50,000 | 50 MB | Unkomprimiertes Limit; gzip erlaubt |
| Sitemap-Index | 50,000 sitemaps | 50 MB | Unkomprimiertes Limit; gzip erlaubt |
Eine Sitemap ist auf 50.000 URLs oder 50 MB unkomprimiert begrenzt. Größere Mengen müssen aufgeteilt werden. [7][8]
Ein Sitemap-Index kann bis zu 50.000 Sitemaps enthalten und unterliegt ebenfalls dem 50-MB-Limit. gzip ist erlaubt. [8]
Welche URLs in die Sitemap gehören
Google empfiehlt vollständig qualifizierte URLs, die tatsächlich in Suchergebnissen erscheinen sollen. [7]
Bei Duplikaten sollte bevorzugt die kanonische URL eingetragen werden. Sitemap-Aufnahme ist ein schwaches Canonical-Signal und schwächer als Redirect oder `rel="canonical"`. [7][9]
`<lastmod>`, `<priority>` und `<changefreq>`
Google ignoriert `<priority>` und `<changefreq>`. [7]
`<lastmod>` kann verwendet werden, wenn es dauerhaft korrekt ist und eine wesentliche Änderung an Inhalt, strukturierten Daten oder Links widerspiegelt. [7]
Sitemap bei Google einreichen
Sitemaps können über Search Console, die Search Console API oder über eine `Sitemap:`-Zeile in robots.txt bekannt gemacht werden. [7][11][12]
Eine Einreichung ist nur ein Hinweis und garantiert weder Download noch Crawling oder Indexierung. [7]
Mehrsprachigkeit und spezielle Sitemaps
Google unterstützt `hreflang`-Beziehungen in XML-Sitemaps. Jede Sprachversion sollte alle Varianten einschließlich sich selbst referenzieren. [10]
Es gibt außerdem Erweiterungen für Bilder, Videos und News. [13][14][15]
Häufige technische SEO-Fehler
Ein schwerer Fehler ist, eine Seite in robots.txt zu blockieren und gleichzeitig zu erwarten, dass Google deren `noindex` liest. [5][16]
Auch widersprüchliche Signale zwischen Sitemap und `rel="canonical"` sollten vermieden werden. [9]
- robots.txt nicht als Ersatz für `noindex` verwenden.
- Keine Weiterleitungen, 404-Seiten oder unnötigen Duplikate in Sitemaps aufnehmen.
- `<lastmod>` nicht bei jedem Deployment künstlich aktualisieren.
- Canonical und Sitemap konsistent halten.
- Subdomains und andere Protokolle separat prüfen.
Deployment-Checkliste
Prüfe reale HTTP-Antworten, nicht nur Dateien im Repository. robots.txt muss als Text erreichbar sein, Sitemaps in einem unterstützten Format. [2][7]
Nach dem Deployment sollte die Sitemap in Search Console geprüft werden. Bei Site-Migrationen können Sitemaps helfen, neue URLs schneller zu entdecken. [11][17]
- Ist `/robots.txt` erreichbar?
- Sind wichtige URLs versehentlich blockiert?
- Sind noindex-Seiten crawlbar?
- Enthält die Sitemap nur bevorzugte absolute URLs?
- Bleibt jede Sitemap unter 50.000 URLs und 50 MB?
- Sind Canonical und Sitemap konsistent?
- Sind hreflang-Beziehungen korrekt?
- Meldet Search Console Fehler?

