1. Home
  2. Blog
  3. Progressive Web App (PWA)

Show a Branded Offline Page on WordPress Instead of a Browser Error

Show a Branded Offline Page on WordPress Instead of a Browser Error

A visitor is halfway through a product page on the train. The signal dies. Chrome shows a dinosaur. Safari shows a blank “you are offline” screen that looks nothing like your brand. That is not a PWA failure in the abstract. It is a trust failure. They already installed you (or almost did). Then the network hiccup made you look broken.

Offline for a WordPress site should mean two concrete things: pages they already opened still open, and when something is truly missing they see your offline page, not the browser’s. Progressify ships that with an intelligent service worker, cache rules you set per file type, and a branded offline fallback.

This post is about those offline cache pieces only. Not store bundles, not tab bars, not install prompt timing, not push, not offline form queues. For the PWA baseline in plain English, see What is a Progressive Web App (PWA)?. For checkout and storefront offline strategy, see WordPress PWA offline strategy for checkout. For the app shell after install, see tab bar, transitions, and dark mode.

The problem: browser error pages kill the session

Most WordPress sites have no offline story at all. When the network drops, the browser owns the screen. No logo. No link back to a cached home. No hint that the install still works. People close the tab and blame your site.

Even sites that “have a service worker” often ship a generic cache-everything policy. That creates a different mess: stale HTML, bloated caches, or assets that never update after a theme deploy. Offline is not one switch. It is a product decision about what stays usable when the wire is gone.

Visitors do not need every URL on earth. They need the pages they already read, the CSS and JS that make those pages look right, and a branded landing pad when a request cannot be served.

What Progressify actually ships for offline

Stick to real features. No invented “AI cache” claims.

Intelligent service worker. Progressify’s service worker caches what visitors need before they need it on return visits, so tunnels and patchy Wi-Fi stop ending the session.

Pages already opened stay available. If someone viewed a post, product, or landing page while online, that page can still open with no signal.

Caching strategy per file type. You choose how HTML, stylesheets, scripts, images, and other assets are cached instead of one blunt rule for everything.

Your own branded offline page. When a request cannot be fulfilled from cache, visitors see your offline page (logo, copy, useful links), not the browser’s default error UI.

Background sync on reconnect (light touch here). When the connection returns, Progressify can catch up in the background. Treat that as a companion to cache and the offline page, not the whole story.

Manifest, icons, and splash still matter. Offline behaviour sits on a real PWA baseline: HTTPS, a complete manifest, icons, splash, and a working service worker. Cache rules without that baseline are a half install.

How to set branded offline and cache rules

Treat Offline Settings like a product checklist, not a developer dump.

  1. Confirm the PWA baseline. Name, short name, start URL, display mode, theme colour, icons, splash. Install on a real phone and launch from the home screen once before you tune cache.

  2. Design the branded offline page. Same logo and colours as the live site. Short copy: “You are offline. These pages still work.” Link to cached destinations that matter (home, shop, account, latest posts). Skip a wall of lorem and skip a “retry” button that only reloads the same failed URL with no feedback.

  3. Set cache strategy by file type. HTML usually wants network-first or stale-while-revalidate so content can update. CSS and JS often want cache-first with a sane update path after deploys. Images can be cache-first so return visits feel instant. Do not apply “cache forever” to checkout or account HTML.

  4. Warm the paths people actually use. Browse the key templates while online (home, top posts, category hubs, product templates). Progressify keeps opened pages available; cold deep links with no prior visit will still hit the branded offline page, and that is fine.

  5. Test the drop. Chrome DevTools offline mode is a start. Also toggle airplane mode on a real device after browsing a few pages. Confirm cached pages render with styles, confirm an uncached URL shows your offline page, and confirm reconnect restores normal navigation.

  6. Ship one service worker owner. Deactivate competing PWA plugins before you debug cache. Two workers fighting will look like “Progressify is broken” when it is a stack conflict.

What “usable offline” should mean in practice

For a content site, usable offline means the article they started still opens with CSS and images that already loaded once. For a shop, it means browse and product pages they visited still render, while checkout waits for a connection. For a membership site, it means the lessons or posts they already opened remain readable on the commute home.

The branded offline page is the safety net for everything else: a deep link they never opened, a search results page that was never cached, or a CDN asset that never landed. That page should feel like your site paused, not like the browser crashed.

Pitfalls that turn offline into a liability

  1. Leaving the browser error as the fallback. If Offline Settings still point at a blank or default page, you have not finished. Brand it.

  2. Caching HTML like static images. Aggressive HTML cache shows yesterday’s price, sale, or membership gate. Prefer fresher strategies for documents.

  3. Caching logged-in or cart HTML for everyone. Personalised pages need tighter rules. Pair offline reading with a clear online path for checkout and account changes. The offline strategy for checkout post goes deeper on storefront cases.

  4. Never busting assets after a deploy. Visitors stuck on old CSS think the redesign failed. Plan how scripts and styles refresh when you ship theme changes.

  5. Promising “the whole site works offline.” That is rarely true and rarely needed. Promise: opened pages stay usable, assets load from cache, and dead ends show your brand.

  6. Skipping real-device airplane tests. Emulators miss flaky cellular handoffs that real phones hit on trains and in lifts.

How this fits DaftPlug Pro

Progressify is one of five Pro plugins on a single membership. One licence unlocks Progressify (PWA), Lightify (performance), Generatify (AI), Rankify (SEO and GEO), and Snapshotify (backups). Plans differ by site count only: Pro $37.99/year (1 site), Pro Plus $74.99 (5), Pro Max $138.99 (100). Features are identical across plans. Checkout is Freemius, with a 14-day money-back guarantee. See pricing.

Free Progressify on WordPress.org covers a lot of the PWA baseline. Branded offline plus per-file-type cache rules are why sites that care about return visits on bad networks move to Pro.

Takeaway

When the network drops, the browser should not own the last impression. Set Progressify’s cache rules per file type so opened pages and their assets stay usable, ship a branded offline page for everything else, and keep manifest, icons, and splash solid underneath. Then a dead signal looks like a calm pause on your site, not a crash. Start in Progressify Offline Settings and verify with airplane mode on a real phone.