Skip to content

"My Website is Down" Checklist

A systematic guide to diagnose why a website isn't loading.


Quick Checks (30 seconds)

Before diving deep, rule out the obvious:

  • Try a different browser - Could be a browser cache issue
  • Try incognito/private mode - Rules out extensions and cache
  • Try on your phone (mobile data) - Rules out your network
  • Ask someone else to try - Confirms if it's just you
  • Check isitdownrightnow.com - Third-party confirmation

Step 1: Is It Just You?

Check from multiple locations

Down for Everyone or Just Me: - isitdownrightnow.com - downforeveryoneorjustme.com

If it's just you: - Clear browser cache - Flush DNS: ipconfig /flushdns (Windows) or sudo dscacheutil -flushcache (Mac) - Try a different network - Check if your IP is blocked


Step 2: What Error Are You Seeing?

Error Likely Cause See Section
"This site can't be reached" DNS or network issue DNS Checks
"Connection refused" Server not running Server Checks
"Connection timed out" Firewall or server overload Server Checks
"SSL certificate error" Certificate issue SSL Checks
500 Internal Server Error Application error Application Checks
502 Bad Gateway Backend server issue Application Checks
503 Service Unavailable Server overloaded Server Checks

Step 3: DNS Checks

DNS translates your domain name to an IP address. If this fails, the site won't load.

Check DNS Resolution

Using nslookup:

nslookup example.com

Using dig:

dig example.com

Expected: Should return an IP address

Common DNS Issues

Problem Symptom Solution
No DNS record "Server not found" Check DNS configuration
Wrong IP Wrong site loads Update A record
DNS not propagated Works for some, not others Wait (up to 48 hours)
DNS provider down No resolution Check provider status

Check DNS Propagation

Use whatsmydns.net to see if DNS has propagated globally.


Step 4: Server Checks

Can You Reach the Server?

Ping the server:

ping example.com

Check if port 80/443 is open:

# Check HTTP
nc -zv example.com 80

# Check HTTPS
nc -zv example.com 443

Or use an online port checker.

Server Status

  • Check hosting provider status page - Many providers have status.provider.com
  • Check server resources - CPU, memory, disk space
  • Check if services are running - Web server, database

Common Server Issues

Problem Symptom Solution
Server offline No response Contact hosting provider
Web server stopped Connection refused Restart Apache/Nginx
Server overloaded Timeouts, slow Scale up or optimise
Firewall blocking Connection refused Check firewall rules
Disk full Various errors Free up disk space

Step 5: SSL/HTTPS Checks

Check SSL Certificate

Using openssl:

openssl s_client -connect example.com:443 -servername example.com

Online checkers: - SSL Labs (ssllabs.com/ssltest) - SSL Shopper Checker

Common SSL Issues

Problem Error Message Solution
Certificate expired "Certificate has expired" Renew certificate
Wrong domain "Certificate name mismatch" Get cert for correct domain
Self-signed "Not trusted" Use a proper CA
Mixed content Padlock warning Fix HTTP resources on HTTPS page
Chain incomplete "Unable to verify" Install intermediate certificates

Quick SSL Fixes

Check expiry:

echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -dates

For Let's Encrypt, renew:

sudo certbot renew


Step 6: Application Checks

If the server responds but you see an error page.

Check Application Logs

Apache:

tail -f /var/log/apache2/error.log

Nginx:

tail -f /var/log/nginx/error.log

Application logs: Check your app's log directory

Common Application Issues

Problem Symptom Solution
Database down 500 error Restart database
Out of memory 500/502 error Restart app, add memory
Code error 500 error Check logs, fix code
Permissions 403/500 error Fix file permissions
Missing files 404/500 error Check deployment

Database Checks

MySQL:

sudo systemctl status mysql

PostgreSQL:

sudo systemctl status postgresql


Step 7: Quick Fixes to Try

Restart Services

# Restart web server
sudo systemctl restart nginx
# or
sudo systemctl restart apache2

# Restart application
sudo systemctl restart your-app

# Restart database
sudo systemctl restart mysql

Clear Caches

WordPress: - Clear cache plugin (W3 Total Cache, WP Super Cache, etc.) - Clear object cache

Cloudflare: - Dashboard → Caching → Purge Everything

Server-side:

# Clear PHP opcache (restart PHP)
sudo systemctl restart php-fpm


Step 8: Still Down?

Gather Information

Before contacting support, collect:

  • Exact error message
  • URL that's failing
  • When it started
  • What changed recently (deployments, DNS changes, etc.)
  • Screenshots
  • Any relevant logs

Contact

  • Hosting provider - Server issues, network issues
  • Domain registrar - DNS configuration issues
  • Your developer - Application issues
  • CDN provider - If using Cloudflare, etc.

Prevention

Monitoring

Set up monitoring to catch issues early:

  • Uptime monitoring - UptimeRobot, Pingdom
  • SSL monitoring - Get alerts before certificates expire
  • Server monitoring - CPU, memory, disk alerts

Backups

Ensure you have:

  • Regular automated backups
  • Tested restore procedure
  • Off-site backup copies

Documentation

Keep records of:

  • Server access details
  • DNS configuration
  • SSL certificate renewal process
  • Contact information for all providers