Skip to content

How to Migrate a WP Engine Site to InstaWP

You can migrate any WordPress site hosted on WP Engine into InstaWP using the AI-powered InstaMigrate tool — the same guided, no-SSH workflow used for every other host. There is just one WP Engine-specific wrinkle to know about, and this guide walks you through it.

The WP Engine limitation (why the standard flow stalls)

To connect and transfer a site, InstaMigrate needs a lightweight helper plugin — InstaMigrate — running on your source site. On most hosts, InstaWP installs this plugin automatically over the WordPress Application Password (REST API) connection you approve during the migration.

WP Engine's managed platform does not allow this automatic install. WP Engine restricts programmatic plugin installation over the REST API on its environments, so when you start a migration from a WP Engine source, the automatic "install the migration plugin" step fails and the migration is blocked before it can begin.

⚠️ This is a WP Engine platform restriction, not an error on your InstaWP account. It affects every tool that tries to install a plugin programmatically — not just InstaWP.

The fix, in one line

Install the InstaMigrate plugin on the source site yourself, right before you run the migration — then remove it as soon as the migration is done. Once the plugin is present, the Application-Password authorization and the transfer proceed exactly like a normal migration.

The easiest moment to do this is while you're already logged in to the source site's WordPress admin, because the migration makes you log in there anyway to approve the connection. Use WP Engine's magic login (the WP Admin / Log in to WordPress button in the User Portal) to get into wp-admin in one click, install the plugin, and carry straight on into the migration in the same session.

🔒 Install it at migration time, not in advance. InstaMigrate exposes REST API endpoints for database export/import and file transfer — that's how it moves your site. Leaving it installed and active on a live site after the migration is an unnecessary risk, which is why the plugin's own description says "REMOVE THIS PLUGIN AFTER MIGRATION." Install → migrate → delete, in one sitting.

Before you begin

  • An active InstaWP account.
  • WP Engine User Portal access to the site you want to move (the source) — for magic login into its WordPress admin.
  • WordPress administrator access to that same source site (to install the plugin and approve the connection).
  • Your source site should be running WordPress 5.0+ and PHP 7.4+.
  • ⚠️ Temporarily disable security / login-hardening plugins on the source site for the duration of the migration — see below.

⚠️ The destination is permanently overwritten with the source site. Always migrate into a site you are happy to replace — this cannot be undone.

Disable security plugins first

This is the single most common reason a migration fails to connect. Security and login-hardening plugins block the Application Passwords authorization that InstaMigrate depends on — by disabling Application Passwords outright, hiding the login page, or blocking the REST API.

Before you start, temporarily deactivate anything in that category on the source site — for example Wordfence, Solid Security, Sucuri, All-In-One WP Security, iThemes Security, Hide My WP Ghost, WPS Hide Login, or Admin and Site Enhancements (which has a "Disable Application Passwords" toggle). Complete the migration, then re-enable them.


Step-by-step

Step 1: Create your destination site on InstaWP

Log in to your InstaWP account and create the site you want to migrate into, choosing the plan that suits the site you're moving — size, traffic and the resources it needs. You can compare the tiers on the InstaWP pricing page.

This new site is the destination: everything on it is replaced by your WP Engine site, so create a fresh one rather than reusing a site you still need.

ℹ️ The InstaMigrate plugin does not create the destination site for you — you need an InstaWP site ready to migrate into. If you'd rather have InstaWP create the site as part of the transfer, use the Automated site import instead: Sites → Import Site → From a Live website → Automated (full walkthrough).

Step 2: Magic-log in to the source site from WP Engine

Sign in to the WP Engine User Portal at my.wpengine.com, open the site and environment (production, staging or development) you want to migrate, and use WP Engine's WP Admin button to log straight in to that site's WordPress admin — no separate WordPress password needed.

Step 3: Install and activate the InstaMigrate plugin

In the source site's WordPress admin, go to Plugins → Add New Plugin, search for InstaMigrate, and click Install Now.

WordPress Add Plugins screen — searching for InstaMigrate, with Install Now on the plugin card

When the install finishes the button becomes Activate — click it.

The InstaMigrate plugin card after installing, showing the Activate button

InstaMigrate now shows as active on your Plugins screen. Leave this browser tab logged in — you'll come back to it to approve the connection in Step 6.

InstaMigrate active on the WordPress Plugins screen

💡 If your environment doesn't let you install from Add New Plugin, install InstaMigrate the way WP Engine documents for manual installs — upload the unzipped instamigrate folder into wp-content/plugins/ over SFTP, or run wp plugin install instamigrate --activate over WP Engine's SSH Gateway — then activate it from Plugins. See How to Manage Plugins and Themes Manually.

Step 4: Open the InstaWP Migration Dashboard

Back in your InstaWP account, open the Migration Dashboard (sidebar → Migrations), make sure the engine selector is set to AI, and click New Migration.

The InstaWP Migration Dashboard — AI engine selected, with the New Migration button

Step 5: Connect the source and destination

The InstaMigrate tool opens. Fill in both fields and click Connect beside each one:

  • Source site URL — your WP Engine site (the full address, including https://)
  • Destination site URL — the InstaWP site you created in Step 1

The InstaMigrate connect screen — Source site URL and Destination site URL fields

If the tool asks about the migration plugin, click I have Installed the Plugin → — you already installed it in Step 3, so InstaWP skips the automatic install and moves straight to authorization.

Step 6: Authorize the connection

Click Open WordPress Authorization (or Yes, Continue to Login). You are taken to your WP Engine site's WordPress admin — the tab you're already logged in to from Step 2 — where WordPress shows the Authorize Application screen for "InstaWP Import". Click Yes, I approve of this connection.

WordPress Authorize Application screen — approve the InstaWP Import connection

This uses WordPress's built-in Application Passwords feature to create a secure, revocable connection. No login credentials are stored by InstaWP.

Step 7: Start the migration and let it run

Review the source-site analysis (WordPress and PHP versions), confirm the destination, and click Start Migration. InstaMigrate transfers your files, database, plugins and themes through its automated stages, showing live progress. You can safely leave the page — you'll be emailed when it finishes. When it's done you'll see Your Migration is Complete! with a Visit site button.

Step 8: Clean up — remove InstaMigrate from the source site

Once you've checked the migrated site, go back to the source site's Plugins screen and Deactivate then Delete InstaMigrate. Re-enable any security plugins you turned off in Before you begin.

Deactivate and delete InstaMigrate from the source site once the migration is complete

🎉 That's it — your WP Engine site is now running on InstaWP.


Troubleshooting (WP Engine-specific)

"Application Passwords" is missing on the Users → Profile screen, or the authorization fails immediately. A security/login-hardening plugin is almost always the cause — see Disable security plugins first. Temporarily deactivate it for the duration of the migration, complete the transfer, then re-enable it.

The authorization page redirects to a 404 or a decoy login. A "hide login" plugin is redirecting wp-admin/authorize-application.php. Temporarily turn off the hide-login feature (or log in at your custom login URL first), approve the connection, then re-enable it.

Authorization keeps failing even with the correct admin login. Some managed-host configurations strip the HTTP Authorization header, which Application Passwords rely on. If you've ruled out a hardening plugin and it still won't authorize, contact InstaWP support — we can confirm whether the header is reaching the site.

I installed the plugin but InstaWP still says it's missing. Check you installed it on the same environment you entered as the source URL (production, staging and development are separate installs on WP Engine), that InstaMigrate is activated, and then purge the environment's caches from the WP Engine User Portal before retrying.

The migration is stuck or taking a long time. Large sites take longer — allow up to ~20–30 minutes. If it appears stuck for over 30 minutes, cancel and restart, or contact InstaWP support.

WP Engine references

Docs are open — edit on GitHub. Built with VitePress.