GuideMay 5, 2026·5 min read

The Offline Fallbacks You Should Have Set Up Before the Next Outage Hits

Setup offline fallbacks now to keep your service running when the internet fails. Practical steps to prepare before outages happen.

Most websites treat outages like natural disasters—something that happens to other people. Then their CDN goes down, their DNS fails, or their ISP has a routing issue, and suddenly they're offline with no backup plan. The difference between a 5-minute hiccup and a 5-hour disaster often comes down to whether you prepared fallbacks before things broke. This isn't about building redundancy across multiple data centers (though that helps). It's about the specific, tactical steps you can take now to stay operational when connectivity fails.

Static HTML Fallbacks Beat Dynamic Rendering Every Time

If your site requires a database or API call to render anything, you're vulnerable. Generate and cache static HTML versions of your critical pages—homepage, status page, pricing, contact info—and serve them when your origin is unreachable. This works because static file serving is bulletproof; it requires almost no infrastructure. Most modern frameworks support static site generation. Next.js has `next export`, Hugo is built for this, and even Rails can pre-render pages. The non-obvious part: store these static files on your CDN with extremely aggressive caching headers, not just on your origin. Cloudflare, Fastly, and similar services will serve cached content even when your origin is completely offline—but only if you've explicitly configured them to do so. Set your Cache-Control headers to `public, max-age=3600` at minimum, and configure your CDN's cache behavior to serve stale content on origin errors.

DNS Failover Requires Multiple Authoritative Nameservers in Different Networks

A single DNS provider outage can take you offline just as hard as a web server failure. You need authoritative nameservers with different providers, hosted in geographically separated networks. This means registering with Route53, Cloudflare, and Google Cloud DNS simultaneously, then pointing your domain registrar to all three. Most people skip this because it seems complex, but it's actually straightforward: update your NS records at your registrar to include nameservers from multiple providers. Test it with `dig @ns1.cloudflare.com yourdomain.com`. The hard part people miss: your nameservers themselves need to be resilient. If you're running your own DNS, you're already losing. Use managed DNS from providers with proven uptime records. Cloudflare's DNS infrastructure sits on 200+ data centers; that's what you're paying for.

Keep a Read-Only Database Replica in a Different Cloud Provider

Database outages are common and often silent—your app can connect but queries timeout or return errors. Maintain a read-only replica in a different cloud provider (AWS to Google Cloud, for example) and configure your application to failover to it when the primary database becomes unresponsive. This requires synchronous or near-synchronous replication, which most managed database services support. AWS RDS can replicate to Google Cloud, Azure can replicate cross-region. The catch: your application needs to actually detect failure and switch over. Most apps don't. Implement a health check that probes your primary database every 10 seconds with a simple query (`SELECT 1`), and if it fails twice in a row, redirect all reads to the replica. Keep writes disabled on the replica until you manually intervene. This setup prevents silent degradation where your app appears up but is actually serving stale data.

Document Your Outage Runbook Before You Need It

When you're offline, you can't rely on wiki pages, Slack, or email. Write a physical or printed runbook with: (1) how to detect different types of failures, (2) manual steps to failover to backup systems, (3) contact numbers for key providers, (4) how to communicate status updates without your website. Store this in a shared document that's accessible offline—a Google Doc works if someone has it downloaded, a printed copy is more reliable. Include specific commands your team needs to run, not conceptual descriptions. Instead of "check if database is responsive," write the exact SSH command and expected output. Test your runbook quarterly by simulating an outage. You'll find missing steps and outdated information immediately. The team that has practiced failover takes 15 minutes to recover; the team that's improvising takes 2 hours.

Set Up Monitoring That Works When Your Infrastructure Doesn't

Your monitoring system is often hosted on the same infrastructure it monitors. If your cloud provider goes down, your monitoring goes down with it. Use an external, independent monitoring service—Pingdom, UptimeRobot, or Statuspage—that pings your website from multiple geographic locations and sends alerts via SMS, not just Slack. These services are cheap ($10-50/month) and provide critical redundancy. Configure alerts to go to personal phone numbers, not just team channels. When your site is down, you need to know within 60 seconds, not when someone checks Slack. Test your alerting: actually take your site offline and verify you receive notifications. Most teams discover their alerting is broken only during a real outage. Pair this with a status page (Statuspage.io, Atlassian's offering, or self-hosted) that you can update manually via a simple form or API when your main infrastructure is down. This keeps users informed and reduces support load during recovery.

Check if a website is down right now

Free real-time server check — results in seconds. No sign-up required.

Or set up automated uptime monitoring →
Check a website
← Older
Why ChatGPT Goes Down So Often (And When It's Coming Back)
The Offline Fallbacks You Should Have Set Up Before the Next Outage Hits — WebsiteDown Blog | WebsiteDown