Website-Pflichtencheckvon Jurono
WebsiteTechnikCodeWartungPerformance

Der Fix ist live – aber nicht bei allen: Service-Worker-Updates richtig prüfen

Warum Service Worker nach Deployments alte Frontend-Versionen ausliefern können und wie sich Update-Lifecycle, Cache-Strategien und Rollouts systematisch prüfen lassen.

Von Jurono
Aktualisiert: 3. September 2026

Ein Fehler wird behoben, das Deployment ist grün und im eigenen Browser sieht alles korrekt aus. Trotzdem melden einzelne Nutzer Stunden oder Tage später noch denselben Fehler. Nach einem „Website-Daten löschen“ funktioniert es plötzlich.

Das ist kein mystischer Browserzustand. Bei Websites mit Service Worker existiert neben HTTP-Cache und CDN eine weitere persistente Schicht, die Requests abfangen und Antworten aus der Cache Storage API liefern kann. Wenn Update-Lifecycle und Cache-Strategie nicht bewusst geplant sind, können unterschiedliche Nutzer real unterschiedliche Frontend-Versionen sehen.

Deployment und Auslieferung sind zwei verschiedene Ereignisse

Ein neues Bundle auf dem Server bedeutet nicht automatisch, dass ein bereits installierter Service Worker sofort ersetzt wird.

Die Service-Worker-Spezifikation kennt pro Registrierung unter anderem einen installierenden, einen wartenden und einen aktiven Worker. Wird eine neue Worker-Version gefunden, kann sie im Hintergrund installiert werden und anschließend im Status „waiting“ verbleiben. Standardmäßig wird sie erst aktiviert, wenn keine Clients mehr die bisherige Version verwenden. Bei langlebigen Tabs kann das überraschend lange dauern.

Das ist Absicht: Der Browser verhindert damit, dass zwei Worker-Versionen gleichzeitig dieselbe Anwendung kontrollieren. Für Anwendungen mit vielen offenen Tabs ist genau dieser Schutz aber etwas, das im Release-Prozess berücksichtigt werden muss.

Drei Cache-Ebenen, die man auseinanderhalten sollte

Bei der Fehlersuche lohnt sich eine klare Trennung:

  1. HTTP- und CDN-Cache: Hier wirken Response-Header wie Cache-Control, Revalidierung und gegebenenfalls ein vorgeschaltetes CDN.
  2. Service-Worker-Update: Der Browser prüft die Worker-Datei auf Änderungen und verwaltet deren Installations- und Aktivierungszustand. Die Registrierung selbst ist persistent, bis sie explizit entfernt wird.
  3. Cache Storage: Der Service Worker kann eigene benannte Caches anlegen und dort HTML, JavaScript, CSS, Bilder oder API-Antworten speichern. Diese Daten verschwinden nicht automatisch nur deshalb, weil ein neues Deployment stattgefunden hat.

Wer lediglich den Server-Cache leert, löst deshalb nicht zwingend ein Problem in der Cache Storage eines bereits registrierten Workers.

Sieben Fragen für einen belastbaren Audit

1. Gibt es überhaupt noch einen Service Worker?

Das klingt banal, ist aber ein häufiger Handover-Fehler. Eine frühere PWA-Version, ein altes Framework-Plugin oder eine längst entfernte Offline-Funktion kann eine Registrierung hinterlassen. Laut W3C bleibt eine Service-Worker-Registrierung persistent, bis sie explizit deregistriert wird.

Prüfen sollte man deshalb nicht nur den aktuellen Quellcode, sondern im Browser die tatsächlich vorhandenen Registrierungen und deren Scope.

2. Welcher Worker ist aktiv, welcher wartet?

Ein sauberer Release-Prozess sollte sichtbar machen können, ob installing, waiting oder active gesetzt ist. Ein wartender Worker ist kein theoretischer Zustand: Er erklärt konkret, warum ein neues Deployment auf dem Server liegt, aber ein bestehender Tab noch die vorherige Version nutzt.

Gerade bei SaaS-Anwendungen lohnt es sich, diesen Zustand in einer reproduzierbaren Teststrecke mit mehreren Tabs zu prüfen.

3. Wie wird ein Update aktiviert?

skipWaiting() kann einen wartenden Worker zur sofortigen Aktivierung auffordern. clients.claim() kann dafür sorgen, dass der neue aktive Worker bestehende Clients übernimmt.

Beides ist nützlich, aber „immer sofort übernehmen“ ist nicht automatisch die richtige Strategie. Wenn eine bereits geladene Seite noch alten JavaScript-Code ausführt, während ein neuer Worker plötzlich andere Assets oder API-Caching-Regeln bedient, kann ein Mischzustand entstehen. Bei Anwendungen mit Formularen oder ungespeicherten Eingaben ist ein kontrollierter Hinweis „Neue Version verfügbar“ plus Reload oft robuster als ein unsichtbarer Wechsel.

4. Sind Cache-Namen und Assets versioniert?

Ein neuer Worker sollte alte Cache-Generationen erkennen und gezielt entfernen können. MDN empfiehlt, alte Cache-Versionen im activate-Ereignis aufzuräumen.

Besonders kritisch wird es, wenn HTML langfristig gecacht wird und darin Dateinamen referenziert werden, die nach einem Deployment nicht mehr vorhanden sind. Dann lädt der Nutzer ein altes Dokument, das neue oder bereits gelöschte Chunks erwartet – ein klassischer Weg zu sporadischen „Chunk load“-Fehlern.

5. Welche Strategie gilt für HTML, Assets und APIs?

„Cache first“ ist für unveränderliche, gehashte Assets etwas völlig anderes als für HTML oder API-Antworten. Chrome beschreibt beispielsweise network first als sinnvolle Strategie für Inhalte, bei denen online die aktuelle Version bevorzugt werden soll und der Cache als Offline-Fallback dient.

Ein Audit sollte daher nicht nur feststellen, dass gecacht wird, sondern was, wie lange und mit welcher Fallback-Logik.

6. Kann die Worker-Datei selbst zuverlässig aktualisiert werden?

Bei der Registrierung gibt es mit updateViaCache eine Einstellung dafür, ob der HTTP-Cache bei Updates des Workers und importierter Worker-Skripte berücksichtigt wird. Der Standardwert ist imports.

Zusätzlich kann ServiceWorkerRegistration.update() aktiv nach einer neuen Version suchen. MDN dokumentiert, dass dabei die Worker-Datei erneut abgerufen und eine neue Version installiert wird, wenn sie sich byteweise unterscheidet.

Das ersetzt keine sinnvolle Cache-Konfiguration, zeigt aber, dass die Update-Kette selbst Teil des Audits sein muss.

7. Wurde ein echter Mehrtab-Release getestet?

Der wertvollste Test ist selten „Seite neu laden und schauen, ob sie geht“.

Ein sinnvoller Release-Test sieht eher so aus: alte Version in zwei Tabs öffnen, neue Version deployen, einen Tab navigieren, Update-Zustand beobachten, den zweiten Tab offenlassen, anschließend Aktivierung und Reload testen. Danach Cache Storage, aktive Worker-Version und geladene Asset-Versionen kontrollieren.

So findet man Lifecycle-Probleme, die ein einzelner frischer Browser niemals zeigen würde.

Typische Red Flags

Hinweise auf Update- oder Cache-Drift sind unter anderem:

  • Support empfiehlt regelmäßig „Hard Reload“ oder „Website-Daten löschen“.
  • Fehler treten nur bei einigen Bestandsnutzern auf, nicht in frischen Inkognito-Sessions.
  • Ein neuer Worker bleibt dauerhaft im Status waiting.
  • Alte Cache-Namen sammeln sich über viele Releases an.
  • HTML wird aggressiv gecacht, während referenzierte JavaScript-Chunks bei Releases ersetzt oder gelöscht werden.
  • skipWaiting() und clients.claim() wurden aus einem Boilerplate übernommen, ohne das Versionsverhalten der Anwendung zu testen.
  • Eine PWA-Funktion wurde entfernt, aber die alte Registrierung wird nicht migriert oder deregistriert.
  • Es gibt keine sichtbare Release-Version, mit der Support und Entwicklung feststellen können, welchen Stand ein Nutzer tatsächlich ausführt.

Ein robusteres Deployment-Muster

Für viele Webanwendungen ist ein konservatives Muster leichter zu betreiben: gehashte statische Assets dürfen langfristig gecacht werden; HTML und kritische API-Daten bekommen eine bewusst frische Strategie; Cache-Namen sind versioniert; alte Generationen werden beim Aktivieren bereinigt; ein wartender Worker wird erkannt; und bei einem relevanten Update bekommt der Nutzer eine kontrollierte Möglichkeit zum Reload.

Wer sofort aktiviert, sollte gezielt testen, ob alte Dokumente mit dem neuen Worker kompatibel bleiben. Wer einen Reload verlangt, sollte vorher ungespeicherte Zustände berücksichtigen.

Entscheidend ist nicht die eine universelle Strategie, sondern dass das Verhalten definiert, testbar und im Betrieb beobachtbar ist.

Was Website-Pflichtencheck dabei prüfen würde

Bei einem technischen Website-Check betrachten wir nicht nur Lighthouse-Werte oder sichtbare Frontend-Fehler. Bei Service-Worker-basierten Websites prüfen wir unter anderem Registrierung und Scope, aktive und wartende Worker, Cache-Storage-Inhalte, Versionierung und Cleanup, Caching-Strategien für HTML und Assets, Update-Verhalten über mehrere Tabs sowie die Frage, ob alte Releases nach einem Deployment weiter ausgeliefert werden können.

Wenn Nutzer Fehler melden, die sich intern nicht reproduzieren lassen, lohnt sich diese Ebene besonders. Ein reproduzierbarer Update-Test ist meist hilfreicher als die nächste Runde „Cache einmal leeren“.

Quellen

Jurono Logo

Jurono

Technische Website-Prüfung, Website-Fixes und AI-Code-Rettung für kleine Unternehmen, Praxen, Kanzleien und Gründer:innen in Deutschland.

Holen Sie sich unsere kostenlose Sicherheitscheckliste.

Kostenlose PDF herunterladen

Erstes Signal in 30 Sekunden? Kostenlosen Website-Schnelltest starten.

Website-Hinweise per E-Mail

Alle zwei Wochen eine kurze technische Notiz. Kein Spam, kein Verkaufstalk.

Passende Angebote

Direkt weiterkommen

Basierend auf den Themen dieses Artikels – ohne lange Suche.

Manueller Website-Check

Wenn niemand genau weiß, welche Skripte, Cookie-Signale oder technischen Risiken gerade auf Ihrer Website laufen.

249

Manuelle technische Ersteinschätzung und klare Prioritäten innerhalb von 2 Werktagen.

  • Sie sehen schnell, ob Tracking, Cookies, externe Dienste oder HTTPS auffällig sind
  • Mobile-, Ladezeit- und Technik-Probleme werden verständlich eingeordnet
  • Die wichtigsten Punkte stehen in einer kurzen Prioritätenliste
Passend dazu: Manueller Website-Check

Technischer Website-Audit

Wenn die Website wichtig ist, aber unklar bleibt, welche sichtbaren Pflichtbereiche, technischen Risiken und Fixes wirklich Priorität haben.

549

Prüfung, Bewertung und konkreter Maßnahmenplan innerhalb von 3-5 Werktagen.

  • Alles aus dem manuellen Website-Check, gründlicher bewertet und dokumentiert
  • Konkrete Fundstellen zu Cookie-, Tracking- und externen Dienstsignalen
  • Sichtbare Pflichtbereiche technisch geprüft, ohne Rechtsberatung
Technischer Website-Audit starten

AI-Code Triage

Wenn das Projekt startet, aber niemand weiß, warum es dauernd bricht.

390

Code-Sichtung, Build-/Import-Check und Rettungsplan innerhalb von 2 Werktagen.

  • Repo-Check auf kaputte Imports, fehlende Pakete und Build-Fehler
  • Einschätzung: reparieren, neu strukturieren oder wegwerfen
  • Priorisierte Fix-Liste mit Aufwandsschätzung
Passend dazu: AI-Code Triage

Erst Klarheit, dann entscheiden.

Starten Sie mit einer technischen Prüfung. Wenn nur Kleinigkeiten auffallen, können Sie es dabei belassen, den Bericht weitergeben oder später gezielte Fixes buchen.

Technische Prüfung und Umsetzung, keine Rechtsberatung. Ich prüfe sichtbare Signale, Einbindungen und Auslieferungsprobleme; Rechtstexte und verbindliche juristische Bewertungen bleiben Aufgabe von Anwält:innen oder Datenschutzberatung.

Der Fix ist live – aber nicht bei allen: Service-Worker-Updates richtig prüfen