Moving a WordPress site to a new hosting provider should be straightforward. In practice, it rarely is. Even when the migration itself goes smoothly, there’s a whole category of issues that tend to surface once the site is live on its new server. We see them regularly because site migrations are one of the most common reasons businesses contact us for help.

Here are the most common post-migration errors and how we approach fixing them.

Mixed Content Warnings (HTTP/HTTPS)

After migrating, your site may display a “Not Secure” warning in the browser bar, or some images, styles, and scripts may fail to load. This happens because your site’s content still references the old URL using HTTP instead of HTTPS, or vice versa.

Why it happens: WordPress stores full URLs in the database. If your old site used http:// and your new host uses https:// (or a different domain entirely), those old URLs are still embedded in your content, widgets, and theme settings.

How we fix it: We run a search-and-replace operation on the database to update all old URLs to the new ones. This must be done carefully using a serialisation-safe tool, because WordPress stores some data in serialised arrays. A naive find-and-replace will corrupt that data. We use WP-CLI or a trusted plugin like Better Search Replace to handle this safely.

Broken Internal Links

You click on a link within your site and get a 404 error. The page exists, but WordPress can’t find it. This is one of the most common post-migration issues and usually has a simple cause.

Why it happens: WordPress uses “pretty permalinks” that depend on server rewrite rules, typically defined in the .htaccess file for Apache servers or the nginx configuration. During migration, these rules may not transfer correctly, or the new server may use a different web server (Apache vs nginx) with different configuration requirements.

How we fix it: First, we go to Settings, then Permalinks in the WordPress dashboard and simply click Save Changes. This regenerates the rewrite rules. If that doesn’t work, we check the server configuration directly. For Apache, we ensure the .htaccess file is present and correct. For nginx, we verify the server block includes the correct rewrite rules for WordPress.

Database Connection Errors

The dreaded “Error Establishing a Database Connection” message is especially common after migrations because the database connection details almost always change between hosts.

Why it happens: Your wp-config.php file contains the database name, username, password, and host. These credentials are specific to your hosting environment. When you move to a new host, you need a new database with new credentials, but the wp-config.php file may still contain the old ones.

How we fix it: We verify the database credentials in wp-config.php match what’s actually configured on the new server. We check the database host, which is often “localhost” but can be a specific hostname on some providers. We also verify that the database user has the correct permissions to access the database.

Wrong File Permissions

After migration, you might find that you can’t upload images, install plugins, or update WordPress. Or worse, your site might display errors about not being able to write to certain directories.

Why it happens: Different hosting environments have different user and group configurations. When files are transferred, their ownership and permissions may not match what the new server expects. The web server process needs to be able to read (and in some cases write to) your WordPress files.

How we fix it: We set the correct file permissions: 644 for files and 755 for directories as a standard baseline. We ensure the wp-content directory and its subdirectories are writable by the web server. We also verify file ownership matches the web server’s user, which varies by hosting environment.

Missing Files and Broken Images

Pages load but images are missing. Downloads don’t work. Custom fonts don’t display. These are signs that not all files made it across during the migration.

Why it happens: The wp-content/uploads folder can be enormous on established sites. Migration tools sometimes time out or skip large files. Hidden files (those starting with a dot) may be excluded by default. If you used FTP to transfer files, connections can drop mid-transfer without clear warning.

How we fix it: We compare the uploads directory on the old and new servers to identify what’s missing. We then transfer the missing files and verify they’re accessible. We also check that the upload directory path in WordPress settings matches the actual directory structure on the new server.

DNS Propagation Delays

You’ve pointed your domain to the new server, but some visitors still see the old site while others see the new one. Or your email stops working. Or you see the new site on your phone but the old one on your computer.

Why it happens: When you change your domain’s DNS records, the change doesn’t happen instantly. Different internet service providers and different regions cache DNS records for varying lengths of time. Full propagation can take anywhere from a few hours to 48 hours.

How we fix it: Patience is part of the solution, but we also minimise the disruption by lowering the DNS TTL (time to live) before the migration. We verify the new DNS records are correct and monitor propagation using DNS checking tools. We also ensure both old and new servers are running the site correctly during the transition period.

Email Not Working

After migration, contact form submissions stop arriving, or you can’t send email from WordPress at all. This catches many businesses off guard.

Why it happens: If your email was configured through your old hosting provider, your MX records may have changed. Additionally, many hosting providers block outgoing email by default to prevent spam. Your old server’s SMTP settings won’t work on the new server.

How we fix it: We verify that MX records are pointing to the correct mail server. We configure a proper SMTP plugin like WP Mail SMTP to route WordPress emails through a reliable email service. We test both sending and receiving to make sure everything works before considering the migration complete.

Your Migration Checklist

Planning a migration? Use this checklist to avoid the common pitfalls:

  • Take a full backup of both files and database before starting
  • Lower your DNS TTL to 300 seconds at least 24 hours before migration
  • Update wp-config.php with new database credentials
  • Run a search-and-replace for old URLs in the database
  • Reset permalinks by saving them in WordPress settings
  • Check file permissions and ownership
  • Verify all images and uploads transferred correctly
  • Test all forms, including email delivery
  • Check for mixed content warnings
  • Monitor the site closely for the first 48 hours

If you’re planning a migration and want it done right the first time, or if you’ve already migrated and things aren’t working, get in touch. We’ll make sure your site lands safely on its new home.


Leave a Reply

Your email address will not be published. Required fields are marked *