Blog

Website down for everyone or just me? How to tell a local problem from a real outage

A practical check sequence to tell a local DNS, ISP or browser issue from a real outage, read multi-country results correctly and decide when to open an incident.

To find out whether a website is down for everyone or just me, request the same URL from several independent networks and countries and compare the results with what you see locally. If remote locations get a normal response while your machine fails, the problem sits in your DNS cache, ISP route, VPN or browser. If most locations fail the same way, it is a real outage and you should start treating it as an incident.

This guide gives you a fixed check sequence with commands, explains how to read multi-location results, including the confusing partial cases, and ends with a concrete rule for when an engineer's hunch becomes an incident.

Why "down for me" and "down for everyone" look the same from your desk

A failed page load in a browser hides where the failure happened. Between your laptop and the origin server there are at least five layers that can break independently:

  • DNS resolution: your OS cache, your router, your ISP resolver or the authoritative nameservers.
  • Network path: your ISP, a transit provider, a peering link or the hosting provider's edge.
  • TLS: certificate chain, SNI, protocol versions, a middlebox doing inspection.
  • CDN or WAF: a single point of presence, a geo rule or a rate limit that hit your IP.
  • The application itself: 5xx errors, timeouts, a broken deploy.

Only the last layer is guaranteed to affect every user. Everything above it can fail for one person, one city or one ISP while the service is healthy for everyone else. That is why you need an outside view before you page anyone.

Common local causes and how to recognize them

Stale or poisoned DNS cache

After a DNS change, your machine or resolver may still hold the old IP until the TTL expires. Symptoms: other people can reach the site, you get connection refused or a timeout, and the IP your system resolves differs from what a public resolver returns.

ISP or transit routing problems

A broken route between your ISP and the hosting network produces timeouts for everyone on that ISP, while users on other networks are fine. Switching to a mobile hotspot is the fastest way to confirm this.

Browser state

Cached redirects, HSTS entries, stale service workers, a misbehaving extension or a forced proxy setting can break a single browser while curl on the same machine works. If curl succeeds and the browser fails, the network is not your problem.

VPN, corporate proxy or firewall

Corporate networks often block new domains, inspect TLS or route traffic through a region where your CDN behaves differently. Turning off the VPN or testing from outside the office network separates this quickly.

Your IP got blocked

A WAF or rate limiter can return 403 or 429 to your IP only, often after you ran load tests or scripts against the site. Remote locations will see 200 while you see an error.

Step by step: is the website down for everyone or just me?

Run these steps in order. Each one rules out a layer, and most investigations end within the first four.

  1. Try curl instead of the browser. This removes cache, extensions and service workers from the picture and shows timing per phase:
    curl -sS -o /dev/null -w "code=%{http_code} dns=%{time_namelookup} connect=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total}\n" https://example.com
    A hang before dns points to resolution, a hang before connect to the network path, a failure before tls to certificates or SNI, and a 5xx code to the application.
  2. Compare DNS answers. Ask your default resolver and two public resolvers:
    dig +short example.com
    dig +short example.com @1.1.1.1
    dig +short example.com @8.8.8.8
    Different IPs mean a cache or propagation issue. An empty answer or SERVFAIL from all of them points to the authoritative side, which is a real outage for new visitors.
  3. Flush local caches if the answers differ:
    # macOS
    sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
    # Windows
    ipconfig /flushdns
    # Linux with systemd-resolved
    resolvectl flush-caches
    In Chrome, also clear the host cache under chrome://net-internals/#dns.
  4. Bypass DNS entirely by pinning the expected IP. If this works, the server is fine and only resolution is broken:
    curl -sS -o /dev/null -w "%{http_code}\n" --resolve example.com:443:203.0.113.10 https://example.com
  5. Change networks. Repeat the curl call over a mobile hotspot with the VPN off. Success here and failure on your main connection means an ISP, VPN or office network problem.
  6. Trace the path if the connect phase hangs:
    mtr -rwc 50 example.com
    Loss that starts at one hop and continues to the destination suggests a routing issue at that hop. Loss on a single intermediate hop that does not continue is usually just ICMP rate limiting and can be ignored.
  7. Check TLS directly when the TLS phase fails:
    openssl s_client -connect example.com:443 -servername example.com -brief
    An expired or mismatched certificate affects every visitor, so treat it as a real outage.
  8. Check from several countries. Use probes outside your network, for example the free network check tool, which requests the URL from several regions and shows reachability and latency per location. This is the step that actually answers the question.

Checking from several countries: what the result tells you

A multi-location check returns a status and a latency per region. The pattern matters more than any single result.

All locations succeed, you fail

The problem is local. Go back to steps 2 to 5: DNS cache, VPN, ISP route or a block on your IP. There is no outage to communicate, though if colleagues on the same ISP see it too, customers on that ISP may as well.

All locations fail the same way

This is a real outage. Look at how they fail. Identical HTTP 5xx responses mean the network and edge are fine and the application or its dependencies are broken. Timeouts everywhere point to the origin, the load balancer or the hosting network. DNS failures everywhere point to your authoritative nameservers or an expired domain.

Some regions fail, others succeed

This is the case people underestimate. A failure in one or two regions is not "just me" - it is a partial outage for every customer whose traffic takes that path. Typical causes are a degraded CDN point of presence, an anycast DNS node returning bad answers, a regional routing incident, or a WAF or geo rule that is stricter than intended. Compare the response codes: timeouts suggest network or edge problems, while 403 from some regions only suggests a rule.

Regions return different IPs or content

A DNS change is still propagating, or different CDN edges serve different versions of a deploy. Not an outage by itself, but worth watching if old IPs point to infrastructure you already shut down.

All succeed but latency is high in one region

Not down, but degraded. If time to first byte in one region is several times higher than elsewhere, users there experience the site as broken even though checks are green.

One check is a snapshot, not a verdict

A single round of requests can catch a brief network blip. Before declaring an outage, repeat the multi-location check once or twice over a minute or two. A failure that shows up consistently from several independent locations is solid evidence. A failure that appears once from one probe and then disappears is noise.

This is the same reasoning that well-configured monitoring uses to avoid paging people for nothing. If your alerts are firing on exactly these blips, the guide on reducing false positive alerts with multi-region checks and retries covers the alerting side in detail. This article is about the manual investigation when someone asks "is it down?"

When to start an incident

Once you know the outage is real, the next decision is whether it deserves an incident. A practical rule that small teams can apply without debate:

  • Open an incident when at least two independent locations confirm the failure across repeated checks and the affected path is something customers use: the main site, login, API, checkout or webhooks.
  • Open an incident for partial outages too when a whole region or a major ISP is affected. Scope it honestly: "Users in Asia may see timeouts" is more useful than silence because most locations are green.
  • Do not open an incident when only your own network fails and remote checks succeed, unless customer reports start arriving from the same ISP or region.
  • Open one immediately when customers report the problem before you have confirmed it. Their reports are your confirmation, and a status update stops the ticket flood while you investigate.

The first update can be short: what is affected, where, and when you will update next. For wording at each stage, see how to write an incident status update. Include the multi-location findings in your internal notes, because "fails from Frankfurt and Singapore, works from Virginia" narrows the search for whoever investigates next.

Doing this continuously instead of by hand

The manual sequence is useful when you are already suspicious. The better position is to know before anyone asks. Continuous checks from several regions run the last step of the sequence on a schedule and only alert when multiple locations agree.

m0nitor is one option for this. Its uptime monitoring runs HTTP(S), TCP, ping, DNS and SSL certificate checks from distributed probes in several regions and confirms an outage from multiple locations before an alert fires. You can get the same effect with other tools or self-hosted probes in different networks, as long as the probes sit outside your own infrastructure and a single location cannot trigger a page on its own.

FAQ

How can I check if a website is down for everyone or just me?

Request the URL with curl from your machine, then check it from several external locations in different countries. If external locations succeed and you fail, the cause is local, usually DNS cache, VPN, ISP routing or a block on your IP. If most locations fail, the site is actually down.

Why is a website down only for me?

The most common causes are a stale DNS cache after an IP change, a routing problem at your ISP, a VPN or corporate proxy, browser state such as cached redirects or service workers, and a WAF or rate limit that blocked your IP. Testing with curl over a mobile hotspot separates most of these within minutes.

Can a website be down in one country but not another?

Yes. A degraded CDN edge, a faulty anycast DNS node, regional routing problems or geo-blocking rules can make a site unreachable in some regions while it works elsewhere. For users in those regions, it is a real outage and should be handled as one.

Does flushing DNS fix a website that is down?

Only if the problem is a stale cached record on your machine. Compare the IP from your resolver with the answer from a public resolver like 1.1.1.1. If they match, flushing will not help and the cause is further along the path or on the server.

Product

  • Pricing
  • Features
  • Integrations
  • Security
  • Free network check

Features

  • Uptime monitoring
  • Status pages
  • Alert workflows
  • Incident management
  • Dependencies
  • AI assistant
  • Global infrastructure
  • On-call schedules
  • Enterprise SSO

Use cases

  • Websites for free
  • Cron jobs
  • SSL certificates
  • Databases
  • IP blacklists
  • GDPR compliance

Resources

  • What is a status page?
  • Documentation
  • API
  • MCP server
  • Monitoring glossary
  • Free tools
  • SLA calculator
  • SSL checker
  • DNS lookup
  • Blog
  • Changelog
  • About
  • Contact

Compare

  • Free uptime monitoring
  • UptimeRobot
  • Better Stack
  • Pingdom
  • StatusCake
  • Uptime Kuma
  • Hyperping
  • Atlassian Statuspage
  • Instatus
  • Cachet
  • Freshping