
This is a confusing situation — your monitoring tool is showing green, your server responds to a ping, but when you or your users try to open the site in a browser, nothing loads. What's going on?
The server being "up" and the website being "accessible" are actually two different things. Here's how to figure out which layer is broken.
A server can be running and responding to basic network requests while still having problems that prevent a browser from loading a web page. The web server software might be fine but the application behind it is broken. DNS might be pointing somewhere unexpected. A CDN might be serving stale or broken content.
Let's work through the most common causes.
DNS is often the first thing to check when a site is reachable from some places but not others.
DNS propagation delays: If you recently changed DNS records (moved hosts, updated A records, etc.) those changes can take time to spread across the internet. Your server is fine — some users just aren't reaching it yet because their DNS cache still has old information.
Expired domain: If your domain registration has lapsed, DNS stops resolving entirely. Check your domain's expiry date immediately — domain expiry monitoring can prevent this from catching you off guard.
Wrong DNS records: A typo in an A record or CNAME pointing to the wrong IP means traffic never arrives at your server.
How to check:
dig yourdomain.com
nslookup yourdomain.com
Compare the IP in the DNS result against your actual server IP.
If you're using Cloudflare, a CDN, or a reverse proxy, the "server up" check might be hitting the proxy layer — not your actual origin server.
The CDN reports healthy, but:
Try bypassing the CDN by accessing your server's IP address directly (if your hosting allows it) or temporarily pausing Cloudflare to rule it out.
Your web server (Nginx, Apache) is running and accepting connections, but the application behind it — PHP, Node.js, Python — has crashed or is returning errors.
From the outside, this can look like the site is "up" (the server responds) but "broken" (it returns a 500-level error or a blank page).
Check your application logs:
sudo tail -f /var/log/nginx/error.log
sudo journalctl -u your-app-service -f
Restart your application process if it's crashed.
If your SSL certificate has expired or is misconfigured, modern browsers will refuse to load the site and show a security warning instead.
Your server is technically up — it's just serving a certificate that browsers won't accept. Check your certificate expiry date and whether the certificate matches your domain. SSL monitoring can alert you before this becomes a problem.
Sometimes the problem is entirely on the client side. A corrupted cache entry can prevent a specific browser or device from loading a site that works fine everywhere else.
Try:
sudo dscacheutil -flushcache on macOS, ipconfig /flushdns on WindowsIf other devices can load the site fine, the problem is local to that browser or machine.
A server-level firewall might be blocking port 80 or 443 for web traffic while still responding to ICMP ping requests. This means the server "pings" as up but can't actually serve web pages.
sudo ufw status
sudo ss -tlnp | grep -E ':80|:443'
Make sure port 80 and 443 are open and that your web server is actively listening on them.
The server is up but has run out of memory, file descriptors, or database connections. It's technically alive but can't handle new requests.
Check:
free -h # Memory
df -h # Disk space
ulimit -n # Open file limit
A server with full disk space is a common culprit — many Linux systems refuse to write logs or process requests when the disk is 100% full.
Work through this checklist:
curl http://yourdomain.com from the server itself work? → If no, app-layer issuedig yourdomain.com return your correct IP? → If no, DNS issueThe fact that your basic ping check said "up" while your site wasn't loading highlights a key limitation of simple monitors. A proper website monitoring setup checks for an actual valid HTTP response — not just a network ping.
Domain Monitor checks your site returns a real response code, monitors SSL expiry, and can alert you via email, SMS, or Slack if anything is wrong.
Generative AI creates new content — text, images, code, and more. This guide explains how it works, what tools are available, and where it's genuinely useful versus overhyped.
Read moreCursor AI is an AI-powered code editor built on VS Code. Learn what it does, how it works, and whether it's the right tool for your development workflow.
Read moreClaude Opus is Anthropic's most capable AI model, built for complex reasoning and demanding tasks. Learn what it does, how it compares, and when to use it.
Read moreLooking to monitor your website and domains? Join our platform and start today.