The Plesk Migrator extension copies websites, mail, databases, DNS zones and SSL certificates from a cPanel server to Plesk over SSH. You run it from the Plesk side, point it at the cPanel source, pick the domains you want, and let it pull the content across before you change any DNS records.
This guide assumes Plesk is already installed on your Linux VPS and that you have root access to both servers. The migration itself is read-only on the cPanel side, so you can run it while the old server is still live.
Before you start
You need:
- A Linux VPS with Plesk installed and a valid Plesk licence (buy the licence from the Plesk vendor and activate it in Plesk).
- Root SSH access to the cPanel source server, or a cPanel account with root-level privileges.
- The source server's public IP, SSH port and root password (or an SSH key).
- Enough free disk space on the Plesk server for all sites, databases and mail. Check first with
df -handfree -m, or see check your VPS CPU, RAM and disk. - A maintenance window if the sites are busy. Mail and databases change constantly, so plan a final sync after the first pass.
Warning: Do not change DNS for any domain until you have tested it on the Plesk server. Pointing DNS early sends live traffic to a half-migrated site.
Install the Plesk Migrator extension
Log in to Plesk as admin, then go to Extensions and search for Plesk Migrator. Install it. On current Plesk versions the tool also appears under Tools & Settings > Migration & Transfer Manager.
You can install it from the command line instead:
plesk bin extension --install migrator
plesk bin extension --list | grep migratorThe second command should list the extension as enabled. If the install fails, check that your Plesk licence is active and that the server can reach the Plesk extension catalogue.
Prepare the cPanel source server
The Migrator connects over SSH and uses cPanel's own APIs, so the source must accept that connection.
- Confirm the cPanel version and OS:
cat /etc/os-release
/usr/local/cpanel/cpanel -V- Make sure SSH is running and that root login is allowed, or create a dedicated user with sudo. Test from the Plesk server:
ssh -p 22 root@203.0.113.10- Whitelist the Plesk server's IP in cPHulk so repeated API calls are not treated as a brute-force attack. In WHM, open Security Center > cPHulk Brute Force Protection > Whitelist and add the Plesk IP.
- Note the cPanel accounts you want to move. You do not have to migrate everything at once — smaller batches are easier to verify and less likely to time out.
Tip: If the cPanel server uses a non-standard SSH port, note it now. You will enter it in the Migrator's connection screen.
Start the migration
In Plesk, open Tools & Settings > Migration & Transfer Manager (or the Plesk Migrator extension page) and choose Start a new migration.
- Select cPanel as the source type.
- Enter the source server's IP address, for example
203.0.113.10, and the SSH port. - Choose the authentication method: root password or SSH key. For a key, paste the private key and confirm the passphrase if there is one.
- Click Next. The Migrator connects and lists the cPanel accounts it can see.
- Select the domains, mail accounts, databases, DNS zones, SSL certificates and cron jobs you want to copy. Leave anything you plan to rebuild by hand unchecked.
- Choose whether to copy DNS zones. If you manage DNS elsewhere, skip this and recreate records manually.
- Start the migration and watch the progress screen. Large mailboxes and big databases take the longest.
Warning: If a subscription with the same domain already exists in Plesk, the Migrator may overwrite it. Remove or rename the empty subscription first, or migrate to a different domain name and switch later.
Migration logs are written on the Plesk server under /var/log/plesk/PMM/. If a step fails, open the newest log there and read the last error before retrying.
Check it works
Test each migrated site on the Plesk server before touching DNS. From your own machine, send a request with the correct Host header:
curl -I -H "Host: example.com" http://203.0.113.10
curl -I -H "Host: example.com" https://203.0.113.10 --insecureThen check the pieces that often break:
- Files: confirm the document root contains the expected files and that permissions match the original.
- Databases: open the database in Plesk and check that tables and row counts look right. Update any hard-coded connection strings if the database name or user changed.
- Mail: send a test message to and from a migrated mailbox. Check that mailboxes, forwarders and autoresponders exist.
- SSL: confirm the certificate is installed and the site loads over HTTPS without warnings.
- PHP: compare the PHP version and handler with the cPanel server. If the site needs different limits, set them in Plesk's PHP settings.
Once everything passes, lower the TTL on the affected DNS records, wait for the old TTL to expire, then repoint the A and AAAA records to the Plesk server's IP. Keep the cPanel server running until mail and traffic have settled.
Troubleshooting
- "Connection refused" or "Authentication failed" — SSH is blocked, the port is wrong, or root login is disabled. Test with
ssh -p 22 root@203.0.113.10from the Plesk server and fix the source's SSH configuration first. - The migration stops partway with a timeout — cPHulk has blocked the Plesk IP, or the batch is too large. Whitelist the IP and migrate fewer domains per run.
- Database errors during transfer — the MySQL or MariaDB versions differ between servers. Check both with
mysql --versionand migrate those databases manually withmysqldumpif the automatic copy fails. - Site loads but shows a database connection error — the database name, user or password changed during migration. Update the site's config file with the new credentials shown in Plesk.
- Mail is missing or duplicated — mail was still being delivered to the old server during the copy. Run a second migration pass for mail only after you stop the old mail service, or sync mailboxes manually.
Next steps
- Install Plesk on a Linux VPS if you are building the target server from scratch.
- Create a domain, subscription and service plan in Plesk to organise the migrated sites.
- Install and manage WordPress with the Plesk WordPress Toolkit for WordPress sites that need updates after the move.
- Connect to your Linux VPS with SSH if you need a refresher on the command line.
