- Works offline
- Supports push notifications
- Can be installed to the device
Learn more in the Service workers and the Cache Storage API post.
All major browsers except Internet Explorer support service workers. See Browser compatibility.
How the Lighthouse service worker audit fails
Lighthouse flags pages that don't register a service worker:
Lighthouse checks if the Chrome Remote Debugging Protocol returns a service worker version. If it doesn't, the audit fails.
In the Lighthouse report UI the full PWA badge is given when you pass all of the audits in all of the PWA subcategories (Fast and reliable, Installable, and PWA optimized).
How to register a service worker
Workbox is the recommended approach for adding
service workers to websites because it automates a lot of
boilerplate, makes it easier to follow best practices, and
prevents subtle bugs that are common when using the low-level
ServiceWorker API directly.
Registering a service worker involves only a few lines of code, but the only reason you'd use a service worker is to make it possible to implement one of the PWA features outlined above. Actually implementing those features requires more work:
- To learn how to cache files for offline use, see the What is network reliability and how do you measure it? post.
- To learn how to make your app installable, see the Make it installable codelab.
- To learn how to enable push notifications, see Google's Adding Push Notifications to a Web App.
- Source code for Does not register a service worker that controls page and
- Service Workers: an Introduction
- Service workers and the Cache Storage API
- What is network reliability and how do you measure it?
- Make it installable
- Adding Push Notifications to a Web App