Skip to main content

Confirm

Are you sure?

Mobile · Checked once per domain

Web App Manifest (manifest.json)What it checks and how to fix it

What it checks

Looks for a link rel="manifest" on the homepage, fetches the file and parses it. A missing link, a manifest that does not answer 200, or one that is not valid JSON fails; a manifest without name or icons is a warning; a valid manifest with both passes.

Why it matters

The web app manifest tells browsers how to present the site when it is installed or added to a home screen: its name, icons, colors and start URL. Without it, Android and desktop Chrome will not offer installation, and the saved shortcut uses a generic name and icon. It is also a prerequisite for a progressive web app.

How to fix it

Create a manifest and link it from every page:

<link rel="manifest" href="/manifest.webmanifest">
{
  "name": "Acme Analytics",
  "short_name": "Acme",
  "start_url": "/",
  "display": "standalone",
  "background_color": "#ffffff",
  "theme_color": "#2563eb",
  "icons": [
    { "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" },
    { "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" }
  ]
}

Serve it with the right content type. nginx:

types { application/manifest+json webmanifest; }

Rails 7.2+ ships a manifest at app/views/pwa/manifest.json.erb; uncomment the pwa#manifest route in config/routes.rb and the <link rel="manifest"> tag in the layout.

Monitor this automatically

Full Stack Audit runs this check and 126 others on your site on a schedule, and emails you when one that passed starts failing.

More Mobile checks