WebTools

307 Useful Tools & Utilities to make life easier.

PWA Compatibility Checker

Audit your website for Progressive Web App features.

What makes a PWA?

Security

HTTPS: A secure connection is required for Service Workers and installability.

Manifest

Web App Manifest: A JSON file that tells the browser how your app should behave when installed.

Capabilities

Service Worker: JavaScript that runs in the background for offline support and push notifications.

Mobile

Mobile Meta Tags: Essential tags that control scaling and appearance on mobile devices.

Overview of the PWA Compatibility Check Tool

Progressive Web Apps (PWAs) represent the perfect synergy between modern web technologies and native application experiences. They allow standard websites to offer native-like capabilities, such as offline browsing, push notifications, and home screen installation, across various devices. However, transforming a regular website into a fully functional PWA requires meeting strict technical prerequisites set by modern browsers. The PWA Compatibility Check tool is designed to instantly audit any web page and determine if it meets these critical progressive web app standards.

Under the hood, the tool operates by establishing a connection to the provided URL, simulating a standard browser request while handling any necessary redirects. Once the raw HTML response and server headers are retrieved, the tool runs a lightweight, robust static analysis against the document structure. It parses the DOM and scans for specific tags, attributes, and script patterns that are mandatory for PWA certification.

The audit process focuses on six primary pillars of PWA compatibility, assigning points to each successful validation to calculate an overall readiness score out of 100%:

  • HTTPS Encryption (20 points): PWAs must be served over a secure connection to ensure data integrity and user privacy. The tool verifies that the provided URL uses the https:// protocol.
  • Web App Manifest (25 points): A manifest.json file dictates how the app appears when installed (icons, display mode, orientation). The auditor searches the HTML for a valid <link rel="manifest"> declaration.
  • Service Worker Registration (25 points): Service workers are the backbone of PWAs, enabling offline capabilities and background sync. The tool checks for inline JavaScript snippets initiating serviceWorker.register() or similar standard initialization sequences.
  • Viewport Tag (10 points): Mobile responsiveness is non-negotiable. The presence of a <meta name="viewport"> tag is verified to ensure the application scales correctly on smaller screens.
  • Theme Color (10 points): This UI enhancement defines the color of the browser's address bar and system status bar. The tool looks for the <meta name="theme-color"> tag.
  • iOS App Mode (10 points): To ensure seamless compatibility with Apple devices, the tool checks for the <meta name="apple-mobile-web-app-capable"> tag, which allows the site to run in full-screen standalone mode on iOS.

Practical Worked Example

To understand how the tool evaluates a web application, consider a scenario where a developer is testing their newly built e-commerce application, https://shop.example.com. The developer wants to ensure the site is ready to prompt users for home-screen installation.

Input:

URL: https://shop.example.com

Upon submission, the tool fetches the HTML content of the homepage. During the analysis, it discovers the HTTPS protocol, the viewport tag, and the manifest link. However, it notices that the iOS-specific meta tags are missing and the service worker is being registered inside a minified external JS bundle rather than inline HTML.

Output & Score Breakdown:

Score: 65% (Warning Level)

[PASS] HTTPS Encryption (20/20 pts)
Description: Website should be served over a secure connection.

[PASS] Web App Manifest (25/25 pts)
Description: Presence of a manifest.json file defining app behavior.

[FAIL] Service Worker (0/25 pts)
Description: Registration of a service worker for offline capabilities.

[PASS] Viewport Tag (10/10 pts)
Description: Ensures the app scales correctly on mobile devices.

[PASS] Theme Color (10/10 pts)
Description: Defines the toolbar color for a native app feel.

[FAIL] iOS App Mode (0/10 pts)
Description: Compatibility with iOS "Add to Home Screen" feature.

Based on this feedback, the developer immediately knows they need to add the apple-mobile-web-app-capable meta tag to support iPhone users. Additionally, they are alerted that their Service Worker registration script might need to be explicitly placed or verified, as the static scanner couldn't detect it in the root HTML.

Frequently Asked Questions

What exactly is a Progressive Web App (PWA)?
A PWA is a type of application software delivered through the web, built using common web technologies including HTML, CSS, and JavaScript. It is intended to work on any platform that uses a standards-compliant browser. Functionalities like offline availability, background processing, and push notifications make PWAs feel like native mobile applications.
Why is my Service Worker check failing even though I have one running?
The PWA Compatibility Check tool performs a static analysis of the initial HTML response. It specifically looks for common inline registration patterns like navigator.serviceWorker.register('/sw.js'). If your service worker registration logic is bundled deep inside an external JavaScript file (e.g., a React or Vue compiled asset), the static HTML scanner will not execute the JS to find it, resulting in a false negative. If your app works offline, you can safely ignore this specific warning.
Is an HTTPS connection strictly mandatory for a PWA?
Yes. Service workers—the technology that powers offline caching and push notifications—have the power to intercept network requests and modify responses. To prevent malicious man-in-the-middle attacks, all modern web browsers strictly require service workers to be registered and executed only over secure HTTPS connections (with the exception of localhost for local development).
What happens if I don't include the iOS App Mode meta tag?
While modern versions of iOS (Safari) have started adopting standard web app manifests, legacy iOS versions and certain specific web-clip behaviors still heavily rely on the <meta name="apple-mobile-web-app-capable" content="yes"> tag. Without it, when an iPhone user adds your PWA to their home screen, it may launch with standard browser UI elements (like the URL bar and navigation buttons) instead of launching in a clean, standalone, native-app-like full-screen mode.
Can I score 100% and still have a broken PWA?
Yes. This tool verifies the presence of required PWA elements within your HTML document, which is the crucial first step. However, it does not validate the internal contents of your manifest.json file or verify that your service worker script is actually caching assets properly without syntax errors. You should always manually test your PWA's offline capabilities and installation prompts in browser development tools (like Chrome DevTools Lighthouse) to ensure end-to-end functionality.

Contact

Missing something?

Feel free to request missing tools or give some feedback using our contact form.

Contact Us