Migration software
WP-CLI
Suggested in 4 of our migration playbooks, mainly for Websites and ecommerce and Email and domains. Here is what it handles, how it treats key settings, and other tools for the same jobs.
What it handles
The limits of the built-in tools that WP-CLI gets around, as covered in our playbooks.
Change your website domain without losing SEO
- Find hard-coded URLs outside the websiteSearches and replaces strings across database tables, handles PHP serialised data, and has --dry-run to report what would change before saving.
- Redirects do not change the old domain where it is stored, and payment webhooks, sign-in callbacks and form posts often do not follow them.Rewrites every copy of the old domain in a WordPress database, including serialised plugin settings, with a --dry-run report first.
cPanel hosting migration
- Expect database names and paths to changeReplaces the old path with the new one across the database and handles PHP serialised data; run with --dry-run first to see the count per table.
- If the username changes, databases are renamed and absolute paths such as /home/olduser/ break.Replaces the old path across a WordPress database, including serialised data. Run with --dry-run first.
Wix and Squarespace to WordPress
- Make sure images are copied, not linkedCreates Media Library attachments from URLs, downloading each file first, and can attach it to a post or set it as the featured image.
- Make sure images are copied, not linkedReplaces old image URLs in posts and settings across the database, including serialised data, with a --dry-run report first.
- Importing the Squarespace file into self-hosted WordPress may only link to images on Squarespace, and those links break when you cancel the site.Downloads each image from its URL into the Media Library.
- Importing the Squarespace file into self-hosted WordPress may only link to images on Squarespace, and those links break when you cancel the site.Swaps old image URLs for the new ones across the database, with a --dry-run report first.
How to migrate a WordPress site to a new host without downtime
- Migration plugin imports go through the new host's upload limit and PHP time limits, so large sites can fail part-way.wp db export dumps the database with the wp-config.php credentials, and can skip large log tables.
How it handles key settings
From the settings checklists in our playbooks: what WP-CLI carries across.
| Setting | How it handles it | Playbook |
|---|---|---|
| Links stored in your site and services | Rewrites every copy of the old domain in a WordPress database, including serialised plugin settings, with a --dry-run report first. It does not reach links hard-coded in theme files. | Change your website domain without losing SEO |
| Username, database names and paths | Replaces the old path across a WordPress database, including serialised data. Run with --dry-run first. | cPanel hosting migration |
| Images and other media | Downloads each image from its URL into the Media Library. | Wix and Squarespace to WordPress |
| Images and other media | Swaps old image URLs for the new ones across the database, with a --dry-run report first. | Wix and Squarespace to WordPress |
| Copy method and site size | wp db export dumps the database with the wp-config.php credentials, and can skip large log tables. | How to migrate a WordPress site to a new host without downtime |
| URL replacement | wp search-replace handles serialised data. Use --skip-columns=guid and a --dry-run first. | How to migrate a WordPress site to a new host without downtime |
Tools for the same jobs
Other tools our playbooks suggest for the same migrations.
We write these notes from the vendor documentation cited in each playbook. Tools cannot pay to be included or to change them. Check the vendor's current documentation and terms before you buy.