Sitemap-Index: was er ist, seine Grenzen und wie man ihn liest
Ein Sitemap-Index ist eine XML-Datei, die statt Seiten andere Sitemaps auflistet. WordPress, Yoast SEO und Rank Math veröffentlichen alle einen, und große Websites brauchen einen, sobald sie mehr als 50.000 URLs haben. Hier finden Sie sein Format, die Grenzen, die Google und das Protokoll setzen, die häufigsten Fehler und drei Wege, jede Unter-Sitemap zu lesen, auf die er verweist.
Sitemap-Index: Format und Grenzen
Ein Index listet Sitemaps auf, keine Seiten. Suchmaschinen öffnen ihn, dann jede Datei, die er nennt, und erst danach erreichen sie die URLs Ihrer Seiten. Große Websites brauchen einen, weil eine einzelne Sitemap höchstens 50.000 URLs und 50 MB fasst. WordPress, Yoast SEO und Rank Math verwenden auch auf kleinen Websites einen Index, weil sie die URLs nach Inhaltstyp aufteilen. Unser Leitfaden zeigt, wo WordPress seinen Index veröffentlicht.
Das Wurzelelement ist sitemapindex, im selben Namespace wie eine normale Sitemap. Jede aufgeführte Datei erhält einen Eintrag sitemap mit zwei Tags:
loc: die vollständige URL der Unter-Sitemap. Dieses Tag ist Pflicht.lastmod: wann diese Datei zuletzt geändert wurde, im Format W3C Datetime. Dieses Tag ist optional.
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/post-sitemap.xml</loc>
<lastmod>2026-10-28T09:12:00+00:00</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/page-sitemap.xml.gz</loc>
<lastmod>2026-10-02</lastmod>
</sitemap>
</sitemapindex>
In einem Index gibt es kein changefreq und kein priority. Beachten Sie, was lastmod hier bedeutet: sitemaps.org definiert es als den Zeitpunkt, an dem sich die Sitemap-Datei geändert hat, nicht die Seiten darin. Eine Unter-Sitemap kann gzip-komprimiert sein, wie im zweiten Eintrag.
Die Grenzen stammen aus dem Protokoll von sitemaps.org, und Google ergänzt einige:
| Regel | Wert | Quelle |
|---|---|---|
| Sitemaps in einem Index | höchstens 50.000 | sitemaps.org, Google |
| Dateigröße | 50 MB (52.428.800 Bytes) unkomprimiert | sitemaps.org, Google |
| Komprimierung | gzip erlaubt | sitemaps.org |
| Indexdateien pro Website in der Search Console | 500 | |
| Index in einem Index | nicht erlaubt |
Laut Google gilt jede Anforderung an Sitemaps auch für Indexdateien. Die Grenze von 50 MB wird also nach dem Entpacken gemessen.
Regeln zu Verschachtelung und Host
Google akzeptiert keinen Index in einem Index. Die Hilfe zum Sitemaps-Bericht sagt, dass ein Index nur Sitemap-Dateien aufführen kann, und der Bericht zeigt einen Verschachtelungsfehler, wenn er einen solchen Fall findet. Das Protokoll äußert sich dazu nicht, deshalb verschachteln manche Generatoren weiterhin. Machen Sie die Struktur flach: Lassen Sie die oberste Datei direkt auf die Dateien verweisen, die URLs enthalten. Bei mehr als 50.000 Sitemaps verteilen Sie sie auf mehrere Indexdateien und reichen jede davon ein.
Das Protokoll sagt außerdem, dass ein Index nur Sitemaps derselben Website aufführen darf. Google ergänzt zwei Details:
- Unter-Sitemaps müssen im selben Verzeichnis wie der Index liegen oder tiefer in der Hierarchie der Website.
- Die Regel derselben Website entfällt, wenn Sie die websiteübergreifende Einreichung einrichten. Dafür weisen Sie nach, dass Sie jeden Host verwalten.
Ein Index unter https://example.com/sitemap.xml sollte also weder https://cdn.example.net/products.xml noch http://www.example.com/posts.xml aufführen. Beide zählen als andere Hosts. Für eine URL auf einer höheren Ebene oder einer anderen Domain meldet der Bericht „URL nicht zulässig“.
In der Search Console und in der robots.txt einreichen
Geben Sie im Sitemaps-Bericht die URL des Index ein und klicken Sie auf „Senden“. Diese eine Einreichung deckt jede Unter-Sitemap ab. Bei einem Index zählt „Erkannte Seiten“ laut Hilfeseite alle URLs aller Unter-Sitemaps. Sie können auch eine Unter-Sitemap einreichen, wenn Sie für sie eine eigene Zeile und einen eigenen Status möchten, aber nötig ist das nicht.
- Weiterleitungen werden bei der eingereichten URL nicht verfolgt. Reichen Sie die endgültige Adresse ein, die mit dem Status 200 antwortet.
- Der Bericht listet nur Sitemaps auf, die dort oder über die API eingereicht wurden. Eine Datei, die Google in der robots.txt gefunden hat, erscheint also nicht.
Fügen Sie in der robots.txt an beliebiger Stelle eine Zeile mit der vollständigen URL ein:
Sitemap: https://example.com/sitemap_index.xml
Laut Protokoll genügt es bei einem Index, den Speicherort dieser einen Datei anzugeben. Die Zeile gehört zum Protokoll von sitemaps.org und gilt also nicht nur für Google.
Häufige Fehler und ihre Ursachen
Die meisten Probleme kommen von den Unter-Sitemaps, nicht von der Indexdatei.
- Unter-Sitemap auf einem anderen Host. Ein Umzug von
httpzuhttpsoder vonwwwzu einer Adresse ohnewwwlässt alte URLs im Index zurück. Jedeslocmuss das Schema und den Host des Index verwenden. - Relative URL.
<loc>/post-sitemap.xml</loc>ist ungültig. Google meldet eine unvollständige URL. - Unter-Sitemap liefert 404. Ein Plugin wurde deaktiviert, ein Inhaltstyp entfernt, oder ein Cache liefert einen alten Index aus.
- Unter-Sitemap liefert HTML. Eine Anmeldeseite, eine Sicherheitsprüfung oder die 404-Seite des Themes, gesendet mit dem Status 200. Unser Artikel zum Status „Konnte nicht abgerufen werden“ zeigt, wie Sie das mit einem Live-Test erkennen.
- Falsches lastmod-Format.
15/10/2026ist kein W3C Datetime. Schreiben Sie2026-10-15oder2026-10-15T14:30:00+00:00mit Uhrzeit und Zeitzone. Google meldet „Ungültiges Datum“. - Verschachtelter Index. Führen Sie stattdessen die Dateien auf, die er enthält.
So lesen Sie jede Unter-Sitemap
Fünfzig Dateien einzeln zu öffnen dauert lange. Hier sind drei Wege, alle auf einmal zu sehen.
Die Indexdatei mit dem Sitemap-Checker prüfen
Fügen Sie den Index in den kostenlosen Sitemap-Checker ein oder öffnen Sie die .xml- oder .xml.gz-Datei. Er erkennt einen Index und listet jede Unter-Sitemap mit ihrem lastmod in einer Tabelle „Sitemaps“ auf. Er meldet relative URLs und URLs ohne http, ungültige Datumsangaben, Duplikate, Unter-Sitemaps auf mehreren Hosts, url-Einträge oder changefreq und priority in einem Index sowie Dateien mit mehr als 50.000 Einträgen oder 50 MB.
Er prüft nur diese eine Datei. Die Seite verbindet sich nie mit anderen Websites, öffnet die Unter-Sitemaps also nicht und kann nicht erkennen, ob eine davon einen 404 oder HTML liefert. Sein Ergebnis erinnert Sie daran, auch jede aufgeführte Sitemap zu prüfen.
Alle Unter-Sitemaps mit XMLNest laden
Die XMLNest-Erweiterung für Chrome öffnet einen Live-Index in ihrer Leseansicht. Klicken Sie auf „Alle Unter-Sitemaps laden“, und sie ruft die Unter-Sitemaps nacheinander ab, mit einer Fortschrittszeile und einer Schaltfläche „Abbrechen“:
- Abgerufen werden nur Unter-Sitemaps auf derselben Website wie der Index (gleiches Schema, gleicher Host, gleicher Port). Die anderen zeigen „Übersprungen: auf einer anderen Website, nie abgerufen“.
- Bis zu 50 Unter-Sitemaps mit je 50 MB;
.gz-Dateien werden entpackt. - Weiterleitungen werden nicht verfolgt, und ein verschachtelter Index wird übersprungen.
- Jeder Fehlschlag nennt seinen Grund: den HTTP-Status, „nicht wohlgeformt“ oder „keine Sitemap“ mit dem gefundenen Wurzel-Tag. Daran erkennen Sie eine HTML-Seite.

Die URLs aller geladenen Unter-Sitemaps landen in einer Tabelle mit einer Spalte für ihre Quelldatei. Der Tab „Probleme“ wendet die Regeln des Sitemap-Checkers auf jede Datei an und listet URLs auf, die in zwei Unter-Sitemaps vorkommen. Unser Artikel zum Extrahieren von URLs aus einer Sitemap behandelt den Export als CSV und JSON.
Den Index mit Python auflösen
Diese Funktion liest einen Index, folgt jeder Unter-Sitemap auf demselben Host, entpackt gzip und gibt jede Seiten-URL einmal aus. Sie nutzt nur die Standardbibliothek.
import gzip
import sys
import urllib.request
import xml.etree.ElementTree as ET
from urllib.parse import urlsplit
NS = "{http://www.sitemaps.org/schemas/sitemap/0.9}"
def fetch(url):
req = urllib.request.Request(url, headers={"User-Agent": "expand-index/1.0"})
with urllib.request.urlopen(req, timeout=30) as resp:
data = resp.read()
if data[:2] == b"\x1f\x8b": # gzip, unabhängig vom Dateinamen
data = gzip.decompress(data)
return ET.fromstring(data)
def locs(root, entry):
return [el.text.strip() for el in root.findall(f"{NS}{entry}/{NS}loc") if el.text]
def page_urls(index_url):
root = fetch(index_url)
if root.tag == NS + "urlset":
return locs(root, "url")
host = urlsplit(index_url).netloc
pages = []
for child in locs(root, "sitemap"):
if urlsplit(child).netloc != host:
print("skipped, other host:", child, file=sys.stderr)
continue
try:
sub = fetch(child)
except Exception as err:
print("failed:", child, err, file=sys.stderr)
continue
if sub.tag != NS + "urlset":
print("skipped, not a urlset:", child, file=sys.stderr)
continue
found = locs(sub, "url")
print(f"{child}: {len(found)} URLs", file=sys.stderr)
pages.extend(found)
return pages
if __name__ == "__main__":
for url in dict.fromkeys(page_urls(sys.argv[1])):
print(url)
Starten Sie python expand_index.py https://example.com/sitemap.xml > urls.txt. Der Bericht erscheint auf dem Bildschirm, die URLs landen in der Datei. Wir haben das Skript mit einem lokalen Testindex mit fünf Einträgen ausgeführt. Es las zwei Unter-Sitemaps, eine davon gzip-komprimiert, und lieferte deren fünf Seiten-URLs. Einen verschachtelten Index und eine Unter-Sitemap auf einem anderen Host übersprang es, und für eine fehlende Datei meldete es „HTTP Error 404“.
Checkliste vor dem Einreichen
- Das Wurzelelement ist
sitemapindexmit dem Namespace von sitemaps.org, und jeder Eintrag hat ein vollständigesloc. - Höchstens 50.000 Einträge und 50 MB unkomprimiert; kein Index in einem Index.
- Jede Unter-Sitemap liegt auf demselben Host und nutzt dasselbe Schema wie der Index, im selben Verzeichnis oder tiefer.
- Jede Unter-Sitemap antwortet mit 200 und XML, nicht mit einer Weiterleitung, einem 404 oder HTML.
lastmodverwendet W3C Datetime und ändert sich, wenn sich die Datei ändert.- Reichen Sie den Index einmal in der Search Console ein und ergänzen Sie in der robots.txt eine Zeile
Sitemap:.
Fragen
Soll ich den Sitemap-Index oder jede Unter-Sitemap einreichen?
Es genügt, den Index einzureichen: Google liest die Sitemaps, die er aufführt, und die Zahl der erkannten Seiten des Index addiert die URLs aller Unter-Sitemaps. Sie können eine Unter-Sitemap auch einzeln einreichen, wenn Sie ihren Status in einer eigenen Zeile sehen möchten.
Kann ein Sitemap-Index einen anderen Sitemap-Index aufführen?
Nein. Laut Google-Hilfe kann ein Sitemap-Index nur Sitemap-Dateien aufführen, und Google meldet einen Fehler wegen verschachtelter Indexdateien, wenn es einen solchen findet. Wenn Sie mehr als 50.000 Sitemaps haben, verteilen Sie sie auf mehrere Indexdateien und reichen jede davon ein.
Beschreibt das lastmod eines Sitemap-Eintrags die Seiten?
Nein. In einem Sitemap-Index ist lastmod der Zeitpunkt, an dem die Sitemap-Datei selbst geändert wurde. Die Daten der Seiten stehen in den lastmod-Tags der Unter-Sitemaps.
Quellen
- sitemaps.org: Protokoll (geprüft am 29. Oktober 2026)
- Google Search Central: Sitemaps mit Sitemap-Indexdateien verwalten (geprüft am 29. Oktober 2026)
- Google Search Central: Sitemap erstellen und einreichen (geprüft am 29. Oktober 2026)
- Sitemaps mithilfe des Sitemaps-Berichts verwalten - Search Console-Hilfe (geprüft am 29. Oktober 2026)
- Test von XMLNest: das Python-Skript unten, ausgeführt mit Python 3.14.3 an einem lokalen Beispielindex : Index mit 5 Einträgen: 2 Unter-Sitemaps gelesen (eine gzip-komprimiert, insgesamt 5 Seiten-URLs), 1 verschachtelter Index übersprungen, 1 Unter-Sitemap mit der Antwort 404, 1 Unter-Sitemap auf einem anderen Host übersprungen. (geprüft am 29. Oktober 2026)