Site Can't Be Reached After Migration? Check DNS First

Server & Cloud Beginner 👁 11 views 📅 Jun 21, 2026

Your site shows 'This site can't be reached' after moving it. Most times it's DNS not updated. Check name servers, cached records, and server IP.

1. DNS Still Pointing to Old Server

This is the #1 reason your site shows 'This site can't be reached' after a migration. Most people forget that DNS records don't update instantly. When you move your site to a new host, you need to update the DNS records—usually the A record (points domain to IP) or name servers (if you changed hosting providers).

Had a client last month who spent 3 hours rebuilding their WordPress site because they thought the migration broke it. Turned out the old hosting had a cached DNS that still pointed to the old server. The new server was fine—just nobody told the internet where to find it.

Check your DNS using a tool like whatsmydns.net or dig from the command line. Run:

dig yourdomain.com +short

If the IP doesn't match your new server's public IP, that's your problem. Also check name servers:

dig yourdomain.com NS +short

If the name servers are still pointing to your old host, you need to change them at your domain registrar (where you bought the domain, not your hosting). This can take up to 48 hours, but often updates in 1-4 hours.

Make sure your new hosting's name servers are set correctly. Most hosts give you two name servers like ns1.newhost.com and ns2.newhost.com. Copy them exactly—no typos, no extra dots.

Quick fix: Update your A record or name servers at the registrar. Wait for propagation. Use a DNS checker to confirm.

2. Cached DNS on Your Computer or Router

Even if DNS is updated globally, your local machine might still have the old IP cached. This is super common on Windows and Mac. The browser shows 'This site can't be reached' because it's trying to hit the old server that's now offline.

To flush DNS on Windows, open Command Prompt as admin and run:

ipconfig /flushdns

On a Mac, open Terminal and run:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

On Chrome, you can also clear the browser's DNS cache by typing chrome://net-internals/#dns in the address bar and clicking 'Clear host cache'. Had a client whose site was working on their phone (cell network) but not on their laptop—turned out Chrome had cached the old DNS entry from 2 days ago.

Also check your router. Some routers cache DNS too. Reboot the router or log into it and clear the DNS cache if possible.

Quick fix: Flush DNS on your computer, clear browser cache, reboot router. Test from a different device or network.

3. Server Not Configured to Accept Domain Requests

DNS is pointing to the right IP, but the server itself doesn't know it should respond to requests for your domain. This happens when the new host hasn't added your domain to its web server configuration (Apache, Nginx, IIS).

On Apache or Nginx, the server needs a virtual host entry (vhost) that matches your domain. On IIS, it needs a site binding. If your server is a fresh install or a default configuration, it might only respond to the server's IP address, not your domain name.

Check this by trying to access your site via the server's IP address directly (if allowed). If the IP works but the domain doesn't, it's a server config issue. For example, on an Ubuntu server with Nginx, the config file at /etc/nginx/sites-available/yourdomain should have:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/yourdomain;
    ...
}

If you're using a control panel like cPanel or Plesk, make sure you've added the domain to the panel. Many panels auto-create vhosts, but you need to do it first. If you migrated manually via FTP, the domain might not be associated with the files yet.

Also check the server's firewall settings. Port 80 (HTTP) and 443 (HTTPS) must be open. On AWS, check the security group inbound rules. On a VPS, run:

sudo ufw status

Make sure both ports are allowed.

Quick fix: Add your domain to the server's web server config (vhost or binding). Open firewall ports. Test via IP first.

4. SSL Certificate Missing or Mismatched

If you forced HTTPS on the old server but the new server doesn't have a valid SSL certificate for your domain, you'll get 'This site can't be reached' or a similar error. Browsers now block connections to sites with broken SSL.

Check if you have an SSL certificate on the new server. If you're using Let's Encrypt, you might need to run Certbot again:

sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

Or on Apache:

sudo certbot --apache -d yourdomain.com -d www.yourdomain.com

If you have a paid certificate, reinstall it on the new server. Don't just copy the old certificate files—they might have different paths or be tied to the old server's IP.

Also check if your domain is redirected to https:// in the .htaccess or Nginx config. If the redirect exists but no SSL, it's a loop.

Quick fix: Install or renew SSL certificate. Remove HTTPS redirect temporarily if needed.

Quick-Reference Summary Table

CauseSymptomFix
DNS not updatedDomain resolves to old IPUpdate A record or name servers at registrar; wait for propagation
Local DNS cacheWorks on other devices but not yoursFlush DNS on computer and router; clear browser cache
Server not configuredIP works but domain doesn'tAdd domain to web server config; open firewall ports 80, 443
SSL certificate issueHTTPS fails but HTTP might workInstall or renew SSL; fix redirect loop

Was this solution helpful?