This Site Can’t Be Reached: How to Read the Error Code and Fix the Connection
You click a link, the page goes white, and Chrome gives you a flat verdict: “This site can’t be reached.” No spinner, no half-loaded layout, no error from the website itself. The browser tried to open a connection to the server and never got there. That is the whole meaning of the message, and it is also why people panic over it more than they should. The connection failed somewhere on the path between your browser and the server, and your only job is to find out *where*.
I am Idris Mensah, and I spend my days isolating exactly this kind of problem. The good news is that “this site can’t be reached” is one of the most diagnosable errors on the web, because Chrome tells you almost everything you need in a single line of small grey text. Most people read the headline and stop. We are going to read the part underneath it.
Key Takeaways
• “This site can’t be reached” means the browser never established a connection to the server. It is a network/connection failure, not a content error like 404 or 500.
• The real diagnosis is the ERR_ code printed in smaller text below the headline. Read that first.
• ERR_CONNECTION_REFUSED = server reachable but actively refused (service down or port closed). ERR_CONNECTION_TIMED_OUT = no response at all (firewall, network, or overload). ERR_NAME_NOT_RESOLVED / DNS_PROBE = DNS can’t translate the domain. ERR_ADDRESS_UNREACHABLE = routing problem.
• Isolate the cause before fixing: try another network, another device, and another site. That tells you whether the problem is you or the server.
• Visitor-side fixes (flush DNS, change resolver, clear cache, disable VPN, restart router) handle most local cases; owner-side fixes handle the server, ports, firewall, and DNS records.
What does “this site can’t be reached” actually mean?
When a page loads normally, your browser performs a chain of steps: it looks up the domain’s IP address through DNS, opens a TCP connection to that IP on the right port (usually 443 for HTTPS), completes a security handshake, and then requests the page. “This site can’t be reached” appears when one of the early steps in that chain fails before the server ever sends back content.
This is the key distinction. A 404 or a 500 error means your browser *did* reach the server, and the server answered with a problem. “This site can’t be reached” means your browser never got an answer at all. The conversation never started. That is why you cannot fix it by reloading the page over and over and hoping the website “comes back” — nothing on the website is even involved yet.
Because the failure can happen at several points in that chain, Chrome appends a specific error code to tell you which point broke. That code is the difference between guessing and knowing.
Here is the single most useful thing to know about this error: “This site can’t be reached” is deliberately generic, but Chrome *always* prints a specific ERR_ code in smaller text directly below the headline — and that code is the entire diagnosis. `ERR_CONNECTION_REFUSED`, `ERR_CONNECTION_TIMED_OUT`, `ERR_NAME_NOT_RESOLVED`, and `ERR_ADDRESS_UNREACHABLE` each point at a *different layer* of the connection: service, network/firewall, DNS, and routing respectively. People skim the big headline and miss the one piece of text that tells them exactly where to look. Read the ERR_ code first. It turns a vague “the site’s down” into a precise, fixable layer — and it tells you in seconds whether to flush your DNS or call your host.
Which ERR_ code do you have, and what does each one mean?
Before you touch a single setting, find the code under the headline. It is usually one short line in grey. Match it against the table below.
| ERR_ code | What it means | Which layer is broken | First place to look |
|---|---|---|---|
| ERR_CONNECTION_REFUSED | The server was reached but actively refused the connection | Service / port | The web service is down, crashed, or the port is closed |
| ERR_CONNECTION_TIMED_OUT | No response came back at all within the time limit | Network / firewall / load | Firewall blocking, slow/dead network, or server overloaded |
| ERR_NAME_NOT_RESOLVED / DNS_PROBE_FINISHED_NXDOMAIN | The domain name could not be translated to an IP address | DNS | DNS records, your resolver, or domain expiry |
| ERR_ADDRESS_UNREACHABLE | A path to the server’s IP address could not be found | Routing | Network routing, the IP is wrong or unroutable |
| ERR_CONNECTION_RESET | The connection was opened then abruptly dropped | Network / security | Unstable network, firewall mid-stream, or protocol mismatch |
The way to read this table: refused means someone is home but slammed the door (the service answered “no”). Timed out means you knocked and nobody answered (silence, which usually means a firewall ate the request or the network is broken). Name not resolved means you do not even have the address. Address unreachable means you have the address but no road leads to it. Four different problems, four different fixes — and the headline alone cannot tell them apart.
Is it you or the site? The isolation test
This is the step most people skip, and it is the one that saves the most time. Before you change anything, run a quick isolation test to learn whether the problem lives on your side or the server’s side.
- Try a different website. Open `google.com` or any large, reliable site. If *nothing* loads, your own internet connection is the problem, not the site you were visiting.
- Try the same site on another network. Switch from Wi-Fi to mobile data, or use a phone on cellular instead of the office network. If it loads on mobile data but not on Wi-Fi, the problem is your network or its DNS/firewall — not the website.
- Try the same site on another device. If one laptop fails but a phone on the same network works, the issue is local to that one machine (cache, DNS, firewall, VPN).
- Check whether the site is down for everyone. Use a “down for everyone or just me” style checker. If it reports the site down globally, the problem is the server, and there is nothing you can fix from your chair — it is the owner’s job.
By the end of this test you will know which column to work in: visitor-side fixes, or owner-side fixes.
How do you fix “this site can’t be reached” as a visitor?
If the isolation test points at your side, work through these in order. They are arranged from quickest to most involved.
1. Check your connection and reload. Confirm Wi-Fi or Ethernet is actually connected, then reload with `Ctrl + R`. Transient blips are real, and a single retry rules them out.
2. Restart your router. Power it off, wait about 30 seconds, power it on. This clears a surprising number of timeout and routing failures. Give it a full minute to reconnect before testing.
3. Flush your DNS cache. A stale DNS entry causes `ERR_NAME_NOT_RESOLVED` and `ERR_ADDRESS_UNREACHABLE` even after the real records are fixed.
On Windows: “`bash ipconfig /flushdns “`
On macOS: “`bash sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder “`
4. Test the path with ping. This tells you whether your machine can even reach the server’s network. Replace the domain with the site you are trying to open: “`bash ping example.com “` If ping returns replies, the host is reachable and your problem is higher up (service or port). If ping says “could not find host,” that is a DNS failure. If it says “request timed out,” that points at a firewall, routing, or a down server.
5. Change your DNS resolver. If your ISP’s DNS is failing, switching to a public resolver often fixes name-resolution errors immediately. Set your network adapter’s DNS servers to a reliable public pair such as: “`text Preferred DNS: 1.1.1.1 Alternate DNS: 8.8.8.8 “` On Windows: Settings → Network & Internet → adapter properties → Edit DNS → Manual. On macOS: System Settings → Network → Details → DNS. After changing, run `ipconfig /flushdns` again so the new resolver takes effect cleanly.
6. Clear your browser cache or try Incognito. A corrupted cache or a bad cached redirect can block a connection. Open an Incognito window (`Ctrl + Shift + N`) and try the site. If it works in Incognito, clear your normal cache and check your extensions.
7. Disable VPN, proxy, or third-party firewall temporarily. VPNs and proxies reroute your traffic and are a frequent cause of timeouts and `ERR_ADDRESS_UNREACHABLE`. Turn them off and retest. The same goes for an aggressive antivirus firewall that may be blocking the destination.
8. Try another browser. If the site loads in a different browser, the problem is profile-, extension-, or cache-specific to Chrome, and you have narrowed it down precisely.
If you are seeing a DNS-specific code, the dedicated fixes go deeper than the steps above. and cover those paths in detail.
How do you fix it as the site owner?
If the isolation test showed the site is down for everyone, the connection is failing at the server. Visitors cannot do anything; you have to check the machine itself. Work down the same chain Chrome uses, from DNS inward.
1. Confirm the server is actually up. Log in to your hosting control panel or SSH into the server. If you cannot reach it at all, the server may be offline, suspended, or rebooting. A `ping` to your server’s IP from another machine confirms whether the host responds.
2. Confirm the web service is running. `ERR_CONNECTION_REFUSED` almost always means the server is on but the web service (Nginx, Apache, or your app process) has crashed or stopped. Restart the service and check its status. A refused connection is a service that said “no,” not a server that is silent.
3. Check that the right ports are open and listening. The site needs port 443 (HTTPS) and usually 80 (HTTP) open and bound to the web service. If the service is listening on the wrong port, or a firewall is blocking the port, you get refused or timed-out connections. Verify the firewall rules allow inbound traffic on those ports.
4. Verify your DNS records. If visitors see `ERR_NAME_NOT_RESOLVED`, your domain’s A record may be missing, wrong, or pointing at an old IP — or the domain may have expired. Confirm the A record matches your current server IP, and that the nameservers are set correctly at your registrar. If your DNS server itself is unresponsive, that is its own diagnosis: see .
5. Check SSL and the HTTPS handshake. A broken, expired, or misconfigured SSL certificate can stop the secure connection from completing. If the certificate is invalid or the wrong protocol is forced, the handshake fails before any page loads.
6. Rule out overload and rate limiting. Persistent `ERR_CONNECTION_TIMED_OUT` for everyone can mean the server is overwhelmed, out of memory, or hitting a connection limit. Check server load and logs. Note that connection-level failures are different from server *response* errors — if the server is reachable but returning 502 or 503, that is a separate class of problem covered under .
Owner-side, the diagnosis order is always the same: DNS resolves → IP is reachable → port is open → service answers → SSL completes. Find the first link that breaks, and that is your fix.
DarazHost keeps your site reachable
Most “this site can’t be reached” reports that land on a site owner come down to the same handful of things: the server stalled, a port closed, a firewall rule went wrong, or a DNS record drifted. DarazHost is built to keep those links in the chain healthy. We run monitored servers with 99.9% uptime, reliable DNS and networking, and proper firewall and port configuration so the connection actually completes for your visitors. And when someone does report that your site “can’t be reached,” our 24/7 support team helps you confirm — quickly and methodically — that the server is up, the ports are open, and the DNS records are correct, so you are never guessing which layer broke.
This connection error is one branch of a much larger diagnostic tree. For the full map of browser and server errors and how they relate, see our complete guide to diagnosing and fixing site errors.
What’s the fastest way to tell a DNS problem from a server problem?
Run two quick commands. First, `ping the-domain.com`. If it says “could not find host,” your problem is DNS — the name is not resolving, so look at your resolver, flush your cache, or check the site’s DNS records. If ping *does* resolve a name to an IP and returns replies, DNS is fine and the problem is higher up: the service, the port, or SSL. Second, check the ERR_ code. `ERR_NAME_NOT_RESOLVED` confirms DNS; `ERR_CONNECTION_REFUSED` confirms a service/port issue. The two pieces of evidence together pin the layer almost every time.
Frequently asked questions
Why does “this site can’t be reached” appear on only one site but every other site works fine? That pattern almost always means the problem is specific to that one site’s server or DNS, not your connection. Run the isolation test — if the site is down for everyone, it is the owner’s server. If it loads on another network or device but not yours, you likely have a stale DNS entry; flush your DNS cache and try a public resolver.
Does “this site can’t be reached” mean the website is hacked or gone forever? No. It is a connection failure, not a sign of a hack or permanent removal. It usually means a temporary network issue, a stopped service, an expired domain or certificate, or a DNS misconfiguration. Most causes are fixable in minutes once you read the ERR_ code and identify the layer.
I keep getting ERR_CONNECTION_TIMED_OUT — what should I check first? Timed-out means silence, so start with anything that could be blocking or slowing the request: disable your VPN or proxy, restart your router, and temporarily turn off a third-party firewall. If it persists on multiple networks and the site is confirmed down for everyone, the server is likely overloaded or firewalled at its end, which is the owner’s job to fix.
Will flushing my DNS fix “this site can’t be reached”? It will if your code is `ERR_NAME_NOT_RESOLVED`, `DNS_PROBE_FINISHED_NXDOMAIN`, or `ERR_ADDRESS_UNREACHABLE` caused by a stale record. Run `ipconfig /flushdns` on Windows, then retry. If the code is `ERR_CONNECTION_REFUSED`, flushing DNS will not help, because the name already resolved — the problem is the service or port, not the lookup.
Is “this site can’t be reached” the same as a 404 or 500 error? No, and the difference matters. A 404 or 500 means your browser reached the server and the server replied with a problem. “This site can’t be reached” means your browser never reached the server at all — the connection failed before any response. That is why reloading rarely helps and why you have to diagnose the connection itself.