·12 min read

Why Is a Website Down? How Website Monitoring and Uptime Work

When a website won't load, the first question is always: "Is it down for everyone, or just me?" Understanding why websites go down, how to check their status, and what uptime really means will help you diagnose problems faster — whether you're a visitor or a site owner.

Is It Down for Everyone or Just Me?

When a website doesn't load, it could be a problem on your end (local network, ISP, DNS, browser) or on the server's end (actually down). The difference matters because the fix is completely different:

"Is it down for everyone or just me?"

Scenario A: Down for EVERYONE
  ┌──────────┐     ┌──────────┐     ┌──────────────────┐
  │  You     │────→│ Internet │────→│  Server (DOWN)   │
  └──────────┘     └──────────┘     │  ✗ 503 Error     │
  ┌──────────┐     ┌──────────┐     │  ✗ No Response   │
  │ User B   │────→│ Internet │────→│  ✗ Times Out     │
  └──────────┘     └──────────┘     └──────────────────┘
  → Problem is on the server side. Nothing you can do — wait.

Scenario B: Down for JUST YOU
  ┌──────────┐     ┌──────────┐     ┌──────────────────┐
  │  You     │──✗──│ ISP/DNS  │     │  Server (UP)     │
  └──────────┘     └──────────┘     │  ✓ 200 OK        │
  ┌──────────┐     ┌──────────┐     │  ✓ Responding    │
  │ User B   │────→│ Internet │────→│  ✓ Fast          │
  └──────────┘     └──────────┘     └──────────────────┘
  → Problem is on your side: DNS, ISP, firewall, cache, VPN, etc.

To determine which scenario:
  1. Check from a different network (mobile data vs Wi-Fi)
  2. Use an online "Is It Down" checker
  3. Ask someone else to try loading the site
  4. Check the site's status page (if they have one)

Why Websites Go Down

A website is a chain of systems — if any link breaks, the site goes down. Here's the full stack that must work for a web page to load:

What must work for a website to load:

You type: example.com

Step 1: DNS Resolution                    Failure = "DNS_PROBE_FINISHED"
  → Your DNS resolver → Root servers → TLD servers → Authoritative NS
  → Returns: 93.184.216.34

Step 2: TCP Connection                    Failure = "Connection timed out"
  → 3-way handshake with server on port 443
  → If server is overloaded or down, no connection

Step 3: TLS Handshake                     Failure = "SSL Error"
  → Certificate exchange, key negotiation
  → If cert expired or misconfigured → security warning

Step 4: HTTP Request                      Failure = 4xx/5xx status codes
  → GET / HTTP/1.1 → Host: example.com
  → Server processes request

Step 5: Application Processing            Failure = 500/502/503 errors
  → Web server (Nginx/Apache) → App server (Node/PHP/Python)
  → Database queries, API calls, rendering

Step 6: Response Delivery                 Failure = Partial load, timeouts
  → HTML, CSS, JS, images sent back
  → CDN serves static assets

Any of these steps can fail independently.

HTTP Status Codes — What the Numbers Mean

When a server responds, it sends a status code— a three-digit number that tells you exactly what happened. Understanding these codes is essential for diagnosing why a website isn't working:

Successful Responses (2xx)

CodeNameMeaning
200OKThe site is working — request was successful
301Moved PermanentlyPage has moved to a new URL — browser should redirect
304Not ModifiedCached version is still current — no need to re-download

Client Errors (4xx)

CodeNameMeaning
400Bad RequestThe request was malformed — server can't understand it
401UnauthorizedAuthentication required — you need to log in
403ForbiddenYou don't have permission to access this resource
404Not FoundThe page doesn't exist — wrong URL or page was deleted
408Request TimeoutServer waited too long for the request to complete
429Too Many RequestsRate limited — you're sending requests too fast

Server Errors (5xx) — "The Site Is Down"

CodeNameMeaning
500Internal Server ErrorSomething crashed on the server — a bug, misconfiguration, or unhandled exception
502Bad GatewayThe proxy/load balancer got an invalid response from the upstream server
503Service UnavailableServer is temporarily overloaded or under maintenance
504Gateway TimeoutThe proxy/load balancer didn't get a response in time from the upstream server
521Web Server Is Down (Cloudflare)Origin server refused the connection — common with Cloudflare-proxied sites

5xx vs No Response

A 5xx error means the server is reachablebut can't fulfill the request. A timeout or "connection refused" error means the server isn't reachable at all — it could be completely offline, or a firewall is blocking access. Both mean the site is "down," but the causes are very different.

How Website Monitoring Works

Website monitoring services continuously check whether a website is reachable and functioning correctly. Here's how they work under the hood:

How an uptime monitor works:

Monitoring Server(s) around the world:
  ┌──────────────────────────────────────────────────────┐
  │ Every 30-60 seconds:                                  │
  │                                                       │
  │ 1. Send HTTP(S) request to target URL                 │
  │    → GET https://example.com                          │
  │                                                       │
  │ 2. Check response:                                    │
  │    ✓ Status code 200? → Site is UP                    │
  │    ✗ Status code 5xx? → Site might be DOWN            │
  │    ✗ No response?     → Site is DOWN                  │
  │    ✗ Response > 10s?  → Site is SLOW (degraded)       │
  │                                                       │
  │ 3. Optionally check:                                  │
  │    • Response body contains expected text?             │
  │    • SSL certificate valid?                            │
  │    • Response time within threshold?                   │
  │                                                       │
  │ 4. If DOWN:                                           │
  │    → Confirm from 2-3 other locations (avoid false     │
  │      alarms from regional network issues)             │
  │    → Send alert (email, SMS, Slack, PagerDuty)        │
  │                                                       │
  │ 5. Record timestamp + status + response time          │
  │    → Build uptime history and SLA reports             │
  └──────────────────────────────────────────────────────┘

Multi-location monitoring:
  🇺🇸 New York     → checks example.com → UP (85ms)
  🇬🇧 London       → checks example.com → UP (120ms)
  🇯🇵 Tokyo        → checks example.com → DOWN (timeout)
  🇦🇺 Sydney       → checks example.com → DOWN (timeout)
  → Conclusion: Partial outage (Asia-Pacific routing issue)

Types of Monitoring Checks

Check TypeWhat It TestsBest For
HTTP(S) CheckSends a request and checks status codeWebsites, APIs, web applications
Ping (ICMP)Tests if the server is reachable at network levelServers, infrastructure, network devices
TCP Port CheckTests if a specific port is accepting connectionsDatabases, mail servers, custom services
Keyword CheckVerifies specific text appears in the responseDetecting defacements, wrong content, broken pages
DNS CheckVerifies DNS records resolve correctlyDetecting DNS hijacking, propagation issues

Uptime Math — What "99.9%" Really Means

Uptimeis expressed as a percentage of time a service is available. Those decimal points matter more than you'd think — each additional "9" reduces allowed downtime by 10x:

Uptime %NameDowntime / YearDowntime / MonthDowntime / Week
99%"Two nines"3.65 days7.3 hours1.68 hours
99.9%"Three nines"8.76 hours43.8 minutes10.1 minutes
99.95%"Three and a half"4.38 hours21.9 minutes5.04 minutes
99.99%"Four nines"52.6 minutes4.38 minutes1.01 minutes
99.999%"Five nines"5.26 minutes26.3 seconds6.05 seconds
Uptime calculation:

  Uptime % = (Total Time - Downtime) / Total Time × 100

  Example: Site had 2 hours downtime in a 30-day month
  → Total minutes = 30 × 24 × 60 = 43,200
  → Downtime minutes = 120
  → Uptime = (43,200 - 120) / 43,200 × 100 = 99.72%

SLA (Service Level Agreement):
  Cloud providers guarantee specific uptime levels:
  • AWS EC2:    99.99% (52 min downtime/year)
  • Google Cloud: 99.95% (4.38 hr downtime/year)
  • Azure VMs:  99.95%
  
  If they miss the SLA:
  → You get service credits (typically 10-30% of monthly bill)
  → Not actual money back — credits toward future usage

The "Nines" Trap

A provider guaranteeing 99.9% uptime is allowed 8.76 hours of downtime per year. That might sound fine until it all happens at once — an 8-hour outage during your busiest sales day. Uptime percentages don't tell you when the downtime occurs, which often matters more than how much.

How to Check if a Website Is Down

There are several ways to determine whether a website is actually down:

Methods to check if a site is down:

1. Online "Is It Down" Checkers
   → External servers try to load the site for you
   → Confirms if it's down globally or just for you
   → Our Website Down Checker does exactly this

2. Browser Developer Tools
   → Open DevTools (F12) → Network tab
   → Look at the status code of the main request
   → 200 = OK, 5xx = server error, (failed) = can't connect

3. Command Line
   # Quick HTTP check
   $ curl -Is https://example.com | head -1
   HTTP/2 200   ← Site is UP

   $ curl -Is https://example.com | head -1
   HTTP/2 503   ← Service unavailable (DOWN)

   # Check if server is reachable
   $ ping example.com
   → Responses = server reachable (but web app might still be broken)
   → Timeout = server unreachable

4. Status Pages
   → Many services publish real-time status:
     status.aws.amazon.com
     www.githubstatus.com
     status.cloud.google.com

5. Social Media
   → Search Twitter/X for "[service] down"
   → DownDetector.com for crowd-sourced reports

Common Causes of Downtime

CauseFrequencyDetails
Server overload / traffic spikesVery commonViral content, DDoS attacks, or insufficient server capacity. Server can't handle the number of requests → 503 errors.
Code deployment bugsVery commonA new release introduced a bug → 500 errors, crashes, infinite loops. Most incidents are caused by code changes.
Database failuresCommonDatabase server down, out of connections, corrupted data, slow queries blocking everything.
DNS issuesCommonDNS records misconfigured, nameserver down, expired domain. Site "works" by IP but not by name.
SSL certificate expirationCommonCertificate expired → browsers block access with a security warning. Auto-renewal failure is the usual cause.
Infrastructure / hosting outageOccasionalCloud provider (AWS, GCP, Azure) has a regional outage. Affects thousands of sites at once.
DDoS attackOccasionalDistributed Denial of Service — attacker floods server with fake traffic to overwhelm it.
Domain expirationRare but devastatingDomain registration expired and wasn't renewed → entire site goes offline immediately.
Hardware failureRareDisk failure, power outage, network switch failure. Less common with cloud hosting.

What to Do When a Site Won't Load (Visitor)

Before assuming a site is down, try these steps to rule out problems on your end:

Troubleshooting checklist (as a visitor):

Step 1: Hard refresh the page
  → Ctrl + Shift + R (Windows/Linux)
  → Cmd + Shift + R (Mac)
  → Clears cached version of the page

Step 2: Try a different browser or incognito mode
  → Rules out browser extensions, corrupted cache, cookies
  → If it works in incognito → clear your browser cache

Step 3: Check your internet connection
  → Can you load other websites? (google.com, etc.)
  → If nothing loads → your internet is down, not the site

Step 4: Try a different network
  → Switch from Wi-Fi to mobile data (or vice versa)
  → If it works → your ISP or local network is blocking it

Step 5: Flush your DNS cache
  → Windows: ipconfig /flushdns
  → macOS:   sudo dscacheutil -flushcache
  → Linux:   sudo systemd-resolve --flush-caches
  → Fixes stale DNS records pointing to old/wrong IP

Step 6: Try a different DNS server
  → Temporarily switch to 8.8.8.8 (Google) or 1.1.1.1 (Cloudflare)
  → If it works → your DNS server had a problem

Step 7: Disable VPN / proxy
  → VPNs can route through blocked regions or overloaded nodes

Step 8: Use an online "Is It Down" checker
  → Confirms if the problem is on your end or theirs

Preventing Downtime (Site Owner)

If you run a website, here's how to minimize downtime:

Downtime Prevention Checklist:

Infrastructure:
  ✓ Use a CDN (Cloudflare, Fastly, CloudFront) for static assets
  ✓ Set up load balancing across multiple servers
  ✓ Use auto-scaling to handle traffic spikes
  ✓ Deploy across multiple availability zones/regions
  ✓ Keep database replicas for failover

Monitoring:
  ✓ Set up uptime monitoring (check every 1-5 minutes)
  ✓ Monitor from multiple geographic locations
  ✓ Alert via SMS/Slack/PagerDuty — not just email
  ✓ Monitor SSL certificate expiration (30-day warning)
  ✓ Track response times — slow is a warning sign

Deployment:
  ✓ Use blue-green or canary deployments
  ✓ Have instant rollback capability
  ✓ Run automated tests before deploying
  ✓ Deploy during low-traffic hours
  ✓ Never deploy on Fridays (infamous SRE rule)

DNS & Domain:
  ✓ Enable auto-renewal for domain registration
  ✓ Use multiple DNS providers for redundancy
  ✓ Set appropriate TTL values
  ✓ Monitor DNS resolution

SSL:
  ✓ Use auto-renewing certificates (Let's Encrypt + Certbot)
  ✓ Monitor certificate expiration
  ✓ Test certificate chain completeness

Backups:
  ✓ Automated daily backups (database + files)
  ✓ Test restoring from backups regularly
  ✓ Store backups in a different region

The Cost of Downtime

Downtime isn't just an inconvenience — it has real financial and reputational costs:

ImpactDetails
Lost revenueE-commerce sites lose every sale while down. Amazon estimated losing ~$34M per minute during their 2023 outage.
SEO damageProlonged downtime causes search engines to drop your rankings. Google notes when pages return 5xx errors repeatedly.
User trustUsers who encounter a down site may not come back — they'll go to a competitor instead.
SLA penaltiesIf you're a service provider with SLA commitments, downtime triggers refunds or credits to your customers.
Team costsEngineers are pulled into emergency incident response — expensive, stressful, and disruptive to planned work.

Notable Outages

Major outages have affected even the biggest companies: Facebook went down for 6 hours in October 2021 (BGP misconfiguration), Cloudflare had a 27-minute outage in June 2022 affecting thousands of sites, and AWS us-east-1 outages have repeatedly taken down large portions of the internet. No one is immune to downtime.

Check if Any Website Is Down

Use our free Website Down Checker to instantly test if a website is up or down. Get HTTP status codes, response times, and confirmation from our servers — no install required.

Try Website Down Checker →

References

  1. Fielding, R. et al. (2022). RFC 9110 — HTTP Semantics (Status Codes). https://datatracker.ietf.org/doc/html/rfc9110#section-15
  2. Google. How Google handles server connectivity issues. https://developers.google.com/search/docs/crawling-indexing/http-network-errors
  3. Cloudflare. What is a 5xx server error?. https://developers.cloudflare.com/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-5xx-errors/
  4. AWS. Amazon Compute Service Level Agreement. https://aws.amazon.com/compute/sla/