Skip to main content
Almost every Progressify problem traces back to one of three things: the site is not on HTTPS, the service worker did not register, or a cache is serving something old. Check those first.

Start here

1

Confirm HTTPS

The address bar must show https:// with a valid certificate. Without it browsers refuse to register a service worker, and every feature on this page stops working.
2

Check the service worker

Open developer tools, go to Application > Service Workers, and confirm one is registered and shows as activated. If nothing is listed, that is your problem.
3

Check the manifest

In the same panel, go to Manifest. It shows the values the browser actually read and flags anything invalid, including icons that failed to load.
4

Read the scorecard

Progressify > Overview lists what is missing. With Pro it itemizes each failing check.

Common problems

In order of likelihood: the app is already installed, the visitor dismissed a prompt within the timeout window, the site is not on HTTPS, the manifest lacks a name or a large enough icon, the visitor is on iOS where prompts do not exist, or you filled in Related Applications and the browser is promoting a native app instead.
Check that /wp-content/uploads/progressify/scripts/serviceworker.js exists and that the uploads directory is writable. Saving the settings screen regenerates it. If you use the progressify_serviceworker filter, a JavaScript syntax error in your addition will stop the whole file registering, and the console will say so.Security plugins and CDNs sometimes block or rewrite the service worker request. Load https://example.com/?progressify_serviceworker=1 directly; you should get JavaScript, not HTML and not a 403.
A caching strategy is serving the cached copy. Unregister the service worker in Application > Service Workers, then reload. If editors keep hitting this, switch the caching strategy to Network-First and lower the cache expiration time.Remember there may be several caches involved: the service worker, a page cache plugin, and a CDN. Clear them from the outside in.
Confirm the subscriber list on Progressify > Overview is not empty, then see why sends fail. On iOS, Web Push only reaches apps added to the home screen on iOS 16.4 or later.
The display mode is not standalone, or the app was added through Safari’s Add to Home Screen on an older iOS version. Reinstalling after correcting the display mode fixes it.
Check platform support first; if it is narrowed, components will not load on the platform you are testing. Then check whether the component is Pro and your license is active. Some components are mobile-only by design, including the navigation tab bar.
Smooth page transitions intercept navigation, which conflicts with themes and plugins that do their own. Turn on compatibility mode in app capabilities, and turn the feature off if that does not resolve it.
Browsers exempt localhost from the HTTPS requirement, so a PWA can appear to work on a local site that would fail on a real domain. Test on a staging site with a real certificate.

Testing properly

A stale service worker will make you chase problems that are already fixed.
  • Test in a private window or a fresh browser profile, so no earlier registration or dismissal is in play.
  • Use Application > Storage > Clear site data between attempts.
  • Android install prompts behave differently in the Chrome that ships with the device than in a desktop emulator. Test on a real phone before concluding something is broken.

Conflicts worth knowing about

Still stuck

What to include when you contact support.