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.
Table of Contents
- Is It Down for Everyone or Just Me?
- Why Websites Go Down
- HTTP Status Codes — What the Numbers Mean
- How Website Monitoring Works
- Uptime Math — What "99.9%" Really Means
- How to Check if a Website Is Down
- Common Causes of Downtime
- What to Do When a Site Won't Load (Visitor)
- Preventing Downtime (Site Owner)
- The Cost of Downtime
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)
| Code | Name | Meaning |
|---|---|---|
| 200 | OK | The site is working — request was successful |
| 301 | Moved Permanently | Page has moved to a new URL — browser should redirect |
| 304 | Not Modified | Cached version is still current — no need to re-download |
Client Errors (4xx)
| Code | Name | Meaning |
|---|---|---|
| 400 | Bad Request | The request was malformed — server can't understand it |
| 401 | Unauthorized | Authentication required — you need to log in |
| 403 | Forbidden | You don't have permission to access this resource |
| 404 | Not Found | The page doesn't exist — wrong URL or page was deleted |
| 408 | Request Timeout | Server waited too long for the request to complete |
| 429 | Too Many Requests | Rate limited — you're sending requests too fast |
Server Errors (5xx) — "The Site Is Down"
| Code | Name | Meaning |
|---|---|---|
| 500 | Internal Server Error | Something crashed on the server — a bug, misconfiguration, or unhandled exception |
| 502 | Bad Gateway | The proxy/load balancer got an invalid response from the upstream server |
| 503 | Service Unavailable | Server is temporarily overloaded or under maintenance |
| 504 | Gateway Timeout | The proxy/load balancer didn't get a response in time from the upstream server |
| 521 | Web 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 Type | What It Tests | Best For |
|---|---|---|
| HTTP(S) Check | Sends a request and checks status code | Websites, APIs, web applications |
| Ping (ICMP) | Tests if the server is reachable at network level | Servers, infrastructure, network devices |
| TCP Port Check | Tests if a specific port is accepting connections | Databases, mail servers, custom services |
| Keyword Check | Verifies specific text appears in the response | Detecting defacements, wrong content, broken pages |
| DNS Check | Verifies DNS records resolve correctly | Detecting 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 % | Name | Downtime / Year | Downtime / Month | Downtime / Week |
|---|---|---|---|---|
| 99% | "Two nines" | 3.65 days | 7.3 hours | 1.68 hours |
| 99.9% | "Three nines" | 8.76 hours | 43.8 minutes | 10.1 minutes |
| 99.95% | "Three and a half" | 4.38 hours | 21.9 minutes | 5.04 minutes |
| 99.99% | "Four nines" | 52.6 minutes | 4.38 minutes | 1.01 minutes |
| 99.999% | "Five nines" | 5.26 minutes | 26.3 seconds | 6.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 usageThe "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 reportsCommon Causes of Downtime
| Cause | Frequency | Details |
|---|---|---|
| Server overload / traffic spikes | Very common | Viral content, DDoS attacks, or insufficient server capacity. Server can't handle the number of requests → 503 errors. |
| Code deployment bugs | Very common | A new release introduced a bug → 500 errors, crashes, infinite loops. Most incidents are caused by code changes. |
| Database failures | Common | Database server down, out of connections, corrupted data, slow queries blocking everything. |
| DNS issues | Common | DNS records misconfigured, nameserver down, expired domain. Site "works" by IP but not by name. |
| SSL certificate expiration | Common | Certificate expired → browsers block access with a security warning. Auto-renewal failure is the usual cause. |
| Infrastructure / hosting outage | Occasional | Cloud provider (AWS, GCP, Azure) has a regional outage. Affects thousands of sites at once. |
| DDoS attack | Occasional | Distributed Denial of Service — attacker floods server with fake traffic to overwhelm it. |
| Domain expiration | Rare but devastating | Domain registration expired and wasn't renewed → entire site goes offline immediately. |
| Hardware failure | Rare | Disk 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 theirsPreventing 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 regionThe Cost of Downtime
Downtime isn't just an inconvenience — it has real financial and reputational costs:
| Impact | Details |
|---|---|
| Lost revenue | E-commerce sites lose every sale while down. Amazon estimated losing ~$34M per minute during their 2023 outage. |
| SEO damage | Prolonged downtime causes search engines to drop your rankings. Google notes when pages return 5xx errors repeatedly. |
| User trust | Users who encounter a down site may not come back — they'll go to a competitor instead. |
| SLA penalties | If you're a service provider with SLA commitments, downtime triggers refunds or credits to your customers. |
| Team costs | Engineers 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
- Fielding, R. et al. (2022). RFC 9110 — HTTP Semantics (Status Codes). https://datatracker.ietf.org/doc/html/rfc9110#section-15
- Google. How Google handles server connectivity issues. https://developers.google.com/search/docs/crawling-indexing/http-network-errors
- Cloudflare. What is a 5xx server error?. https://developers.cloudflare.com/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-5xx-errors/
- AWS. Amazon Compute Service Level Agreement. https://aws.amazon.com/compute/sla/