← Zurück zum Blog

Sitemap-Änderungen automatisch überwachen

Sitemap-Änderungen automatisch überwachen

Um Sitemap-Änderungen zu überwachen, speicherst du die URL-Liste der Sitemap in festem Rhythmus und vergleichst jede Kopie mit der vorherigen. Handeln solltest du bei URLs, die neu auftauchen, bei URLs, die verschwinden, und bei lastmod-Werten, die sich massenhaft verschieben.

Die Sitemap ist die eine Datei, in der ein CMS im Klartext auflistet, welche Seiten es für existent hält. Entfernt eine Migration oder eine Plugin-Änderung einen Bereich, zeigt die Sitemap das noch am selben Tag, während die Rankings Wochen brauchen können, bis sich dort etwas bewegt. Die meisten Teams prüfen sie beim Launch und öffnen sie danach nie wieder.

Einen Sitemap-Diff richtig lesen

Für jede Art von Änderung gibt es eine häufige harmlose Erklärung und einen Fehler, den du ausschließen solltest.

Änderung Oft harmlos, weil Auszuschließen
URLs hinzugefügt Neue Beiträge oder Produkte veröffentlicht wurden Tag-Archive, Filterparameter, Anhangseiten oder Staging-URLs, die neu erzeugt werden
URLs entfernt Inhalte bewusst gelöscht oder zusammengelegt wurden Seiten, die versehentlich depubliziert, auf noindex gesetzt oder bei einer Migration verloren wurden
lastmod bei einigen URLs geändert Diese Seiten bearbeitet wurden Meist nichts
lastmod bei allen URLs geändert Selten eine echte Bearbeitung Ein Deploy oder Cache-Rebuild, der die Timestamps überschreibt

Entfernte URLs verdienen die meiste Aufmerksamkeit. Google behält eine Seite noch eine Zeit lang im Index, nachdem sie aus der Sitemap verschwunden ist, der Traffic warnt dich also nicht. Hinzugefügte URLs sind vor allem bei Onlineshops wichtig, wo ein Update, das Attribut- oder Filterseiten aktiviert, über Nacht einen großen Schwung dünner URLs erzeugen kann.

Massenhafte lastmod-Änderungen sind weniger dringend, sollten aber trotzdem behoben werden. Laut Googles Sitemap-Dokumentation nutzt Google lastmod nur, wenn der Wert konsistent und nachprüfbar korrekt ist. Eine Sitemap, die überall das heutige Datum einträgt, bringt Google also bei, das Feld zu ignorieren. Wie du die Datei sauber aufbaust, steht in den Best Practices für XML-Sitemaps.

Ein manueller Diff, den du heute ausführen kannst

Für eine einzelne, flache Sitemap:

curl -s https://example.com/sitemap.xml \
  | grep -o '<loc>[^<]*' | cut -c6- | sort > heute.txt
comm -3 gestern.txt heute.txt

comm -3 gibt in der ersten Spalte die URLs aus, die nur in der gestrigen Datei stehen, und eingerückt in der zweiten Spalte die URLs, die nur in der heutigen stehen. Das lässt sich leichter überfliegen als die Ausgabe von diff.

Die meisten echten Websites liefern stattdessen einen Sitemap-Index. Yoast liefert /sitemap_index.xml, die auf post-sitemap.xml, page-sitemap.xml und ähnliche Dateien verweist. WordPress ohne SEO-Plugin liefert /wp-sitemap.xml. Bei Shopify ist /sitemap.xml ein Index mit Kind-Sitemaps für Produkte, Kollektionen, Seiten und Blogs. Lässt du den Einzeiler auf eine dieser Dateien los, bekommst du eine Liste von Kind-Sitemaps statt Seiten. Eine kurze Schleife behebt das:

curl -s https://example.com/sitemap_index.xml \
  | grep -o '<loc>[^<]*' | cut -c6- \
  | while read child; do
      curl -s "$child" | grep -o '<loc>[^<]*' | cut -c6-
    done | sort -u > heute.txt

Zwei Einschränkungen gibt es. Gezippte Sitemaps (.xml.gz) brauchen gunzip -c in der Pipe, und ein <loc>, das in CDATA steht oder über mehrere Zeilen umbrochen ist, rutscht an grep vorbei. Wenn du das Skript langfristig nutzen willst, ist ein richtiger XML-Parser sicherer. Weißt du nicht, wo die Sitemap einer Website liegt, verrät es meist die Sitemap:-Zeile in ihrer robots.txt.

Wo das Skript nicht mehr reicht

Die erste Schwachstelle ist die Zeitplanung. Ein Cronjob auf dem Laptop stoppt, sobald der Deckel zugeht, und ein Skript pro Kundenseite ist eine weitere Sache, die niemand pflegt.

Die Search Console schließt diese Lücke nicht. Ihr Sitemaps-Bericht zeigt für jede eingereichte Datei den Status („Erfolgreich“, „Hat Fehler“ oder „Konnte nicht abgerufen werden“) und die Zahl der gefundenen Seiten. Welche URLs verschwunden sind, listet er aber nicht auf, und er schickt keine Benachrichtigung, wenn die Zahl sinkt. Filterst du den Bericht zur Seitenindexierung nach einer Sitemap, siehst du den Indexierungsstatus der enthaltenen URLs. Das hilft bei der Diagnose, wenn du schon weißt, dass etwas nicht stimmt.

Die letzte Lücke: Eine URL-Liste sagt nichts über die Seiten dahinter. /pricing/ kann noch in der Sitemap stehen, nachdem derselbe Deploy den Title entfernt oder ein noindex hinzugefügt hat.

Sitemap-Änderungen automatisch überwachen mit Deltio

Deltio prüft die Sitemap jeder Website in einem täglichen Zyklus und vergleicht sie mit der vorherigen Prüfung. Kommen URLs hinzu oder fallen weg, schickt es für diese Website einen Alert per Slack und E-Mail, der die betroffenen URLs auflistet statt nur eine Nettozahl. Im selben Zyklus prüft es die Seiten auf Änderungen bei noindex, Canonical, Title, Meta-Description und H1, sodass eine Sitemap-Änderung und ein Fehler auf Seitenebene aus demselben Release gemeinsam ankommen. Das ergänzt sich mit SEO-Änderungsalarmen und der größeren Aufgabe, Kundenwebsites auf Änderungen zu überwachen.

Ein täglicher Zyklus hat einen blinden Fleck: Eine Sitemap, die kaputtgeht und sich innerhalb weniger Stunden wieder erholt, taucht womöglich nie auf. Für die meisten Websites ist dieser Kompromiss in Ordnung, und am Launch-Tag kannst du das Skript von oben zusätzlich laufen lassen. Mit der 14-tägigen kostenlosen Testphase bekommst du zwei Wochen Diffs für die Kundenseite, um die du dir die meisten Sorgen machst.

Häufige Fragen

Muss ich meine Sitemap bei jeder Änderung neu in der Search Console einreichen?
Nein. Google ruft bekannte Sitemaps nach eigenem Zeitplan erneut ab. Ein erneutes Einreichen im Sitemaps-Bericht kann nach einer großen Änderung einen Abruf anstoßen, nötig ist es aber nicht. Den alten Sitemap-Ping-Endpunkt hat Google 2023 eingestellt, Skripte, die ihn noch aufrufen, bewirken also nichts Sinnvolles.
Sollten Seiten mit noindex in der Sitemap stehen?
Nein. Eine Sitemap sollte kanonische, indexierbare URLs auflisten. Eine URL mit noindex in der Sitemap sendet ein widersprüchliches Signal und erscheint als ausgeschlossen, wenn du den Bericht zur Seitenindexierung nach dieser Sitemap filterst. Steht eine URL absichtlich auf noindex, nimm sie aus der Datei.
Wie oft sollte eine Sitemap geprüft werden?
Täglich passt für die meisten Unternehmenswebsites und Onlineshops. Websites, die mehrmals am Tag veröffentlichen, etwa Nachrichtenportale, erzeugen so viele neue URLs, dass das nützliche Signal in den entfernten URLs steckt. Dort lohnt es sich, zuerst auf diese zu achten.
Kann ich die Sitemap eines Wettbewerbers überwachen?
Sitemaps sind öffentliche Dateien, dasselbe Skript funktioniert also auf jeder Website. Die Datei findest du über die Sitemap-Zeile in der robots.txt der Website. Das ist ein brauchbarer Weg, um zu sehen, wann ein Wettbewerber einen neuen Bereich oder einen Schwung Produktseiten live stellt.
Was kostet Sitemap-Monitoring mit Deltio?
Es ist in jedem Tarif enthalten. Starter kostet 29 € pro Monat oder 24 € pro Monat bei jährlicher Abrechnung, für bis zu 50 Websites und 5.000 URLs. Professional kostet 59 € pro Monat (49 € bei jährlicher Abrechnung) für bis zu 200 Websites, Enterprise 139 € pro Monat (116 € bei jährlicher Abrechnung) für bis zu 500 Websites. Jeden Tarif kannst du 14 Tage kostenlos testen.