You just completed a cPanel server migration. The transfer tool finished without errors, you pointed DNS to the new server, and then... the website won't load. This is one of the most stressful situations in server administration. Fortunately, each cause has a clear fix. This guide covers the seven most common reasons a website stops loading after a cPanel migration and gives you the exact commands to diagnose and resolve each one.
💡 None of these worked? Skip the guesswork.
Get Expert Help →Step 1: Confirm the Website Is Resolving to the New Server
Before troubleshooting the web server itself, verify that DNS is actually pointing to the new server. Until DNS fully propagates, some visitors (and you) may still be hitting the old server — giving the false impression that the new server is broken.
dig +short yourdomain.com A
# Or check from Google's DNS specifically:
dig @8.8.8.8 +short yourdomain.com A
Compare this output to your new server's IP address. If it still shows the old IP, DNS has not propagated yet. Typical propagation takes 1–48 hours depending on your TTL setting.
To test the website on the new server before DNS propagates, add a temporary entry to your local /etc/hosts file (Linux/Mac) or C:\Windows\System32\drivers\etc\hosts (Windows):
NEW_SERVER_IP yourdomain.com www.yourdomain.com
After saving, reload your browser. If the website loads correctly, the new server is fine and DNS is the only remaining issue.
- WordPress:
/home/USERNAME/public_html/wp-config.php - Joomla:
/home/USERNAME/public_html/configuration.php - Magento:
/home/USERNAME/public_html/app/etc/env.php - Custom PHP: search for
define('DB_HOST'or$db_host
Log into the new server's cPanel > MySQL Databases. Check:
- Database name (may have been prefixed with the cPanel username on transfer)
- Database username
- Ensure the user has ALL PRIVILEGES on the database
mysql -u DB_USERNAME -p DB_NAME -h localhost
If this fails, reset the database password in cPanel > MySQL Databases > Change Password, then update wp-config.php accordingly.
Root Cause 5: PHP Version Mismatch
The old server may have been running PHP 7.4 while the new server defaults to PHP 8.1. Some older themes, plugins, or custom code is not compatible with newer PHP versions, causing fatal errors that prevent the site from loading.
# Check current PHP version
php -v
# Check error log for PHP fatal errors
grep -i "Fatal error\|PHP Parse error" /home/USERNAME/public_html/error_log | tail -20
grep -i "Fatal error\|PHP Parse error" /usr/local/apache/logs/error_log | tail -20
To fix this, log into WHM > MultiPHP Manager and set the PHP version for the affected domain to match what was running on the old server. Alternatively, update the site's code to be PHP 8.x compatible.
Root Cause 6: SSL Certificate Not Installed or Misconfigured
After migration, the SSL certificate from the old server is not automatically active on the new one. If visitors go to https:// and the certificate is missing, they get a browser security warning — effectively making the site appear broken.
# Check if SSL is installed for the domain in WHM
/usr/local/cpanel/bin/ssl-info yourdomain.com
# Issue a new Let's Encrypt certificate via AutoSSL
/usr/local/cpanel/bin/autossl_check --user=USERNAME
Alternatively, log into WHM > SSL/TLS > Manage AutoSSL and run AutoSSL for the affected account.
Root Cause 7: .htaccess File Causing Redirect Loops or 500 Errors
Custom rewrite rules in .htaccess sometimes break on a new server if the Apache configuration differs from the old one — particularly if mod_rewrite is not enabled or the AllowOverride directive is set differently.
# Check if mod_rewrite is enabled
httpd -M | grep rewrite
# Temporarily rename .htaccess to test
mv /home/USERNAME/public_html/.htaccess /home/USERNAME/public_html/.htaccess.bak
If the site loads after renaming .htaccess, the file contains rules that need updating. For WordPress, regenerating the .htaccess from Settings > Permalinks resolves most rewrite issues.
Post-Migration Verification Checklist
Once you have resolved the immediate loading issue, run through this checklist to confirm the migration is fully complete:
- Website loads correctly at
https://yourdomain.com - SSL certificate is valid (green padlock in browser)
- Email sending and receiving works from the new server
- Database queries return correct data (log in and check a dynamic page)
- Form submissions and file uploads work correctly
- DNS has fully propagated (check with
dig @8.8.8.8 yourdomain.com A) - Old server is kept online for at least 72 hours as a fallback
Server migrations involve dozens of interdependent components. If you're consistently running into post-migration issues across client sites, CloudHouse's server migration service handles the transfer, DNS cutover, and post-migration verification as a managed process.
