The all-in-one CLI tool that works on any server. SSH, SFTP, or FTP — automatically uses the fastest method available.
$ curl -fsSL https://wp-migrate.dev/install.sh | bash
Different tools for shared hosting vs VPS. SSH-based tools don't work on shared hosting, FTP tools are slow on VPS.
Plugin-based solutions require working WordPress installations on both ends.
Downloading, uploading, and SQL editing is tedious and error-prone.
Simple find-replace destroys WordPress serialized arrays in the database.
Auto-detects server capabilities. Uses SSH + WP-CLI when available (fastest), falls back to FTP when needed.
Works even when destination is empty. Perfect for fresh hosting setups.
Automated file transfer, database export/import, and URL replacement.
Properly handles serialized PHP data, keeping your settings intact.
Create a YAML config with your FTP credentials and destination URL, or use the interactive wizard.
Execute wp-migrate and watch as files, database, and URLs are automatically transferred.
Test your migrated site before DNS cutover using the built-in verification tools.
# migration.yaml source: ftp_host: ftp.oldsite.com ftp_user: oldsite_user ftp_pass: ${SOURCE_FTP_PASS} # Use environment variables wp_path: /public_html destination: ftp_host: ftp.newsite.com ftp_user: newsite_user ftp_pass: ${DEST_FTP_PASS} wp_path: /public_html db_host: localhost db_name: newsite_wp db_user: newsite_dbuser db_pass: ${DEST_DB_PASS} new_url: https://newsite.com
Simple YAML configuration. Supports environment variables for security.
Automatically detects SSH, WP-CLI, and MySQL access. Uses the fastest method available on each server.
rsync file transfer with SSH (4-10x faster). WP-CLI database operations when available. Falls back to FTP when needed.
Verify your migration works before switching DNS using server_ip configuration.
Interactive wizard for beginners, YAML configuration for automation and scripting.
Full export/import with proper handling of serialized data and URL replacement.
Exponential backoff for unreliable connections. Robust error recovery built in.
See how wp-migrate stacks up against other WordPress migration tools.
| Feature | wp-migrate | Duplicator Pro | WP-CLI | All-in-One WP Migration |
|---|---|---|---|---|
| No SSH required | ✓ | ✓ | ✗ | ✓ |
| No WordPress admin needed | ✓ | ✗ | ✗ | ✗ |
| Works on empty destination | ✓ | ✗ | ✗ | ✗ |
| CLI / Terminal based | ✓ | ✗ | ✓ | ✗ |
| Handles serialized data | ✓ | ✓ | ✓ | ✓ |
| One-time pricing | ✓ ($39) | ✗ ($99/yr) | Free | ✗ ($69/yr) |
| Pre-DNS testing built-in | ✓ | ✗ | Manual | ✗ |
Start with 3 free migrations. No credit card required.
Any server with SSH, SFTP, FTPS, or FTP access. Works with shared hosting (GoDaddy, Bluehost, SiteGround), VPS providers (DigitalOcean, Linode), and dedicated servers. If you have SSH access, we'll use WP-CLI and rsync for maximum speed. No SSH? No problem — we fall back to FTP with a PHP agent.
Those plugins require WordPress admin access on both sites. WP-Migrate works from your terminal and can migrate to completely empty servers — no WordPress installation needed on the destination.
When SSH is available, WP-Migrate uses WP-CLI directly for database operations — no temporary agent needed. On shared hosting without SSH, we use a PHP agent instead. You get the best of both worlds automatically.
We properly unserialize PHP arrays, replace URLs, then reserialize with correct string lengths. This preserves theme settings, widget configurations, and plugin data that would break with simple find-replace.
Yes. The PHP agent uses a randomized filename, requires token authentication, auto-expires after 1 hour, and self-deletes on cleanup. We recommend SFTP for encrypted transfers.
Currently, WP-Migrate supports single-site WordPress installations. Multisite support is on our roadmap for a future release.
You'll need to purchase a license to continue. Your migration history is stored locally, and existing migrations aren't affected. It's a one-time purchase — no subscription.
Yes! Run wp-migrate deactivate on the old machine, then wp-migrate activate YOUR-KEY on the new one. Single licenses allow 2 activations, Agency licenses are unlimited.
Get started with 3 free migrations. No credit card required.
$ curl -fsSL https://wp-migrate.dev/install.sh | bash
Works on macOS & Linux