ThisCalculator

Everyday

How to Move a WordPress Site from WP Engine

Updated · Standard formula, shown below

How to Move a WordPress Site from WP Engine

Moving your WordPress site from WP Engine to a new host can feel daunting, but with a clear plan, you can do it without losing content, settings, or search rankings. This guide walks you through the entire process—from backing up your site to updating DNS—so your new host can serve your visitors with minimal downtime.

What You’ll Need

  • Access to your WP Engine dashboard (or at least SFTP credentials and phpMyAdmin).
  • Login details for your domain registrar (where you bought your domain, e.g., GoDaddy, Namecheap).
  • A new hosting account with a control panel (cPanel, Plesk, or similar) that provides FTP/SFTP access and a database manager.
  • A temporary URL or IP address from your new host to preview the site before switching DNS.
  • An FTP client (like FileZilla) and a text editor (like Notepad++) for editing files.

Step-by-Step

  1. Back up your WordPress files and database from WP Engine.
    In your WP Engine dashboard, go to the Backups tab. Click Create Backup and choose “Full Backup� (files + database). Download the backup to your computer. Alternatively, use SFTP to download the entire wp-content directory and use phpMyAdmin to export the database. Make sure the backup is recent.
  2. Prepare your new host.
    Log into your new hosting control panel. Create an FTP/SFTP account and a MySQL database. Note the database name, username, password, and host (often localhost). If your new host offers a “one-click WordPress installer,� you can use it to create a fresh installation—this gives you a working database and file structure to replace later.
  3. Upload your WordPress files to the new host.
    Using an FTP client, connect to your new host and upload the contents of your backup’s wp-content folder (or the entire WordPress root if you have it). If you used a one-click installer, you can simply overwrite the wp-content folder with your backup. Ensure all files are uploaded—do not skip hidden files like .htaccess.
  4. Import your database.
    In your new host’s phpMyAdmin, select your new database and click Import. Choose the SQL file from your WP Engine backup and run it. If the file is too large, split it using a tool like BigDump or use the command line via SSH if available.
  5. Update wp-config.php with new database credentials.
    Locate wp-config.php in your WordPress root. Edit it to change DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST to match your new host’s settings. Save and upload the file back.
  6. Adjust the site URL in the database (if needed).
    If your new host uses a temporary URL (e.g., 123.45.67.89/~user), you need to update the siteurl and home options in the wp_options table. In phpMyAdmin, run SQL: UPDATE wp_options SET option_value = 'http://temporary-url.com' WHERE option_name IN ('siteurl','home'); Replace the URL with your temporary one. If you are moving directly to the final domain (and have already pointed DNS), you can skip this step.
  7. Test the site on the temporary URL.
    Visit the temporary URL in a browser. Log in to the WordPress admin (add /wp-admin to the URL). If you see a “database connection� error, double-check your credentials. If you see a “failed to open stream� error, ensure all files are uploaded correctly. Fix any issues before proceeding.
  8. Update DNS to point to the new host.
    At your domain registrar, change the nameservers to those provided by your new host (or update the A record to the new server IP). DNS propagation can take up to 48 hours, but often less. Do not cancel your WP Engine account until propagation is complete.
  9. Perform a final test and switch over.
    Once DNS has propagated, visit your domain. Log in to WordPress, check your pages, plugins, and images. If everything works, you can cancel your WP Engine account. If you used a temporary URL, you may need to use a plugin like “Better Search Replace� to update any hard-coded URLs in your content from the old domain to the new one.

Common Mistakes

  • Forgetting to update wp-config.php – This is the #1 cause of “Error establishing a database connection.â€�
  • Uploading only part of the files – Missing theme or plugin files cause broken pages. Always upload the entire wp-content folder.
  • Not updating the site URL in the database – If you skip this and your temporary URL is different, your admin login may redirect to the old domain.
  • Switching DNS before testing – If you point DNS to an incomplete site, visitors will see errors. Test on the temporary URL first.
  • Deleting the WP Engine account too soon – Keep it active until DNS propagation is complete and you’ve verified everything works.

Tips

  • Use a migration plugin – Plugins like All-in-One WP Migration or Duplicator can automate file and database transfer. They often handle URL replacements for you.
  • Check for hard-coded URLs – Use a search-replace tool (or plugin) to replace olddomain.com with newdomain.com in the database, not just the options table.
  • Keep a copy of the backup – Store the backup file in a safe place (cloud storage, external drive) until you are 100% sure the new site works.
  • Test all forms and functionality – Contact forms, e-commerce carts, and membership plugins often depend on absolute URLs. Test them after migration.
  • Update your permalinks – Go to Settings > Permalinks and click “Save Changesâ€� to flush the rewrite rules on the new server.

Troubleshooting

  • “Error establishing a database connectionâ€� – Check wp-config.php for correct database name, user, password, and host. Also confirm the database exists and the user has all privileges.
  • “Failed to open stream: No such file or directoryâ€� – This usually means a file is missing. Re-upload the entire wp-content folder and ensure you didn’t skip any files.
  • Login redirects to old domain – The siteurl and home options are still set to the old domain. Update them via phpMyAdmin or use a plugin like “WP Migrate DBâ€� to fix.
  • White screen of death (blank page) – Enable WP_DEBUG in wp-config.php to see the error. Often it’s a plugin conflict or a PHP version issue. Deactivate all plugins by renaming the plugins folder via FTP, then reactivate one by one.
  • Images or styles missing – This is usually a URL issue. Use a search-replace plugin to update all references from the old domain to the new one.
  • SSL certificate issues – If you had SSL on WP Engine, you need to install a new SSL certificate on your new host (many hosts offer free Let’s Encrypt). After installing, update the site URL to https:// and force HTTPS via a plugin or .htaccess.

Frequently Asked Questions

Do I need to cancel my WP Engine account before moving?

No. Keep your WP Engine account active until the new site is fully working and DNS has propagated. This prevents downtime if something goes wrong.

Can I use a plugin to move my site?

Yes. Plugins like All-in-One WP Migration or Duplicator can create a package that includes files and database, and then you can import it into the new host. They simplify the process, especially for beginners.

How long does DNS propagation take?

It can take from a few minutes up to 48 hours, though typically it’s under 24 hours. During this time, some visitors may still see the old site.

What if my new host doesn’t have phpMyAdmin?

Most hosts do, but if not, you can use a database management tool like Adminer or import via command line (SSH). Check with your host’s support for alternatives.

Will my SEO rankings be affected?

If you keep the same domain and use proper redirects (e.g., from HTTP to HTTPS, or from old URLs to new), your rankings should not be affected. Ensure you update your sitemap and submit it to Google Search Console.

Can I move only the database and not the files?

Technically yes, but it’s not recommended because your themes and plugins are stored in files. You need both files and database for a complete site.

Related

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.