--- name: service-worker description: "Use when auditing repeat-visit performance, adding offline support, or evaluating PWA readiness for a web application." metadata: category: performance priority: medium difficulty: intermediate estimatedTime: "60" source: frontendchecklist.io url: https://frontendchecklist.io/en/rules/performance/service-worker --- # Register a service worker for caching and offline support Service workers act as a programmable network proxy between the browser and the network. They eliminate repeated server round-trips for static assets, cut load times on repeat visits by 50–90 %, and allow the app to function at all on flaky or offline networks — which is critical for users on mobile or low-bandwidth connections. ## Quick Reference - Register a service worker in your main JavaScript entry point - Use an install event to pre-cache critical static assets - Choose a caching strategy (cache-first, network-first, stale-while-revalidate) per resource type - Implement an activate event to clean up old caches on update ## Check Check whether a service worker is registered and whether it caches static assets, API responses, or provides an offline fallback. ## Fix Add a service worker registration call and implement appropriate caching strategies for static assets and navigation requests. ## Explain Explain how service workers intercept network requests and how different caching strategies trade off freshness vs. speed. ## Code Review Review the service worker file and its registration. Flag missing install/ activate lifecycle handlers, absent cache-versioning, missing fetch handlers, and any patterns that could cause stale content to be served indefinitely. --- For full implementation details, code examples, and framework-specific guidance, see `references/rule.md`. Rule page: https://frontendchecklist.io/en/rules/performance/service-worker