> [!CAUTION]
> **Caution:** PWA testing in Lighthouse is deprecated. For more information on its deprecation see [Chrome's updated Installability Criteria](https://developer.chrome.com/blog/update-install-criteria). For guidance on testing, refer to the [PWA documentation.](https://developer.chrome.com/docs/devtools/progressive-web-apps)

The [manifest](https://web.dev/articles/add-manifest) for a [Progressive Web App](https://web.dev/articles/what-are-pwas) (PWA) should include a `start_url`,
which indicates the URL to be loaded when the user launches the app.

If the browser doesn't receive an
[HTTP 200 response](https://developer.mozilla.org/docs/Web/HTTP/Status#Successful_responses)
when accessing an app from the `start_url`,
either the `start_url` isn't correct, or the page isn't accessible offline.
This causes problems for users who have installed the app to their devices.

## How the Lighthouse `start_url` audit fails

[Lighthouse](https://developer.chrome.com/docs/lighthouse/overview)
flags web apps whose start URL doesn't respond with a 200 when offline:
![Lighthouse audit showing start URL doesn't respond with 200 when offline](https://developer.chrome.com/static/docs/lighthouse/pwa/offline-start-url/image/lighthouse-audit-showing-f210cbf090156.png)

> [!NOTE]
> **Note:** 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 ensure your page is available offline

> [!TIP]
> **Success:** [Workbox](https://developer.chrome.com/docs/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.

1. If you don't already have one, [add a web app manifest](https://web.dev/articles/add-manifest).
2. Check that the `start_url` in your manifest is correct.
3. Add a service worker to your app.
4. Use the service worker to cache files locally.
5. When offline, use the service worker as a network proxy to return the locally cached version of the file.

See the [Current page does not respond with a 200 when offline](https://developer.chrome.com/docs/lighthouse/pwa/works-offline)
guide for more information.

## Resources

- [What is network reliability and how do you measure it?](https://web.dev/articles/network-connections-unreliable)
- [Add a web app manifest](https://web.dev/articles/add-manifest)
- [Workbox: Your high-level service worker toolkit](https://developer.chrome.com/docs/workbox)