This Site Can't Be Reached: What It Means and How to Fix It

Chrome's 'This site can't be reached' page hides a code that names the real fault. Tell a down server from a bad DNS record or a local network problem.

“This site can’t be reached” is different from a server error page, and the difference is worth understanding before you start fixing things. When you see a 500, a 502, a 503, or a 504, your browser reached the site’s server and the server answered. Here, no answer ever came. The browser could not complete a connection at all.

That means the fault is somewhere between your device and the site’s application — a DNS record, a firewall, a server that is switched off, or your own network. It is not an application bug, because the application was never asked.

Chrome, Edge, and Brave show this page. Firefox says “Unable to connect” or “Server not found.” Safari says “Safari Can’t Open the Page.” Underneath the headline, in small grey text, is a code, and the code is the actual diagnosis.

Step 1: Is it the site, or is it you?

Before reading the code, separate the two cases — it takes ten seconds and eliminates half the possible causes.

Load the same address on a phone using mobile data, not Wi-Fi. If it loads there, the problem is your computer, your router, or your network. If the phone shows the same error, the problem is the site or its DNS.

If you have no second device, run the domain through the website checker. It connects from an independent server, so a clean result there alongside an error on your screen points at your side of the connection.

Step 2: Read the code

Click the details or the small grey text on the error page, or open DevTools with F12 and look at the Console tab. The code tells you which layer failed.

Code What it means Most likely cause
ERR_CONNECTION_REFUSED Something is listening at that address and rejected the connection The web server is not running, or is on a different port
ERR_CONNECTION_TIMED_OUT Nothing answered, and the browser stopped waiting A firewall dropping packets, or the host is offline
ERR_NAME_NOT_RESOLVED The domain name could not be turned into an IP address Missing or wrong DNS record, or an expired domain
DNS_PROBE_FINISHED_NXDOMAIN DNS answered, and the name does not exist The record was removed, or the domain has expired
ERR_CONNECTION_RESET The connection was opened and then forcibly closed A firewall, a proxy, or a crashing server process
ERR_EMPTY_RESPONSE The connection opened and closed with no data at all A proxy or load balancer with no backend behind it
ERR_ADDRESS_UNREACHABLE No route to that address from your network Local routing, VPN, or a private address
ERR_INTERNET_DISCONNECTED Your device has no network at all Wi-Fi, cable, or an adapter that is switched off

If the problem is on your side

These are the causes that make one person see the error while everyone else loads the site normally.

Your DNS resolver is failing

The single most common local cause. Your router, ISP, or a DNS service you configured is not answering queries, so no domain resolves. Test it by loading a site you know is up — if that fails too, DNS is the problem rather than the site.

Fix: switch to a public resolver — 1.1.1.1 (Cloudflare) or 8.8.8.8 (Google) — in your network settings, then flush the cache. Windows: ipconfig /flushdns. macOS: sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder. Linux: sudo systemd-resolve --flush-caches.

A VPN, proxy, or DNS filter

A VPN routes your traffic through a network that may block the destination, and “safe browsing” DNS filters routinely block legitimate sites by category. Disconnect the VPN, or set DNS back to automatic, and retry.

A stale hosts file entry

127.0.0.1 example.com left behind by a local development session sends the domain to your own machine, where nothing is listening. Check /etc/hosts on macOS and Linux, or C:\Windows\System32\drivers\etc\hosts on Windows, and remove any line naming the domain.

An extension or security suite

Ad blockers, privacy extensions, and antivirus web shields can block requests before they leave. Test in an incognito window with extensions disabled — if it works there, the extension is the cause.

A captive portal

On hotel, airport, and café networks, you are not really online until you accept the terms. The portal intercepts requests and the browser reports a connection failure. Fix: open a plain http:// address such as http://neverssl.com and complete the login page.

The clock is wrong

Less common here than with certificate errors, but a badly wrong clock can break TLS and DNS-over-HTTPS, producing connection failures on every site. Turn on automatic time.

If the problem is the site

These are the causes that affect everyone, and they are the site owner’s to fix.

The web server is not running

ERR_CONNECTION_REFUSED for every visitor, instantly. The domain resolves correctly to an IP address, and the machine is up, but nothing is listening on port 80 or 443. The service crashed, was stopped during maintenance, or never started after a reboot.

Fix: confirm the process is running and is bound to the right interface. A server listening only on 127.0.0.1 is unreachable from outside; it needs 0.0.0.0.

DNS points nowhere, or the domain expired

ERR_NAME_NOT_RESOLVED or NXDOMAIN. Either the A/AAAA record was deleted or changed to a wrong address, or the domain registration lapsed and the registry stopped publishing the delegation entirely.

Fix: check the domain’s expiry date first — this is the one cause that no amount of server work will fix, and it is easy to rule out. Then verify the A record matches the server’s current IP. A host migration that updates the server but not the DNS record produces exactly this error for everyone.

A firewall is dropping traffic

ERR_CONNECTION_TIMED_OUT with a long wait before the error. The packets arrive and are discarded silently, so the browser waits out its full timeout. A firewall that rejects instead of dropping would produce ERR_CONNECTION_REFUSED instantly — the slow version of the error is the tell.

Fix: check security groups, host firewalls, and any CDN allow-list. If your CDN’s IP ranges are blocked at the origin, every visitor sees this while your server looks perfectly healthy from inside.

A load balancer with no healthy backend

ERR_EMPTY_RESPONSE — the connection is accepted by the balancer and then closed without a byte of data. Every node behind it has failed its health check, or the balancer is pointing at a port nothing serves.

Fix: check the pool status and the health-check definition before the application itself.

A TLS handshake failure at the edge

The connection reaches the server and dies during the handshake. This usually surfaces as a certificate warning rather than a connection error, but a misconfigured edge can produce connection failures too. If the site is yours, run the SSL certificate checker — it reports whether the certificate is expired, mismatched, or missing an intermediate.

Step 3: Confirm it is actually fixed

A connection error clears the instant the cause is removed, which makes it easy to stop too early. Check all three:

  1. The same URL loads from a different network, not just from your machine.
  2. curl -sI https://example.com | head -1 returns a status line rather than a connection error.
  3. It is still working after ten minutes. A server in a crash-restart loop will look fixed in between restarts.

Why “can’t be reached” is the most damaging failure

Every other error tells a visitor something. A 502 says the site exists and is broken. This one says nothing at all — many visitors conclude the domain is dead and never return. Search crawlers do the same thing: a page that cannot be reached is dropped from the crawl queue, and repeated failures lead to removal from the index rather than a lowered ranking.

It is also the failure most likely to go unnoticed by the person responsible, because the person responsible has the site bookmarked, an open session, and a cached page. The first person to find out is usually a customer.

That is the argument for checking from outside on a schedule. SitesRadar’s free plan checks one site’s reachability, DNS, and certificate from an independent server and emails you when any of them fails, so a dead domain is a message in your inbox rather than a phone call from a client. The client site down triage checklist covers the order to work in when you look after several sites.

FAQ

What does “This site can’t be reached” mean? Your browser could not open a connection to the server. Unlike a 502 or 504, the server never responded — the failure happened before any page was generated.

Is it my internet or the website? Try a site you know is working. If that fails too, it is your connection or DNS. If only one site fails, the problem is that site or its DNS record.

How do I know if a website is down or it’s just me? Load it on a phone over mobile data instead of Wi-Fi. That removes your network, your DNS, and your extensions in one step.

Can a website be down and still ping? Yes. Ping tests whether the machine is reachable; it says nothing about whether the web server is running. A server with the web service stopped will answer ping and refuse HTTP connections.

Why does the site work for everyone else but not me? Your DNS resolver, VPN, hosts file, or an extension is blocking it. It is a local problem with a local fix.

← More from the SitesRadar blog