In short
Start by confirming the site is down for everyone, not just you, using an external checker. Then read the error: a DNS or 'server not found' error means the domain or its DNS records have failed, often an expired registration; a certificate warning means TLS has lapsed; a 5xx error means the server is up but the application has failed; a timeout means the server or host is unreachable. Most outages on small sites are an expired domain, an expired certificate, a failed update, or a full disk, all of which are fixable in minutes once identified.
First: is it actually down?
Before anything else, check from somewhere that is not your machine. An external checker such as isitdownrightnow or downforeveryoneorjustme, or simply your phone on mobile data with wifi off, tells you whether the outage is real or local. A surprising share of "the site is down" reports are a stale DNS cache, a corporate firewall, a browser extension, or a VPN.
If it loads from elsewhere, clear your DNS cache, try another browser, and move on with your day. If it does not, read the error.
Read the error message
Each failure produces a distinct symptom. Match yours:
| What you see | What it means | Most likely cause |
|---|---|---|
| "This site can't be reached", "server not found", DNS_PROBE_FINISHED_NXDOMAIN | The domain does not resolve to an address | Expired domain, deleted or wrong DNS records, nameserver change not propagated |
| "Your connection is not private", NET::ERR_CERT_DATE_INVALID | The server answered but its certificate is invalid | Expired TLS certificate, auto-renewal failed |
| 500, 502, 503, 504 | The server is reachable but the application or an upstream failed | Broken deploy, plugin update, database down, resource limit, full disk |
| 403 Forbidden | The server refused the request | Permissions, a misconfigured firewall, a security rule blocking everyone |
| 404 on every page | The server is up, the site's files or routing are missing | Deploy to the wrong directory, broken rewrite rules, wrong document root |
| Spinning forever, then timeout | Nothing answers | Server down, host outage, DDoS, firewall dropping traffic |
| A parking page or a different site | The domain points somewhere else | Domain expired and was re-parked, DNS hijacked or changed by mistake |
Cause 1: the domain
An expired domain is the most embarrassing outage and one of the most common. The site, the email, everything stops, and the registrar's parking page appears where the homepage was. Check the domain's expiry with a WHOIS lookup. If it has lapsed, renew it immediately; there is a grace period of around thirty days during which renewal is at the normal price, after which it gets expensive or impossible. Then turn on auto-renew and put a second person's contact details on the account.
DNS failures look the same from outside. If the domain is current but does not resolve, check the nameservers at the registrar and the A or CNAME records at the DNS provider. A change made hours ago may still be propagating; a record deleted by mistake needs restoring. A DNS provider outage, which does happen, is outside your control and usually resolves within an hour.
Cause 2: the certificate
An expired certificate produces a full-page browser warning that most visitors will not click through. Certificates from Let's Encrypt last ninety days and are renewed automatically; when the automation breaks, usually because a DNS change or a migration disrupted the validation, the site goes down on schedule. Renew through the host's control panel or the ACME client, then find out why the renewal failed. Put the expiry date in a monitoring tool so the next lapse is a warning, not an outage. The "Not Secure" diagnosis covers the certificate cases in more detail.
Cause 3: the application
A 5xx error means the server is alive and something on it broke. On small sites the cause is almost always a recent change: a plugin or theme update on WordPress, a deploy that shipped a bug, a configuration edit, a PHP version change by the host. The fix is to undo the change: restore the previous version, disable the plugin by renaming its folder, roll back the deploy.
If nothing changed, look for resource exhaustion: a full disk (logs and backups are the usual culprits), a database that has hit its connection limit, or a shared-hosting account that exceeded its CPU allowance and was throttled. The host's control panel or the server's error log will say. A 502 or 504 specifically points at something upstream of the web server, typically the application process or the database, having stopped responding.
Cause 4: the server or host
A timeout with no error means nothing is answering. Check the host's status page first; hosting outages are announced there and there is nothing to do but wait. If the host is fine, the server itself may have crashed, run out of memory, or been rebooted for maintenance and failed to bring the services back up. On a VPS, log in and restart the web server and database; on managed hosting, open a ticket and include the exact error and the time it started.
A sudden timeout accompanied by a traffic spike may be an attack. Hosts and CDNs such as Cloudflare have mitigation; enabling a challenge mode for a few hours usually restores service.
Cause 5: someone changed something
The question to ask everyone with access is "what did you do today?" A developer pushed a change, a colleague updated a plugin, someone edited DNS to set up email, a designer changed a template. Most outages are the immediate consequence of an action someone took and did not connect to the symptom. A shared log of changes, even a chat channel, shortens every future diagnosis.
Making the next one shorter
External uptime monitoring that alerts a phone within a minute. Domain and certificate expiry on a calendar and in the monitor. Backups that have been restored at least once, so you know they work. A deploy process that can be reversed in one step. And a written note of who to call at the host, with the account details somewhere two people can find. Sites with these in place are still occasionally down; they are down for minutes rather than a weekend.
If your site is down right now and none of the above has found it, book a call and we will look at it with you.
Common questions
How do I check if my website is down for everyone or just me?
Use an external checker such as downforeveryoneorjustme.com, or open the site on your phone with wifi off so it uses mobile data. If it loads from there, the problem is on your network or machine: clear your DNS cache, try another browser, and disable any VPN. If it fails from outside too, the outage is real.
What does 'server not found' or DNS_PROBE_FINISHED_NXDOMAIN mean?
The domain name is not resolving to any server address. The usual causes are an expired domain registration, DNS records that were deleted or changed by mistake, or a nameserver change that has not finished propagating. Check the domain's expiry with a WHOIS lookup first, then the DNS records at your DNS provider.
Why does my website show a 500 or 502 error?
The server is reachable but the application behind it failed. On small sites this is almost always a recent change: a plugin or theme update, a deploy with a bug, or a configuration edit. Undo the most recent change first. If nothing changed, check for a full disk, a database that has stopped, or a hosting resource limit; the error log will say which.
How long does it take to fix a website that is down?
Once the cause is identified, most small-site outages are fixed in minutes: renewing a domain or certificate, restoring a previous version, restarting a service, or freeing disk space. The time is usually spent finding the cause, which is why external monitoring and a record of recent changes matter more than anything else.
Can a website go down because of too much traffic?
Yes. Shared hosting plans have CPU and memory limits and will throttle or suspend an account that exceeds them, and any server has a ceiling. A viral post, a scraper, or an attack can push a site past it. A CDN in front of the site absorbs most traffic spikes for static content, and caching reduces the load on dynamic pages.
