web validator

Web App Manifest SEO Validator & PWA Install QA

Validate manifest.json locally for PWA installability, mobile install metadata, app names, start_url, display mode, theme colors, and icon entries before launch.

Results

Paste input and validate locally.
Status
Ready when you validate.
Details
Ready when you validate.
Icons
Ready when you validate.
start_url
Ready when you validate.
display
Ready when you validate.

How to use this validator

  1. Open the manifest.json response from the deployed app, browser Network panel, source repo, or build artifact.
  2. Paste the full JSON into the validator and run the check.
  3. Fix missing name/short_name, start_url, display, icon src/sizes, or stale generated manifest output in your app config.
  4. Review theme_color, background_color, icon sizes, maskable icons, and start_url routing as follow-up mobile install QA.
  5. Re-run the validator, then verify installability in Chrome DevTools, Lighthouse, and target browsers/devices.

Rules & checks

Requires name or short_name so install surfaces have a visible app label.

Requires a non-empty start_url so installed app shortcuts know where to open.

Allows display values of fullscreen, standalone, minimal-ui, or browser; other values are flagged.

Requires at least one icon entry, and every icon entry must include src and sizes.

Calls out theme_color, background_color, 192x192 icons, 512x512 icons, and maskable-icon considerations as follow-up install-surface QA even when the structural check passes.

Parses the pasted content as JSON; comments, trailing commas, and malformed JSON are rejected before manifest checks run.

Inputs explained

  • Manifest JSON from deployed app

    Paste the contents of your manifest.json from production, a Vercel preview, browser Network panel, build artifact, static export, or CMS/PWA plugin output. Include name or short_name, start_url, display, theme/background colors, and icons with src/sizes when available so the validator reflects the actual install metadata browsers receive.

When to use it

  • QA a PWA manifest before requesting browser installability tests, Lighthouse review, or app-like mobile install checks.
  • Validate manifest.json generated by Next.js, Astro, WordPress, Shopify, Webflow, or a CMS/PWA plugin.
  • Check staging manifests before deploying icon, display, theme color, background color, scope, or launch URL changes to production.
  • Review client bug reports where an app installs with the wrong name, blank icon, poor splash color, or browser-style window.
  • Pair manifest QA with favicon, Open Graph, JSON-LD logo, viewport, service worker, and mobile rendering checks during launch.
  • Paste a manifest from a HAR/API debugging session after checking network logs with the HAR validator.

Common errors

  • Missing both name and short_name, leaving installed-app labels blank or unreliable.
  • Missing start_url after a framework or CMS manifest generator strips defaults.
  • Using unsupported display values such as installed, app, pwa, or fullscreen-app.
  • Icon objects that include src but omit sizes, or a manifest with no icons array at all.
  • Missing 192x192 or 512x512 install icons, maskable icon purpose, theme_color, or background_color even though the minimum structure passes.
  • Manifest start_url, scope, or icon paths that work locally but break under a base path, CDN rewrite, static export, or auth-protected preview.
  • JSON syntax issues such as trailing commas, comments, single quotes, or copied JavaScript objects instead of JSON.

Limitations

  • Structure validation only; it does not fetch icon files, verify image dimensions, or confirm MIME types.
  • Does not verify that the manifest is linked from your HTML, served with the correct content type, or reachable from production.
  • Does not validate service worker registration, offline behavior, maskable icon safe areas, screenshots, shortcuts, scope routing, categories, or related_applications deeply.
  • Does not guarantee Chrome, Safari, Edge, Android, iOS, or app-store installability; browser-specific requirements still apply.
  • A manifest can pass while production still fails if icon URLs 404, the manifest URL redirects, service workers are missing, or mobile browsers cache older metadata.

Tips

  • Include at least 192x192 and 512x512 PNG icons for common install surfaces, even though this validator only checks src/sizes presence.
  • Use standalone when you want an app-like window without browser chrome; use browser when you explicitly want a normal tab experience.
  • Keep short_name concise enough for home-screen labels while using name for the fuller app title.
  • Prefer root-relative start_url and icon paths when the manifest is served from the same origin as the app, and verify them under the production base path.
  • Keep manifest icons visually aligned with favicon, apple-touch-icon, Open Graph image, and JSON-LD logo references.
  • After this structural check passes, use browser DevTools to confirm the linked manifest URL, service worker, icon fetches, theme colors, display mode, and install prompt behavior.

Examples

Installable PWA manifest basics

  • { "name": "Invoice Runner", "short_name": "Invoices", "start_url": "/dashboard", "display": "standalone", "theme_color": "#111827", "background_color": "#ffffff", "icons": [{ "src": "/icons/icon-192.png", "sizes": "192x192", "type": "image/png" }, { "src": "/icons/icon-512.png", "sizes": "512x512", "type": "image/png" }] }
  • Returns valid because the manifest has an app label, launch URL, supported display mode, and icon entries with src/sizes.

Missing icon sizes

  • { "name": "App", "start_url": "/", "display": "standalone", "icons": [{ "src": "/icon.png" }] }
  • Flags icons with src and sizes because every icon entry needs both fields for this structural check.

Unsupported display mode

  • { "name": "App", "start_url": "/", "display": "installed", "icons": [{ "src": "/icon-192.png", "sizes": "192x192" }] }
  • Flags display because installed is not one of fullscreen, standalone, minimal-ui, or browser.

Deep dive

A web app manifest is the install-metadata layer that tells browsers how a site should appear when saved or installed: app name, short name, launch URL, display mode, theme colors, and icons.

Use this manifest validator after favicon QA to catch structural PWA metadata mistakes before Lighthouse, Chrome DevTools, or mobile devices evaluate the live install surface.

Paste deployed manifest JSON from a framework, CMS, static export, or PWA plugin to catch stale generated values, missing icon metadata, unsupported display modes, and launch URLs that drift from production routing.

Because it runs in your browser, you can paste unpublished app names, local paths, staging URLs, and client manifest content while keeping the data on your device.

FAQs

Is my manifest uploaded?
No. The manifest JSON is parsed and checked in your browser only. It is not sent, logged, stored, or shared.
Does this prove my PWA is installable?
No. It confirms basic manifest structure, but installability also depends on how the manifest is linked and served, browser requirements, icons that actually load, service worker behavior, and browser-specific rules.
Which fields does this manifest validator check?
It checks that name or short_name exists, start_url is present, display is one of fullscreen, standalone, minimal-ui, or browser, and icon entries include src and sizes.
Does it fetch or inspect icon images?
No. It counts and checks icon metadata only. Use browser DevTools or Lighthouse to verify that icon URLs load and have the expected dimensions, maskable safe areas, and MIME types.
Should manifest icons match my favicon and social assets?
They should feel like the same brand system. Keep manifest icons, favicon, apple-touch-icon, Open Graph image, and JSON-LD logo visually aligned while using sizes appropriate for each surface.
Why test the deployed manifest instead of source config?
Frameworks, CMS plugins, static exports, redirects, and deployment rewrites can change the final manifest response. Browser install prompts use the deployed JSON, not your source component.

Related validators

Manifest validation runs entirely in your browser. Pasted manifest.json content, app names, staging URLs, launch paths, theme colors, and icon paths are not uploaded, logged, stored, or sent to a server.

This is a local structural manifest.json check, not a complete browser installability audit. Verify linked manifests, icon fetches, service workers, mobile cache behavior, and browser-specific PWA requirements separately.