More guides

Setup guide · WordPress

Turn a WordPress site into an installable PWA (2026)

Add PWA install to any WordPress theme — manifest via functions.php, service worker plugin, and a one-line install popup.

By InstantPWA engineering·Web platform engineers, shipping PWAs since 2019·Last updated July 7, 2026

Key takeaways

  • Upload manifest.webmanifest and sw.js to the WordPress root (SFTP or file manager).
  • Add the manifest link via functions.php or an Insert Headers plugin.
  • Install analytics beat WordPress plugin dashboards — use InstantPWA to see real numbers.

Before you start

  • WordPress 5.5+
  • HTTPS origin
  • File-manager access or SFTP

manifest.webmanifest

{
  "name": "Your product",
  "short_name": "Product",
  "start_url": "/",
  "display": "standalone",
  "background_color": "#ffffff",
  "theme_color": "#111827",
  "icons": [
    { "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" },
    { "src": "/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any maskable" }
  ]
}

Step-by-step for WordPress

  1. Step 1
    Upload manifest and sw.js

    Place both files at /wp-content/../ (the site root).

  2. Step 2
    Link the manifest

    Add to your theme functions.php (or use Insert Headers and Footers).

    add_action('wp_head', function () {
      echo '<link rel="manifest" href="/manifest.webmanifest">';
      echo '<meta name="theme-color" content="#111827">';
    });
  3. Step 3
    Add the install popup

    Paste the InstantPWA snippet into your header — no plugin needed.

Minimal sw.js

// public/sw.js
self.addEventListener('install', (e) => self.skipWaiting());
self.addEventListener('activate', (e) => self.clients.claim());
self.addEventListener('fetch', () => {});

Common WordPress gotchas

  • Caching plugins (WP Rocket, W3 Total Cache) can serve stale manifests. Purge cache after any change.
  • Some WordPress hosts strip the `.webmanifest` MIME type. Test with `curl -I` — you should see `application/manifest+json`.

FAQ

Do I need a native app if my WordPress site is a PWA?

No. Once your WordPress site meets the three PWA criteria (HTTPS, a manifest, a service worker), Chromium browsers offer to install it and iOS Safari 16.4+ supports the full standalone experience — including web push.

Will a service worker slow my WordPress site down?

Not measurably on first load. The worker installs asynchronously after the page becomes interactive. On repeat visits it typically improves LCP and TTFB because assets are served from cache.

Can I still deploy my WordPress site to Vercel, Netlify or Cloudflare?

Yes. Any static or edge host works — the manifest and service worker are plain files served from the origin. No build-time integration is required.

Skip the setup — drop in one line

InstantPWA handles the install prompt across iOS, Android and desktop. Free forever for one popup.

Get started free