Troubleshooting guide · website-errors · Published 2026-08-15 · 4 min read
Website not loading at all
Diagnose why a website will not load at all: walk DNS, connection, server and TLS in order, and separate a not loading site from a blank page.
- ·Test the chain
- ·The failing step
- ·Server check
Not loading versus blank
The request never reaches a usable answer. The browser has no HTML, no status, no error page of its own; it just waits or shows one of the DNS or connection errors. A blank page is different: the server answers with 200 and a body that renders empty, and that case has its own article. This one covers the chain that stops before a server responds.
The difference matters because the fixing is drawn at the same line. If the browser does open the page but it is white, the error is in the render, not the network.
The four steps that must work
For a page to load, four steps have to succeed in order. The error at each step has a recognizable name in the browser. Small table:
| Failing step | Error text | Example |
|---|---|---|
| DNS resolution | ERR_NAME_NOT_RESOLVED | Domain deleted, record removed |
| TCP connection | ERR_CONNECTION_TIMED_OUT, ERR_TIMED_OUT | Firewall, dead host |
| Server rejects | ERR_CONNECTION_REFUSED | Web server not listening |
| TLS handshake | SSL_PROTOCOL_ERROR or a certificate page | Certificate expired |
| Nothing returns | Long spinner | Server hung, disk full, DB down |
Test the chain in order
- Start with a private window. If the site loads there, the browser, a proxy, or an extension was the blocker, not the webserver.
- Test from outside your network. Open an independent uptime checker or a second device on a different network. If the site loads there, the problem is local, likely DNS or ISP. If it fails everywhere, the problem is on the site or host.
- Resolve the DNS step. From the terminal:
nslookup example.com, orResolve-DnsName example.comon Windows.NXDOMAINmeans no record answers at all. A time out means the DNS server did not answer. - Check the web server.
curl -sI https://example.com/. AHTTP/1.1line is the server answering; a hang after connection means the server is stuck. - Check the edge. If the site sits behind a CDN like Cloudflare, its code 522, 523 or 524 points back to the origin. The edge being up does not prove the origin is.
When it loads on some devices but not others
- One laptop fails, the phone is fine: the laptop-specific cache or a proxy in its network. Check the hosts file on that machine and run
ipconfig /flushdns(Windows) orsudo dscacheutil -flushcache. - The whole home network fails but mobile data works: the router is serving a stale DNS or the ISP has an outage. Reboot the router and change its resolver to a public one.
- Everything local fails, but the site is up for friends elsewhere: the failing part is your network or its DNS, not the site.
When the failing step is the server
If the chain survives the browser and the DNS, read the server. The classic causes of "will not load at all, everywhere":
- Disk full, so the web server or the database cannot write.
- PHP or the application process was killed: out of memory, full disk, or a crashed worker.
- The origin is unreachable behind a firewall or load balancer, which surfaces at the edge as a 522.
- The domain expired or the nameservers were changed, so records stopped resolving globally.
Each of these has its own article. dns-propagation-and-resolution covers the record steps, and http-500-internal-server-error covers the server side if the site loads but errors, plus the connection-timed-out article for the timeouts. Verify the DNS and the server before blaming the code; a site that loads for other people but not for you is usually a local DNS problem.
The outcome
Use the symptom to pick a step, fix that step, and prove the fix with a private window and a curl status check. The moment the connection, the DNS, and the server answer 200, the problem has moved to the page, not the network, and the blank section of this library takes over.