PWA Icons and Web Manifest

A complete guide to PWA icon setup with manifest entries, favicon alignment, and cross-device validation.

Amit Yadav
Amit Yadav

PWA installation quality depends heavily on icon configuration. If manifest icons are missing or malformed, install prompts can degrade or fail to display clean branding.

This guide covers a production-friendly setup for most modern web apps.

Manifest essentials

A minimal manifest should include valid icon entries:

{
  "name": "All SVG Icons",
  "short_name": "SVG Icons",
  "start_url": "/",
  "display": "standalone",
  "background_color": "#ffffff",
  "theme_color": "#0f172a",
  "icons": [
    {
      "src": "/favicon-192x192.png",
      "sizes": "192x192",
      "type": "image/png"
    },
    {
      "src": "/favicon-512x512.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ]
}

Keep favicon and manifest aligned

Developers sometimes treat favicon files and manifest files as separate tracks. They should be one system:

  • tab/browser identity via favicon files
  • install identity via manifest icons

Use one source mark and consistent style choices to avoid brand drift.

  • favicon.ico
  • favicon.svg
  • favicon-16x16.png
  • favicon-32x32.png
  • apple-touch-icon.png
  • favicon-192x192.png
  • favicon-512x512.png
  • site.webmanifest

Implementation workflow

  1. Generate files with Favicon Generator
  2. Add <link rel="manifest" href="/site.webmanifest">
  3. Add icon links in page head
  4. Validate manifest in browser devtools
  5. Re-test install prompt after deploy

Common manifest mistakes

  • Wrong sizes field
  • Non-square source images
  • Missing high-resolution icon
  • Icon file paths that return 404
  • Stale cached manifest after file updates
Debug order

Check network responses first (status code + content-type), then validate manifest JSON structure, then re-test install behavior.

Practical FAQ

Yes. Manifest icons and favicon tags serve overlapping but different browser behaviors. Keep both.

If you provide maskable icons for Android contexts, include `purpose` where applicable. Use standard icons as baseline and add maskable variants if needed.

Manifest and icon assets can be cached aggressively. Update file names or cache strategy and re-test installation flow.

Final checklist

  • Manifest URL is reachable
  • Icon file paths return 200
  • MIME types are correct
  • Theme and background colors are set
  • Install prompt shows expected icon

Final recommendation

Think of manifest icons and favicon assets as one deployable package. When they are generated, versioned, and validated together, install and browser identity stay consistent.

Post-deploy maintenance

Whenever brand colors or icons change, update manifest icons and favicon assets together, then verify install prompts on at least one Android and one desktop browser path.

Final note

If manifest and favicon assets are versioned together, install and browser identity quality stays stable release after release.

Additional source references: 1 2 3.

Sources

Footnotes

  1. MDN: Web app manifest

  2. MDN: Manifest icons reference

  3. web.dev: Add a web app manifest

Share this post