
If you are not able to delete all past orders, this method is not suitable. You will need to use the WebToffee user import/export plugin, and ensure there are no ID mismatches on users/orders. See this guide.
If you are migrating to a new server:
- Ensure Cloudflare is active on old site and make sure we have access (this negates any downtime due to DNS propagation).
- Update the domain on the new Cloudways application. If you need to access the new site before it's live, add the server's IP to your hosts file.
If you are cloning the site on the same server:
- Clone the new app to the destination server.

If you are migrating a site with a large database you should always clone to a new server. When you remove the domain name from the old app, Cloudways will do a massive search/replace on the old app's database to replace the domain name with the Cloudways temporary domain name. We don't want this as it can take several hours to complete. To prevent downtime, ensure Cloudflare is active on the old site before migrating to a new server.
Performing the migration:
- Enable maintenance mode on both sites to ensure data integrity. Double check no orders are pending on the old site. If there are, wait for these to complete.
- Backup, backup, backup. You can't ever have too many backups! I highly recommend backing up both sites at this stage and then again at all key stages ahead (e.g. before importing users, before importing products, etc.).
- Delete any test orders from the new site.
- Disable emails via Disable Emails plugin on both sites (in case the migration somehow triggers WooCommerce customer emails, etc).
- Optional: Export any products via WooCommerce. Include all meta in the export.
- Optional: Export any CPTs via the WP All Export plugin (e.g. Winners posts, Past Draws, etc.).
- Export the entire users and user_meta tables from the old database, drop those tables in the new database, then import the old tables into the new database.
- Optional: Migrate any other essential tables added via 3rd party plugins (e.g. points system). You will need to rely on experience to determine what tables are required or not.
- Optional: Copy over any 3rd party plugins and their settings, if not done already (e.g. payment gateways, marketing plugins, etc).
- Optional: Import any products exported in Step 7 above. Use the default WooCommerce product importer.
- Optional: Import any CPTs exported in Step 8 above. Use the WP All Import plugin.
- Triple check all settings (WP, WC, cache, Cloudflare, Cloudways, etc)
- Make the new site live.
- If you are migrating to a new server, update DNS A records on Cloudflare to point at new server IP. The change should be instant.
- If you are migrating to a cloned app on the same server, remove the domain name from the old app and add it to the new app. Once both these actions are complete, the site should be live.
- Backup the new site.
- Disable maintenance mode on the new site only.
- Clear all caches.
- Optional: If you are migrating a site with a large database to a new server, at this point you will have two servers, one with the old site and one with the new site. Ideally we want to keep the old site in case we need it, but we don't want to pay for two large servers.
- On the old server, remove the domain name. This will begin the search/replace (may take several hours).
- Once the search/replace is complete, clone the app on the old server over to the new server.
- Confirm you can access the old site on the new server then disable access to the old app via Application Settings.
- Delete the old server.