My Site Is Down — What to Do
Step-by-step troubleshooting when your website is unreachable.
My Site Is Down — What to Do
When your site goes down, every minute costs you traffic, revenue, and credibility. This guide walks you through a systematic approach to diagnose and fix the problem fast.
Step 1: Confirm It's Actually Down
Before panicking, check whether the issue is on your end or affects everyone.
Check from multiple locations:
curl -I https://example.com
If you get no response or a 5xx error, the site is likely down for everyone. If it loads fine, the problem might be your local network, DNS cache, or ISP.
Tip: Use a service like downforeveryoneorjustme.com or ask a colleague on a different network to confirm.
Check from a different DNS resolver:
nslookup example.com 8.8.8.8
nslookup example.com 1.1.1.1
If one resolver returns the IP and another doesn't, it's a DNS propagation issue.
Step 2: Check DNS Resolution
DNS problems are one of the most common causes of downtime.
dig example.com +short
dig example.com NS +short
What to look for: - No IP returned: DNS records are missing or nameservers are misconfigured - Wrong IP returned: DNS was changed (intentionally or not) - SERVFAIL response: the authoritative nameserver is down
If DNS is broken, log in to your registrar (OVH, Gandi, Namecheap) and verify the A record points to the correct server IP.
Step 3: Check the Server
If DNS resolves correctly, the server itself may be the problem. SSH into your server:
ssh user@your-server-ip
Check if the server is overloaded:
uptime
free -h
df -h
Look for high load averages, exhausted memory, or a full disk. A full disk is a silent killer — logs and database files grow over time.
Check if the web server is running:
# For nginx
sudo systemctl status nginx
# For Apache
sudo systemctl status apache2
If the service is stopped, restart it:
sudo systemctl restart nginx
Step 4: Check Application Logs
The web server might be running but your application is crashing.
# Nginx error log
tail -100 /var/log/nginx/error.log
# Application log (Rails example)
tail -100 /var/www/myapp/current/log/production.log
# PHP-FPM log
tail -100 /var/log/php-fpm/error.log
Common application-level causes: - Database connection refused (PostgreSQL/MySQL is down) - Out of memory (app workers killed by OOM) - Permission errors after a deploy - Missing environment variables
Step 5: Check the Firewall
Sometimes a firewall rule blocks HTTP/HTTPS traffic.
sudo ufw status
# or
sudo iptables -L -n
Make sure ports 80 and 443 are open. If you recently changed firewall rules, that's likely the culprit.
Step 6: Check SSL/TLS
If HTTPS fails but HTTP works, your SSL certificate may be expired or misconfigured.
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates
See our SSL Certificate Expired guide for detailed renewal steps.
When to Contact Your Hosting Provider
Contact your host immediately if:
- You cannot SSH into the server at all
- The server hardware has failed (no ping response)
- You see disk I/O errors in dmesg
- A DDoS attack is saturating your bandwidth
- The issue is on their infrastructure (shared hosting, managed platforms)
Warning: Don't wait hours hoping the problem fixes itself. If you can't resolve it within 15 minutes, escalate.
How SiteWatch Helps Prevent This
SiteWatch monitors your sites every minute and alerts you immediately when something goes wrong — often before your clients even notice.
- Uptime monitoring detects downtime within 60 seconds
- Transient protection avoids false alarms (2 consecutive failures before alerting)
- Real-time dashboard shows the status of your entire client portfolio at a glance
- Instant alerts notify you the moment a site goes down, so you can act before your client calls
The best outage is the one you fix before anyone else notices.