Zum Inhalt springen
DSGVO-konform. Gehostet in DE.
14 Tage kostenlos testen →
Cache-SchichtenDeploy-KontrolleBildvergleich
Performance 13 Min. Lesezeit 30. Aug. 2026

Cache-Fallen nach dem Deploy: veraltete Seiten finden

Die neue Version ist live, Besucher sehen die alte. Wie Cache-Schichten veraltete Seiten ausliefern und wie Sie nach jedem Deploy prüfen, was wirklich ankommt.

X

XICTRAQ Team

XICTRAQ

PerformanceCachingDeploymentMonitoring
62,2 %
der Desktop-Antworten tragen eine max-age-Angabe (HTTP Archive Web Almanac 2021)
24 h
bis Browser das Service-Worker-Skript spätestens erneut prüfen (W3C Service Workers)
10 %
der Zeit seit der letzten Änderung als heuristische Gültigkeit ohne Header (RFC 9111)
Fünf Cache-Schichten zwischen Deploy und BesucherWelche Schicht welche Version ausliefert, wenn Version 42 live geht (Gültigkeiten nach RFC 9111 und web.dev)Cache-Schicht auf dem Weg zum Besucherausgeliefert nach dem DeployGültigkeit und wer sie räumt1Browser-Cachehält Dateien lokal, bis max-age abläuftVersion 41 (alt)max-ageräumt nur der Besucher2Service Workerbeantwortet Anfragen aus eigenem SpeicherVersion 41 (alt)Aktivierungwartet, bis alle Tabs zu sind3CDN-Knotenjeder Standort hält eine eigene KopieVersion 41 (alt)s-maxageräumt eine Purge-Anfrage4Reverse Proxyliefert vorgerenderte Seiten ausVersion 42 (neu)Neustarträumt der Betrieb beim Deploy5Anwendungs-Cachehält Fragmente und Abfragen vorVersion 42 (neu)Invalidierungräumt der AnwendungscodePrüfpunkt nach dem Deploy: enthält jede Schicht wirklich Version 42?echter Browser statt reinem Abruf, mehrere Standorte, Alarm bei fehlender Versionsangabe3,5 %der Antworten nutzen immutable (Web Almanac)max-age steht auf 62,2 % der Desktop-Antworten, immutable auf 3,5 % - ein Deploy muss jede Schicht einzeln erreichen (Web Almanac)
Der Deploy ist durch, die Auslieferung meldet Erfolg, der Ursprungsserver antwortet mit der neuen Fassung. Trotzdem meldet sich am Nachmittag ein Kunde: Der alte Preis stehe noch auf der Seite, das neue Angebot fehle, und seit Tagen habe sich nichts verändert. Cache-Fallen nach dem Deploy zählen zu den unangenehmen Fehlerbildern im Webbetrieb, weil sie sich der üblichen Kontrolle entziehen. Auf dem eigenen Rechner stimmt alles, der Statuscode lautet 200, und ein kurzer Blick auf die Startseite sieht sauber aus. Zwischen Ursprungsserver und Bildschirm des Besuchers liegen aber bis zu fünf Speicherschichten, von denen jede eine eigene Vorstellung davon hat, wie lange eine Antwort gültig bleibt. Dieser Beitrag ordnet die Schichten, zeigt die typischen Stolperstellen von immutable bis Service Worker und beschreibt, wie sich nach jedem Deploy prüfen lässt, welche Version tatsächlich beim Besucher ankommt.

Warum die neue Version live ist und Besucher die alte sehen

Ein Deploy fühlt sich an wie ein Schalter: vorher alt, nachher neu. Technisch beschreibt er aber nur den Zustand des Ursprungsservers. Alles, was zwischen diesem Server und dem Browser liegt, arbeitet nach eigenen Regeln weiter - und diese Regeln sind darauf ausgelegt, eine einmal gespeicherte Antwort möglichst lange wiederzuverwenden. Genau das ist der Zweck eines Caches. In einer Auswertung von Millionen Antworten trugen am Desktop 62,2 Prozent eine max-age-Angabe, 16,5 Prozent no-cache und 9,6 Prozent no-store (HTTP Archive Web Almanac 2021). Die Mehrheit der Antworten im Web sagt also aktiv: Behalte mich eine Weile.

Der entscheidende Punkt steht in der Spezifikation selbst. Der HTTP-Caching-Standard kennt keinen Weg, mit dem ein Server eine bereits gespeicherte Antwort aus einem fremden Cache entfernen könnte (RFC 9111). Vorgesehen ist eine Entwertung nur als Nebenwirkung: Eine erfolgreiche Anfrage mit einer verändernden Methode auf dieselbe Adresse macht die gespeicherte Antwort ungültig (RFC 9111). Ein Deploy ist aber keine solche Anfrage. Er verändert Dateien auf dem Server, nicht den Speicher im Browser eines Besuchers, der die Seite vor zwei Stunden geöffnet hat. Wer einen Deploy als abgeschlossen betrachtet, sobald der Ursprungsserver umgestellt ist, hat die zweite Hälfte der Strecke übersehen.

Ein Cache-Treffer ist kein Fehler - der falsche Cache-Treffer schon

Caching ist eine der wirksamsten Einzelmaßnahmen für kurze Ladezeiten, und dieser Beitrag argumentiert nicht dagegen. Der Leitfaden zum CDN-Einsatz beschreibt die Gegenseite ausführlich. Problematisch wird es erst dort, wo Gültigkeitsdauer und Änderungsrhythmus auseinanderlaufen: Eine Datei, die sich alle zwei Wochen ändert, aber ein Jahr lang als gültig ausgeliefert wird, ist keine Optimierung mehr, sondern eine offene Rechnung. Die Aufgabe besteht darin, jede Schicht bewusst einzustellen - und nach jedem Deploy nachzumessen, ob sie das tut, was auf dem Papier steht.

Die fünf Schichten zwischen Deploy und Besucher

Zwischen dem Moment, in dem die neue Version auf dem Ursprungsserver liegt, und dem Moment, in dem ein Mensch sie sieht, liegen typischerweise fünf Speicherorte. Sie unterscheiden sich nicht nur technisch, sondern vor allem darin, wer sie räumen kann und wie lange sie sich sonst halten. Diese Zuständigkeit ist der eigentliche Kern des Problems: Der Betrieb kann den Reverse Proxy neu starten und im CDN eine Purge-Anfrage auslösen, aber niemand im Unternehmen kann den Speicher eines fremden Geräts anfassen.

SchichtWas sie speichertWer sie räumtTypische Gültigkeit
Browser-CacheDateien und teils HTML auf dem Gerät des Besuchersnur der Besucher selbstbis max-age abläuft
Service Workereine eigene Kopie im Speicher der Websiteder Lebenszyklus des Workersbis die neue Fassung aktiv wird
CDN-KnotenAntworten getrennt je Standorteine Purge-Anfrage oder s-maxageje Knoten unterschiedlich
Reverse Proxyfertig gerenderte Seiten vor der Anwendungder Betrieb beim Deploymeist Minuten bis Stunden
Anwendungs-CacheFragmente, Abfragen, gerenderte Bausteineder Anwendungscodebis zur Invalidierung

Die Tabelle erklärt, warum sich Cache-Fehler so schwer nachstellen lassen. Ein Kollege im Büro sieht die neue Fassung, weil sein CDN-Knoten bereits aktualisiert wurde; eine Kundin in einer anderen Region sieht die alte, weil ihr Knoten noch eine gültige Kopie hält. Beide Beobachtungen sind für sich korrekt. Wer solche Unterschiede systematisch erfassen möchte, braucht Prüfpunkte an mehreren Orten - der Beitrag zum Monitoring von mehreren Standorten aus beschreibt das Vorgehen. Und weil das Räumen der Schichten auf mehrere Personen verteilt ist, gehört die Frage, wer welchen Cache leeren darf, in dieselbe Ordnung wie die übrigen Zugriffsrechte im Monitoring-Team.

Was die Zahlen über Cache-Header im Web sagen

Die Verteilung der Cache-Direktiven im offenen Web zeigt, wie unterschiedlich die Praxis aussieht. Neben max-age mit 62,2 Prozent kamen am Desktop public auf 29,7 Prozent, must-revalidate auf 12,2 Prozent, private auf 9,5 Prozent und immutable auf lediglich 3,5 Prozent der Antworten (HTTP Archive Web Almanac 2021). Auch die Direktiven, die für Deploys besonders nützlich wären, bleiben selten: s-maxage, mit der sich die Gültigkeit im CDN getrennt von der im Browser steuern lässt, stand auf 1,6 Prozent der Antworten, stale-while-revalidate auf 2,3 Prozent (HTTP Archive Web Almanac 2021). Letztere erlaubt es, eine abgelaufene Antwort noch auszuliefern und im Hintergrund zu erneuern (RFC 5861) - hilfreich für die Ladezeit, aber ein zusätzlicher Grund dafür, dass alte Inhalte länger sichtbar bleiben als erwartet.

Der zweite Befund betrifft die Länge der Gültigkeit. In einer Auswertung mobiler Seiten aus dem Jahr 2020 hatten 60,2 Prozent der Ressourcen eine Gültigkeitsdauer, die im Verhältnis zum tatsächlichen Alter des Inhalts zu kurz angesetzt war; der mittlere Abstand zwischen Gültigkeit und Alter lag bei 25 Tagen (HTTP Archive Web Almanac 2020). Zu kurze Gültigkeiten kosten Ladezeit, zu lange kosten Aktualität. Die Gegenrichtung ist ebenfalls belegt: In der Auswertung von 2019 trugen 1,1 Prozent der Antworten max-age=0 ohne no-store (HTTP Archive Web Almanac) - sie dürfen gespeichert werden, aber vor jeder Wiederverwendung erneut geprüft. Und der Vary-Header, der festlegt, welche Merkmale einer Anfrage eine eigene Variante ergeben, stand nur auf 46,25 Prozent der geprüften Anfragen (HTTP Archive Web Almanac 2021). Fehlt er, kann ein gemeinsamer Cache die falsche Sprach- oder Formatvariante an den nächsten Besucher weiterreichen.

Ein Tippfehler in der Direktive fällt lautlos aus

In der Auswertung von 2019 fanden sich über 1.500 fehlerhafte Cache-Direktiven auf 0,28 Prozent der Antworten, darunter Schreibweisen wie nocache oder maxage (HTTP Archive Web Almanac 2019). Unbekannte Direktiven werden nach dem Standard schlicht ignoriert (RFC 9111). Die Antwort verhält sich dann so, als stünde gar keine Angabe darin - und der Cache darf eine eigene Schätzung anstellen. Der Standard nennt als verbreitetes Verfahren, 10 Prozent der Zeitspanne seit der letzten Änderung als Gültigkeit anzusetzen (RFC 9111). Bei einer Datei, deren letzte Änderung 300 Tage zurückliegt, sind das rund 30 Tage stillschweigende Gültigkeit.

immutable: der Dateiname ist die eigentliche Invalidierung

Für versionierte Dateien - also solche, deren Name einen Fingerabdruck des Inhalts enthält - gilt die verbreitete Empfehlung, sie ein Jahr lang gültig zu halten und zusätzlich als unveränderlich zu kennzeichnen: Cache-Control: max-age=31536000, immutable. Für HTML dagegen wird no-cache empfohlen, damit der Browser vor jeder Wiederverwendung nachfragt (web.dev). Diese Trennung ist sinnvoll und weit verbreitet. Sie hat aber eine Bedingung, die im Alltag gern verloren geht: Sie trägt nur, solange sich der Dateiname bei jeder inhaltlichen Änderung tatsächlich ändert.

Was immutable bedeutet, steht ausdrücklich in der zugehörigen Spezifikation: Die Antwort wird sich während ihrer Gültigkeitsdauer nicht ändern, und der Client soll auch dann keine bedingte Anfrage stellen, wenn die Nutzerin die Seite neu lädt (RFC 8246). Genau das ist der Zweck der Direktive - und genau deshalb ist sie die unversöhnlichste Schicht im Stapel. Wird eine Datei unter demselben Namen mit neuem Inhalt ausgeliefert, hilft weder gewöhnliches noch hartes Neuladen. Die alte Fassung bleibt bis zum Ablauf der Gültigkeit auf dem Gerät, im ungünstigen Fall ein Jahr lang.

Dieselbe Logik gilt außerhalb des Browsers. Der Rendering-Dienst der Google-Suche hält Ressourcen in einem eigenen Speicher und richtet sich dabei nicht nach den üblichen Cache-Headern; die Dokumentation empfiehlt deshalb ausdrücklich, Dateinamen mit einem Inhalts-Fingerabdruck zu versehen (Google Search Central). Eine veraltete Skript- oder Stildatei kann dort also weiterwirken, lange nachdem sie im Browser ersetzt wurde. Wie folgenreich ein einzelner falsch ausgelieferter Bestandteil für die Sichtbarkeit werden kann, zeigt der Beitrag zu einem versehentlich mitgelieferten noindex im Deploy.

Neuer Inhalt braucht einen neuen Namen

Die Entwertung einer als unveränderlich gekennzeichneten Datei läuft nicht über Header, sondern über den Dateinamen. Solange der Bauprozess bei jeder Änderung einen neuen Fingerabdruck erzeugt und das HTML auf den neuen Namen zeigt, ist die lange Gültigkeit unproblematisch. Sobald ein Bestandteil an dieser Kette vorbeiläuft - eine handgepflegte Datei, ein nachträglich ersetztes Bild, ein Skript aus einem anderen Bauschritt -, wird aus der Optimierung eine unsichtbare Altlast. Diese Kette gehört deshalb im Bauprozess geprüft und nach dem Deploy von außen nachgemessen.

Der Service Worker, der eine tote Datei behält

Ein Service Worker ist ein Skript, das der Browser zwischen Seite und Netz stellt. Er beantwortet Anfragen aus einem eigenen Speicher und ist damit die einzige Schicht, die dem Netz vollständig ausweichen kann. Lange war das ein Randthema; in einer Erhebung von 2025 stieg der Anteil der Websites mit Service Worker jedoch auf 19,2 Prozent, bei den 10.000 meistbesuchten Domains auf 29,4 Prozent am Desktop und 27,5 Prozent mobil (HTTP Archive Web Almanac 2025). Ein erheblicher Teil dieses Zuwachses geht auf Skripte zurück, die über Tag-Verwaltungen mitgeliefert werden - also auf eine Schicht, die im Betrieb häufig gar nicht als Cache wahrgenommen wird.

Entscheidend für Deploys ist der Lebenszyklus. Findet der Browser eine geänderte Service-Worker-Datei, installiert er sie, lässt sie danach aber warten, bis keine Seite mehr vom bisherigen Worker gesteuert wird (W3C Service Workers). Ein einziger offener Tab genügt, damit die alte Fassung weiterläuft. Die Anweisung, diesen Wartezustand zu überspringen, ist inzwischen weit verbreitet: In einer Auswertung von 2025 setzten sie 68 Prozent der Desktop-Seiten mit Service Worker und 63 Prozent der mobilen ein (HTTP Archive Web Almanac). Verlassen kann sich der Betrieb darauf im Einzelfall trotzdem nicht - fehlt die Anweisung, bleibt es beim Warten, bis der letzte Tab geschlossen wird. Immerhin holt der Browser die Worker-Datei beim nächsten Aufruf am Zwischenspeicher vorbei, sobald die letzte Prüfung mehr als 24 Stunden zurückliegt, weil längere Gültigkeitsangaben für dieses eine Skript nach Spezifikation nicht wirksam werden (W3C Service Workers).

Auch die gewählte Laufzeitstrategie entscheidet mit. In einer Auswertung der am Desktop eingesetzten Laufzeitstrategien entfielen 31,72 Prozent auf den Ansatz, zuerst den Speicher zu befragen, fast gleichauf mit dem netzzuerst-Ansatz mit 31,52 Prozent, gefolgt von der Kombination aus abgelaufener Auslieferung und Nacherneuerung mit 27,03 Prozent (HTTP Archive Web Almanac 2021). Wer zuerst den Speicher befragt, liefert die gespeicherte Antwort aus, ohne das Netz überhaupt zu fragen - für Schriftarten sinnvoll, für Inhalte, die sich mit dem Deploy ändern, riskant.

Die wartende Fassung

Der neue Worker steht bereit, übernimmt aber erst, wenn alle Tabs mit der alten Fassung geschlossen sind (W3C Service Workers). Bei Besuchern, die die Seite wie eine Anwendung dauerhaft offen halten, kann das Tage dauern. In der Kontrolle fällt es nicht auf, weil ein frisches Prüffenster jedes Mal die neue Fassung erhält.

Zuerst der Speicher, dann das Netz

Wird die Strategie, zuerst den Speicher zu befragen, auf HTML oder auf Dateien ohne Fingerabdruck angewandt, gewinnt die gespeicherte Kopie gegen jede Änderung am Server. Die Seite lädt schnell und zeigt den Stand vom letzten Besuch - ein Fehlerbild, das sich mit einem reinen Abruf ohne Browser nicht nachstellen lässt.

Das Verzeichnis zeigt auf gelöschte Dateien

Viele Worker legen beim Installieren eine Liste der vorzuhaltenden Dateien an. Zeigt diese Liste nach einem Deploy auf Dateinamen, die es nicht mehr gibt, schlägt die Installation fehl oder die Seite lädt Bausteine nach, die verschwunden sind. Sichtbares Ergebnis ist häufig eine weiße Seite bei formal korrektem Statuscode.

Der Rückfall auf altes HTML

Ein Navigations-Rückfall liefert bei ausbleibender Netzantwort eine gespeicherte Hülle aus. Ist diese Hülle älter als der Deploy, verweist sie auf Skripte einer früheren Version. Solche Fälle zeigen sich erst, wenn eine Prüfung die Seite mit einem echten Browser öffnet und den sichtbaren Stand mit der Erwartung vergleicht.

HTML mit langer Gültigkeit: veraltete Preise und Rechtstexte

HTML ist der Einstiegspunkt. Es entscheidet, auf welche Dateinamen verwiesen wird, welche Preise sichtbar sind und welcher Rechtstext gilt. In der Auswertung von 2021 galten 23,4 Prozent der HTML-Antworten als nicht zwischenspeicherbar (HTTP Archive Web Almanac) - der weitaus größere Teil landet also im Speicher. Wo HTML mit einer Gültigkeit von einem Tag ausgeliefert wird, sieht ein wiederkehrender Besucher bis zu 24 Stunden nach dem Deploy die alte Seite, ohne dass ein einziger Fehler protokolliert würde. Die empfohlene Einstellung für Adressen ohne Fingerabdruck lautet deshalb no-cache: gespeichert werden darf, wiederverwendet erst nach Rückfrage (web.dev). Bei einem Relaunch verschärft sich das, weil viele Adressen gleichzeitig wechseln - den Ablauf ordnet der Beitrag zur Überwachung einer Website-Migration ein.

Wirtschaftlich und rechtlich sind veraltete Seiten mehr als ein Schönheitsfehler. Die Preisangabenverordnung verlangt, dass der Gesamtpreis richtig und vollständig angegeben wird (PAngV); ein alter Preis aus dem Cache ist eine unrichtige Angabe über den Preis und damit als irreführende geschäftliche Handlung angreifbar (UWG). Ebenso müssen die Informationen zur Datenverarbeitung dem tatsächlichen Stand entsprechen (Art. 13 DSGVO) - eine Datenschutzerklärung, die seit dem letzten Deploy überholt ist, aber weiter aus dem Cache ausgeliefert wird, erfüllt diese Pflicht nur auf dem Papier. Dasselbe gilt für Angaben im Impressum, für Widerrufsbelehrungen und für Versandkosten.

Preise und Rechtstexte gehören auf die kurze Gültigkeit

Seiten mit Preisen, Verfügbarkeiten, Fristen oder Rechtstexten sollten nicht mit langen Gültigkeitsdauern ausgeliefert werden, auch nicht im CDN. Wenn die Ladezeit eine Zwischenspeicherung erfordert, ist eine kurze s-maxage-Angabe plus gezielte Purge-Anfrage nach dem Deploy der belastbarere Weg als eine pauschal lange max-age-Angabe für den Browser: Was im CDN liegt, lässt sich räumen, was auf fremden Geräten liegt, in der Regel nicht (RFC 9111). Prüfen Sie nach jeder Auslieferung stichprobenartig genau die Seiten, auf denen Zahlen und Fristen stehen.

Cache leeren ist nicht Cache umgehen

Bei der Fehlersuche werden zwei Dinge gern verwechselt. Einen Cache zu leeren heißt, gespeicherte Antworten zu verwerfen, sodass die nächste Anfrage neu beantwortet wird. Einen Cache zu umgehen heißt, für die eigene Prüfung an ihm vorbeizugehen, ohne seinen Inhalt anzutasten. Für die Diagnose ist der Unterschied entscheidend: Wer leert, zerstört den Beweis. Nach einem harten Neuladen sieht die Seite korrekt aus - die Frage, was der nächste Besucher bekommt, ist damit aber nicht beantwortet, sondern nur unbeantwortbar geworden.

PrüfwegWas er umgehtWas er nicht erreichtWofür er taugt
Seite neu ladenabgelaufene Einträge werden neu geholtgültige Einträge, Service Worker, CDNein erster Blick, sonst wenig
Hartes Neuladenden Browser-Cache dieses TabsAntworten mit immutable, CDN-Knoten, Anwendungs-Cachelokale Eingrenzung
Privates FensterProfil, Anmeldung und Service WorkerCDN und Reverse ProxyTrennung von lokalem Zustand
Speicher der Website löschenBrowser-Cache und Service-Worker-Speicheralles jenseits des eigenen Gerätsdas Fehlerbild einkreisen
Abruf ohne Browserdie Schichten auf dem eigenen Gerätdie Sicht echter Besucher samt SkriptenDiagnose der Header
Prüfpunkte an mehreren Standortendie Sicht eines einzelnen CDN-Knotensden Speicher im Gerät des Besucherslaufende Kontrolle nach jedem Deploy

Für die Diagnose lohnt der Blick auf zwei Angaben in der Antwort. Der Age-Header schätzt die Zeit in Sekunden, die seit der Erzeugung oder letzten Bestätigung der Antwort am Ursprungsserver vergangen ist (RFC 9111); ein Wert nahe der eingestellten Gültigkeit deutet auf einen Knoten hin, der kurz vor der Erneuerung steht. Und viele Zwischenschichten setzen einen eigenen Statushinweis, aus dem hervorgeht, ob die Antwort aus dem Speicher kam. Beides zusammen trennt zuverlässiger zwischen einem hängenden CDN-Knoten und einem falsch gebauten Artefakt als jedes wiederholte Neuladen. Ergänzend gehört geprüft, ob die Seite überhaupt den erwarteten Statuscode meldet - eine als Fehlerseite ausgelieferte Antwort mit Status 200 ist ein eigenes Fehlerbild, das der Beitrag zu Soft 404 und falschen Statuscodes beschreibt.

Nach jedem Deploy prüfen: ein Vorgehen in sieben Schritten

Aus den beschriebenen Fehlerbildern lässt sich ein Ablauf ableiten, der ohne großen Aufwand nach jeder Auslieferung greift. Er setzt an einer einfachen Idee an: Die Seite soll selbst sagen, welche Version sie ist. Alles Weitere ist der Abgleich dieser Aussage über alle Schichten und Standorte hinweg.

  1. Versionsangabe ausliefern: Schreiben Sie die Bau-Kennung in das HTML - als Meta-Angabe im Kopf oder als eigenen Antwort-Header. Erst damit wird aus der weichen Frage, ob die Seite richtig aussieht, die überprüfbare Frage, ob die Seite Version 42 enthält.
  2. Mit echtem Browser prüfen: Ein reiner Abruf holt das HTML und beurteilt Header, führt aber keine Skripte aus und kennt keinen Service Worker. Erst eine Prüfung im echten Browser zeigt, was Besucher tatsächlich sehen - das gilt für Cache-Stände ebenso wie für die im Browser-Monitoring hinterlegten Klickstrecken.
  3. Von mehreren Standorten aus prüfen: Ein CDN hält je Knoten eine eigene Kopie. Eine einzelne Prüfstelle beantwortet deshalb nur, wie es an genau diesem Ort aussieht. Mehrere Standorte machen den Unterschied zwischen einem flächendeckenden Fehler und einem einzelnen hängenden Knoten sichtbar.
  4. Darstellung vergleichen: Ein Bildvergleich vor und nach dem Deploy zeigt Abweichungen, die kein Statuscode meldet - fehlende Stile, alte Preise, verschwundene Bereiche. Das Verfahren beschreibt der Beitrag zum Erkennen von Änderungen per Bildvergleich.
  5. Antwortzeit im Blick behalten: Fällt ein Cache aus oder wird er nach dem Deploy vollständig geräumt, schlägt jede Anfrage bis zum Ursprungsserver durch. Die Antwortzeit steigt dann sprunghaft, oft bevor Besucher etwas melden - die Zusammenhänge beschreibt der Beitrag zur Server-Antwortzeit.
  6. Service-Worker-Pfad gesondert prüfen: Kontrollieren Sie, ob die Worker-Datei den erwarteten Stand hat und ob das Verzeichnis der vorgehaltenen Dateien auf existierende Namen zeigt. Beides lässt sich als eigener Prüfpunkt einrichten und nach jedem Deploy wiederholen.
  7. Alarm auf die fehlende Versionsangabe legen: Enthält eine Seite die erwartete Kennung nicht mehr, liegt entweder ein alter Cache-Stand oder ein unvollständiger Deploy vor. Beides ist ein Fall für die Benachrichtigungswege des Teams, nicht für einen Zufallsfund im Kundengespräch.

Dieses Vorgehen greift in andere Prüfungen ein, die ohnehin nach einem Deploy anstehen. Wer die Kampagnenparameter mitprüft, erkennt früh, wenn eine zwischengespeicherte Seite den Verweis auf die neue Zielseite verloren hat - die Grundlagen dazu stehen im Beitrag zur sauberen Auszeichnung von Kampagnen. Und bei mehrsprachigen Auftritten kann ein Cache-Knoten eine Sprachvariante an der falschen Adresse festhalten, was die im Beitrag zu hreflang-Fehlern beschriebenen Signale durcheinanderbringt.

Cache-Fallen dauerhaft sichtbar machen

Cache-Fehler sind unangenehm, weil sie sich nicht wie Fehler verhalten. Es gibt keinen Ausfall, keinen roten Statuscode und keinen Eintrag im Fehlerprotokoll. Es gibt nur eine Seite, die etwas anderes zeigt als beabsichtigt - und die Wahrscheinlichkeit, dass jemand das meldet, hängt davon ab, wie sichtbar die betroffene Stelle ist. Ein falscher Preis fällt schnell auf, ein überholter Rechtstext in der Fußzeile über Monate hinweg häufig nicht.

Deshalb lohnt es sich, die Kontrolle an den Deploy zu koppeln statt an den Zufall. XICTRAQ ruft Ihre Seiten mit einem echten Browser ab, führt die Skripte aus und sieht damit dieselbe Fassung wie ein Besucher. Die Abrufe erfolgen von mehreren Standorten, sodass ein einzelner hängender CDN-Knoten auffällt, statt unterzugehen. Der Screenshot-Changelog hält fest, wie die Seite vor und nach der Auslieferung aussah, und der Bildvergleich zeigt Abweichungen, für die es keinen Statuscode gibt. Bleibt die erwartete Versionsangabe aus, meldet die Überwachung von Erreichbarkeit und Inhalt das als Abweichung - unabhängig davon, ob der Ursprungsserver längst umgestellt ist.

Aus den Ergebnissen entsteht ein Verlauf, der sich in Berichten und Statusseiten festhalten lässt - hilfreich für Agenturen, die den Zustand mehrerer Kundenauftritte nach einer Auslieferungsrunde belegen möchten. Sehen Sie sich die Prüfung in der Produktdemonstration an oder richten Sie den ersten Prüfpunkt im kostenlosen Zugang ein und lassen Sie den nächsten Deploy von außen bestätigen, statt ihn nur zu vermuten.

Quellen und Studien

Dieser Artikel basiert auf Daten von HTTP Archive Web Almanac, RFC 9111, W3C Service Workers und web.dev. Die genannten Zahlen beziehen sich auf den Stand der jeweiligen Veröffentlichung. Ergänzend herangezogen wurden RFC 8246 zur Direktive immutable, RFC 5861 zu stale-while-revalidate, die Dokumentation von Google Search Central zum Zwischenspeichern von Ressourcen sowie die Vorgaben aus PAngV, UWG und DSGVO. Die Angaben ersetzen keine Rechts- oder Steuerberatung.

Warum sehen Besucher nach einem Deploy noch die alte Seite?
Weil zwischen Ursprungsserver und Bildschirm typischerweise mehrere Speicherschichten liegen: Browser-Cache, Service Worker, CDN-Knoten, Reverse Proxy und ein Cache in der Anwendung selbst. Jede hält eine Antwort so lange, wie ihre Gültigkeitsangabe es erlaubt. Der HTTP-Caching-Standard sieht keinen Weg vor, mit dem ein Server eine gespeicherte Antwort aus einem fremden Cache entfernt (RFC 9111). Ein Deploy erreicht deshalb zunächst nur den Ursprungsserver; alle weiteren Schichten aktualisieren sich nach eigenem Rhythmus.
Warum hilft hartes Neuladen bei manchen Dateien nicht?
Antworten mit der Direktive immutable sagen dem Client ausdrücklich, dass er auch beim Neuladen keine bedingte Anfrage stellen soll (RFC 8246). Die Direktive ist für versionierte Dateien gedacht, deren Name sich bei jeder Änderung mitändert. Wird sie auf Dateien angewandt, deren Name gleich bleibt, bleibt die alte Fassung bis zum Ablauf der Gültigkeit auf dem Gerät. In der Praxis kam immutable auf 3,5 Prozent der Antworten vor (HTTP Archive Web Almanac 2021).
Wie lange kann ein Service Worker eine alte Version ausliefern?
Ein neu installierter Service Worker wartet, bis keine Seite mehr vom bisherigen Worker gesteuert wird (W3C Service Workers). Bleibt ein Tab dauerhaft geöffnet, kann dieser Zustand lange anhalten. Die Worker-Datei selbst holt der Browser beim nächsten Aufruf am Zwischenspeicher vorbei, sobald die letzte Prüfung mehr als 24 Stunden zurückliegt, weil längere Gültigkeitsangaben für dieses Skript nach Spezifikation nicht wirksam werden (W3C Service Workers). Erfahrungsgemäß löst sich der Zustand häufig erst, wenn Besucher sämtliche Tabs der Website schließen.
Welche Gültigkeit ist für HTML sinnvoll?
Für Adressen ohne Fingerabdruck im Namen - also für gewöhnliches HTML - wird no-cache empfohlen: Die Antwort darf gespeichert, vor der Wiederverwendung aber erst nach Rückfrage ausgeliefert werden (web.dev). Für versionierte Dateien gilt umgekehrt eine lange Gültigkeit plus immutable (RFC 8246). Seiten mit Preisen, Fristen oder Rechtstexten sollten in der Regel kurz gültig sein, damit ein Deploy sie zeitnah erreicht.
Wie prüfe ich, ob wirklich die neue Version ausgeliefert wird?
Am belastbarsten ist eine Versionsangabe in der Seite selbst, etwa die Bau-Kennung als Meta-Angabe oder als Antwort-Header. Ein automatischer Prüfpunkt öffnet die Seite anschließend mit einem echten Browser von mehreren Standorten aus und meldet, wenn die erwartete Kennung fehlt. Zusätzlich hilft ein Bildvergleich gegen den Stand vor dem Deploy, weil er Abweichungen zeigt, die kein Statuscode meldet. Hilfreich ist außerdem der Age-Header, der auf einen alten Stand in einem gemeinsamen Cache hindeutet (RFC 9111).
Ist ein veralteter Preis im Cache ein rechtliches Risiko?
Er kann eines sein. Die Preisangabenverordnung verlangt eine richtige und vollständige Angabe des Gesamtpreises (PAngV), und unrichtige Angaben über den Preis sind als irreführende geschäftliche Handlung angreifbar (UWG). Ähnliches gilt für überholte Pflichtinformationen zur Datenverarbeitung (Art. 13 DSGVO). Eine kurze Gültigkeit für preisführende Seiten und eine Stichprobe nach jedem Deploy senken dieses Risiko erfahrungsgemäß deutlich. Dieser Hinweis ersetzt keine Rechtsberatung.

Passend in XICTRAQ

In 60 Sekunden starten

Lassen Sie XICTRAQ Ihre Website bewachen.

Dauerhaft kostenloser Plan verfügbar. Keine Kreditkarte, keine Installation, keine versteckten Kosten.