Progressive Web Apps for Nashville Businesses

On this page

A progressive web app is a set of web capabilities you layer onto the site you already have, and you choose how far up that ladder to climb. The lower rungs, HTTPS, a web app manifest and a service worker, are small additions. The upper rungs, full offline operation, background sync and push notifications, take real engineering and pay off only for specific uses.

For a Franklin dental practice or an East Nashville restaurant, the useful question is which rungs solve a problem its customers have.

What makes a site installable

Google’s web.dev guide lists what Chrome requires before it offers its own install promotion (What does it take to be installable?):

  • the app is not already installed;
  • the visitor has clicked or tapped the page at least once and spent at least 30 seconds viewing it;
  • the site is served over HTTPS;
  • a web app manifest that includes short_name or name, icons including a 192px and a 512px icon, a start_url, and a display value of fullscreen, standalone, minimal-ui or window-controls-overlay;
  • prefer_related_applications absent or set to false.

The guide adds that other browsers have similar criteria “though there may be minor differences.” A service worker is not on Chrome’s list. It is a separate layer, and it is where the performance and reliability gains come from.

What the service worker adds

MDN describes service workers as acting “as proxy servers that sit between web applications, the browser, and the network (when available),” intended among other things to enable offline experiences and intercept network requests (Service Worker API).

In practice, a service worker can answer a returning visitor’s requests for your stylesheets, scripts and images from a local cache instead of the network. A first-time visitor on a good connection sees no difference. The gains show up on repeat visits and weak connections.

Who benefits

The answer depends on how customers use your site.

  • Repeat visitors. A restaurant whose regulars check the menu every week, or a service business whose customers return to an account page, gets faster repeat visits from cached files.
  • Weak connections. A customer checking your hours from a packed venue or a parking garage may have a poor signal. A site that can still show its core content from cache is more usable in that moment.
  • Home-screen access. Installation puts a tap-to-open icon on the customer’s device. For a business customers return to, that can be convenient; treat it as an extra, not the reason to build.

If your site is a brochure that each customer visits once, the offline and install features solve problems your visitors do not have, and a service worker cache helps only on a second visit. Speed work for that site belongs in the page itself.

Basic, advanced or native

Option Relative effort What you get Who it fits
Basic PWA layer Small: manifest, icons, a service worker caching static files Faster repeat visits, some offline resilience, installable Local businesses with repeat customers
Advanced PWA features Real engineering Full offline use, background sync, push notifications Field service with offline data entry, a publisher with a real push audience
Native apps Largest: two codebases, two app store reviews Deep device integration, app store presence Needs the web cannot meet

On WordPress, a maintained PWA plugin can add the manifest and a service worker for static files; test it on a staging copy before it goes live. A native iOS and Android pair means funding two codebases, two review processes and platform updates, while a PWA reuses the website you already maintain. Native is worth it when you need device hardware access, app store distribution as a business requirement, or features the web platform cannot reach.

Install prompts differ by browser

The beforeinstallprompt event, which lets a site show its own install button, is marked on MDN as supported in Chrome and Edge and not in Firefox or Safari; MDN says the feature “is not Baseline because it does not work in some of the most widely-used browsers” (Window: beforeinstallprompt event). On iPhones, MDN’s installation guide says that “On iOS 16.4 and later, PWAs can be installed from the Share menu in Safari, Chrome, Edge, Firefox, and Orion” (Making PWAs installable). If you add an install button, plan a short instruction for iPhone users instead.

SEO guardrails

A PWA is still a website to Google. Installability and push notifications are features for users, not ranking signals; what Google’s documentation recommends is good page performance, and a service worker can help repeat visits, which your own field data will show. Google’s JavaScript documentation names the risks that apply.

Keep content in the HTML. Google’s JavaScript SEO guide says “server-side or pre-rendering is still a great idea because it makes your website faster for users and crawlers, and not all bots can run JavaScript” (Understand JavaScript SEO basics). A PWA built as a single-page app that fills an empty shell with JavaScript puts its content behind rendering.

Give each view a real URL. The same guide says that for single-page apps with client-side routing you should “use the History API to implement routing between different views.” Google’s troubleshooting page adds that you “can’t rely on URL fragments to work with Googlebot” (Fix Search-related JavaScript problems).

Do not depend on stored state. The troubleshooting page says Google’s renderer “does not retain state across page loads”: local storage, session storage and cookies are cleared. Content that appears only for a returning browser will not appear for Google.

Version your files. Google says “Googlebot caches aggressively in order to reduce network requests and resource usage” and may ignore caching headers, which can leave it using outdated JavaScript or CSS. Its fix is content fingerprinting: a hash of the file’s content in its file name, so a changed file gets a new URL.

Serve fresh HTML to visitors. For your own visitors, cache static files aggressively but fetch HTML from the network first, with the cache as a fallback. A cache-first rule for HTML can keep showing a returning customer yesterday’s hours or prices after you have updated them.

Sources

Leave a comment

Your email address will not be published. Required fields are marked *