Free Tool
PWA Readiness Checker
Check whether a site can be installed as an app: the manifest, the icons, the service worker and the Apple tags. It also reads the service worker and flags caching that can serve users stale data.
Fetches the page, its web app manifest and its service worker script, then scores install readiness against listed rules and reads what the worker caches.
Free, no signup. Live lookup.
Every result has a shareable link.
What Makes A Site A PWA
A progressive web app is a website that can be installed like an app: it gets a home screen icon, opens in its own window without the browser bar, and can keep working when the connection drops. Three pieces make that happen. A web app manifest describes the app: its name, icons, colours and how it opens. A service worker is a script that sits between the app and the network and decides what to serve from cache. And the whole thing must run on HTTPS. This checker tests all three, plus the Apple specific tags that still matter on iPhone.
How The Checker Works
- It fetches the page and looks for
<link rel="manifest">. - It fetches the manifest, parses it as JSON and checks each member against the Web App Manifest specification and what browsers need to offer installation.
- It reads the HTML and inline scripts for
navigator.serviceWorker.register()and the script path and scope it registers. - It fetches that service worker script and reads it for caching patterns: Workbox, precaching, the strategies used (CacheFirst, NetworkFirst, StaleWhileRevalidate), cache names, update behaviour and whether API or JSON responses are cached.
- It checks for
apple-touch-iconand the Apple web app meta tags.
The Readiness Score And Its Rules
Each rule has a fixed weight. A pass earns the full weight, a warning earns half, a fail earns nothing. Weights add up to 100, and a rule that could not be checked is left out.
- Manifest linked and valid JSON: 15. Service worker registered: 15.
- HTTPS: 10. Display mode of standalone, fullscreen or minimal-ui: 10.
- 192 by 192 icon: 8. 512 by 512 icon: 8.
- name or short_name: 5. start_url: 5. Maskable icon: 5.
- Service worker handles fetch: 4.
- theme_color, background_color and id: 3 each.
- scope contains start_url, apple-touch-icon and Apple web app meta: 2 each.
Reading The Service Worker Findings
Caching is where most PWAs go wrong, and it fails quietly. A CacheFirst or StaleWhileRevalidate rule on /api/ or JSON responses means a user can open the app and see yesterday's prices, stock or bookings, with nothing on screen to say so. Static files such as images, fonts and versioned scripts suit cache first. Data suits NetworkFirst with a short timeout, so the cache is only a fallback. The checker also flags a hand written fetch handler that answers every request from cache before the network, which can trap users on an old version.
It notes update behaviour too. Without skipWaiting, a new service worker waits until every tab of the app is closed, which is why some users keep seeing the old version after a deploy.
What To Do Next
- Fix failing manifest rules first. Most take a minute each, and the PWA Manifest Generator can build a complete manifest and icon set.
- Add a maskable icon with the logo inside the central safe zone.
- Set an
idnow, before people install. Changing it later creates a second app. - Review every cached route that returns data.
- Confirm the result in Chrome DevTools, Application panel, which shows manifest errors and the active service worker.
Mistakes To Avoid
- Shipping one icon and letting browsers scale it.
- Caching API responses for speed and forgetting they change.
- Pointing start_url outside the scope, which browsers silently ignore.
- Assuming iPhone installs behave like Android. Test on both.
Limits
Everything here is read from public files, so the check works on any site, including competitors and prospects. The registration check reads page HTML and inline scripts. Apps that register the worker inside a bundled file will show no registration here even when one exists; DevTools is the confirmation. The checker does not download icons to confirm their pixel sizes.
For Agencies
An installable app is a strong upgrade for clients whose customers return often: booking, ordering, field crews and members. Wise Media checks these rules on every web app it ships, and a readiness report like this is a clear way to scope that work.
Fix What This Measured
App Development Agency Course
The App Development Agency Course covers shipping installable web apps for clients: the manifest and icon set, a service worker that caches the right things, update flows, and how to scope and price a PWA against a native build.
Rather Not DIY It?
Let Wise Media Build It.
The tool shows the gap. The studio closes it: brand, site, app and AI, then the ads, email, content and search that turn them into revenue.
Website Development
Custom sites with one job per page, built fast for phones, search and AI answers.
From $3,000CAD one timeSee Website DevelopmentApp Development
Web apps, portals and dashboards on Next.js, Supabase and Stripe, installable on any phone.
From $5,000CAD one timeSee App DevelopmentPaid Advertising
Meta, Google and TikTok campaigns built on the offer and page first, reported as one number.
From $750CAD per monthSee Paid AdvertisingSEO & AI Search
Rank in Google, get named by ChatGPT and Gemini, and convert the visit after the click.
From $350CAD per monthSee SEO & AI SearchBrand Identity
Positioning, logo suite, colour, type and the guide that keeps it consistent.
From $750CAD one timeSee Brand IdentityAI Agents & Automation
Custom AI agents, LLM features and n8n automation connected to the tools you already use.
From $1,000CAD one timeSee AI Agents & AutomationContent Production
Short form video, carousels and AI clone content produced on a weekly calendar.
From $750CAD per monthSee Content ProductionEmail Marketing
Campaigns written and sent, lifecycle flows and SMS, every send tied to revenue.
From $350CAD per monthSee Email MarketingWebsite Care
Updates, daily backups, monitoring, edits and search maintenance handled every month after launch.
From $100CAD per monthSee Website CareCyber Security
Email, accounts, staff devices and company data protected, with the documents your insurer asks for.
From $250CAD per monthSee Cyber SecurityPWA Readiness Checker Questions
Straight answers on using it and acting on the result.
Quick Answer
How Do I Check If My Site Is A PWA?
A site is installable as a PWA when it runs on HTTPS, links a valid web app manifest with a name, start_url, a standalone, fullscreen or minimal-ui display mode and icons at 192 and 512 pixels, and registers a service worker. This checker tests each rule and reads what the worker caches.
- Needs. HTTPS, manifest and service worker
- Icons. 192 and 512 pixels, plus one maskable
- Score. Weighted rules adding to 100
FAQ
Frequently Asked Questions
HTTPS, a linked web app manifest with name or short_name, start_url, a display of standalone, fullscreen or minimal-ui, and icons at 192 and 512 pixels. A registered service worker is what makes it work offline and is expected by most browsers.
An icon marked "purpose": "maskable" with the logo inside a central safe zone, so Android can crop it to a circle, squircle or square without cutting off the logo. Without one, Android shrinks your icon onto a white background.
CacheFirst or StaleWhileRevalidate on API or JSON data can show users old prices, stock or account information with no sign it is out of date. Use NetworkFirst for data, and keep cache first for static files like images and fonts.
This check reads the page HTML and inline scripts. Many frameworks register the worker inside a bundled JavaScript file, which it does not read. Open Chrome DevTools, Application, Service workers to confirm it is active.
Yes. iOS supports adding a web app to the home screen, standalone display and service workers, and web push for installed apps since iOS 16.4. Safari still uses apple-touch-icon and the Apple meta tags for some details, so set them.
It gives the installed app a stable identity. Without it, browsers use start_url, so changing start_url later can make the browser treat it as a different app. Set an id such as "/" before people install.
A new service worker waits until every tab using the old one is closed. Calling skipWaiting and clientsClaim lets it take over immediately, ideally with a prompt asking the user to refresh.
Not strictly, but users expect an installed app to open without a connection. At minimum, cache the app shell and show a useful offline page rather than the browser error.
More Free Tools
Built from the same toolkits Wise Media runs client work on.
App Stack Cost Calculator
The real monthly infrastructure cost of a web app stack.
Use The ToolPWA Manifest Generator
A valid manifest.json plus every icon size you need.
Use The ToolWebsite Health Checker
SSL, security headers, platform, speed and email auth, with a risk score.
Use The ToolEmail Deliverability Checker
SPF, DKIM and DMARC for any domain, explained in plain English.
Use The ToolContrast And Ramp Checker
Every pair in a colour ramp tested at 4.5:1 and 3:1, with a job for each step.
Use The ToolAnswer Block Checker
Does the page answer its question in the first 60 words?
Use The ToolRather Have It
Done For You?
Wise Media builds and runs this for clients. Thirty minutes with Cody: the bottleneck named, the fix scoped, the price on the table.