Short answer: To move from Plesk to cPanel, use WHM’s Transfer Tool on the new cPanel server: it lists Plesk as a remote server type and pulls accounts over SSH with root access. Going the other way, install the Plesk Migrator extension on the new Plesk server; it supports cPanel 11.5 and later as a source and migrates whole subscriptions. Neither tool copies everything, so check the exclusions below before you switch DNS.
Applies to Plesk to cPanel & WHM (Transfer Tool); cPanel 11.5+ to Plesk (Plesk Migrator)
Commands checked against the official documentation (linked below) on 6 October 2026; not yet run on our lab servers.
Table of Contents
Which tool for which direction
| Direction | Tool | Runs on | Unit of migration |
|---|---|---|---|
| Plesk to cPanel | WHM Transfer Tool (remote server type “Plesk”) | The new cPanel server | cPanel account per Plesk subscription |
| cPanel to Plesk | Plesk Migrator extension (GUI or plesk-migrator CLI) | The new Plesk server | Subscription with all its domains; service plans too |
| Either way, hands-off | cPanel’s free migration service (Plesk listed as a supported source) | cPanel staff | Per their scope |
Both tools work from the destination side and log in to the old server over SSH as root (or as a user who can become root). Make sure the old server allows that, at least from the new server’s IP, for the duration of the move.
Plesk to cPanel with the WHM Transfer Tool
Prepare the source Plesk server
- Root over SSH: the Transfer Tool needs root through SSH, either directly or by logging in as another user and escalating with
suorsudo. It connects on port 22 by default. - Forwarding domains: cPanel’s docs say Plesk domains set up as forwarding (no hosting) must be converted to physical hosting before transfer if they carry mail.
- Mail addresses with a plus sign and FTP accounts with an underscore are not transferred. List them now so you can recreate them by hand.
- Lower DNS TTLs on every zone a day before the move.
The conversion command for a forwarding domain, as given in the cPanel Transfer Tool documentation (replace the domain, login and password with your own):
/usr/local/psa/bin/domain --update example.com -hst_type phys -login "bob" -hosting true -ip 127.0.0.1 -passwd "use-a-strong-password"
This changes the domain on the live Plesk server. Take a Plesk backup of that subscription first and check the domain still resolves as expected afterwards.
Run the transfer
- In WHM on the new server open Transfers > Transfer Tool.
- Enter the Plesk server’s address and choose Plesk as the remote server type (Auto Detect also exists).
- Give root credentials, or a normal user plus the
su/sudoescalation method. - Start the scan of the remote server, then pick the accounts to copy. Start with one small test account.
- Leave the WHM tab alone until it finishes. cPanel warns against restarting services or running system updates during a transfer.
cPanel allows up to five transfer and restore threads at once and may lower that based on server load.
What does not come across from Plesk
cPanel’s migration page and Transfer Tool docs list these Plesk items as not migrated:
- SpamAssassin configuration and per-user allow and block lists.
- Custom DNS zone files: zones are rebuilt from cPanel’s templates, so re-add custom TXT, SRV and CNAME records.
- Email addresses that contain
+and FTP accounts with_in the name. - Roundcube data, feature lists, extra Horde address books, and mailing lists on addon domains.
- Two-factor authentication settings; users must enrol again.
- Custom software configuration on the Plesk side (nginx directives, PHP handler tweaks, Fail2Ban rules).
Known issue: Plesk 18.0.76 and empty account lists
In July 2026 several admins reported that the Transfer Tool analysed a Plesk Obsidian 18.0.76 server successfully but showed no accounts. cPanel confirmed it as case CPANEL-54330 and said the fix would ship in cPanel 136.0.28. If you hit an empty list, update cPanel to the current build on the destination before you dig further.
cPanel to Plesk with Plesk Migrator
Plesk Migrator is a Plesk extension. In the Plesk UI go to Extensions > Plesk Migrator > Start a New Migration, choose cPanel as the source, give the source IP, SSH port and root credentials, and pick a temporary folder. Plesk then fetches the list of accounts and you choose which subscriptions to move.
Rules worth knowing before you start:
- The smallest unit is a subscription with all its domains. You cannot pick a single addon domain.
- Reseller and customer accounts that own no domains are not migrated.
- Server-wide settings are not migrated: PHP handlers, Fail2Ban, ModSecurity and firewall rules must be set up on Plesk by hand.
- After the switch you can run a re-sync of content, and a mail-only sync to pick up mail that arrived on the old server after DNS changed.
Command-line migration
For many accounts the CLI is easier to repeat. The binary and config paths from the Plesk migration guide:
# binary
/usr/local/psa/admin/sbin/modules/panel-migrator/plesk-migrator
# sample configs to copy from
ls /usr/local/psa/admin/plib/modules/panel-migrator/backend/conf/samples/
# cpanel.simple.ini cpanel.ini ...
# your config
/usr/local/psa/var/modules/panel-migrator/conf/config.ini
The minimal cPanel config from the documentation; fill in the IPs (and use SSH keys rather than a password where you can):
[GLOBAL]
source-type: cpanel
source-servers: cpanel
target-type: plesk
[plesk]
ip:
os: unix
[cpanel]
ip:
os: unix
ssh-password:
Then run the documented steps in order:
M=/usr/local/psa/admin/sbin/modules/panel-migrator/plesk-migrator
$M generate-migration-list # writes a file named migration-list; edit it to choose subscriptions
$M check # pre-migration checks
$M transfer-accounts # the migration itself
$M test-all # post-migration checks on the target
DNS cut-over and mail
Both tools copy DNS zones, but the Internet keeps asking the old server until you change nameservers or A records. Work in this order:
- Migrate a test account and browse it through a hosts-file entry.
- Migrate the rest. Note any warnings per account.
- Switch DNS: change A/AAAA (and MX targets) at the external DNS host, or move your nameserver glue records to the new server.
- For cPanel to Plesk, run Plesk Migrator’s mail-only sync after the switch. For Plesk to cPanel there is no built-in delta sync, so copy late mail with an IMAP sync tool or plan a short freeze.
- Let AutoSSL (cPanel) or Let’s Encrypt (Plesk) issue certificates once DNS points to the new server.
Check that it worked
- Count accounts and domains on both sides and compare.
- Check PHP versions per site: Plesk and cPanel name PHP builds differently, and the tools map them as best they can.
- Log in to a few mailboxes, send and receive, and check SPF, DKIM and DMARC records in the new zones.
- Compare database counts per account (
mariadb -e "SHOW DATABASES"on both servers). - Keep the old server online for at least a week and watch its mail log for stragglers.
Common problems
- Transfer Tool cannot log in: root SSH login is disabled on Plesk. Use a normal user with sudo, or allow root by key from the new server’s IP only.
- No accounts listed after a successful scan (Plesk 18.0.76): update cPanel on the destination; see CPANEL-54330 above.
- Custom DNS records missing: expected for Plesk to cPanel. Export the old zones before the move and re-add records by hand.
- Plesk Migrator skips a reseller: resellers with no domains are not migrated. Create them on Plesk manually.
- Sites load but look broken: nginx-only rules from Plesk do not exist under Apache on cPanel. Rewrite them as .htaccess rules.
Official documentation: cPanel: Transfer Tool · cPanel: Migration services and guides · Plesk Migrator: Introduction · Plesk Migrator: Command line
Related: Transferring accounts between servers with the WHM Transfer Tool · Migrate cPanel accounts to a new server without customers noticing · cPanel Migration Preflight Check · Migrate DirectAdmin to cPanel: Complete 9-Step Migration Playbook · DNS Propagation Checker
See also: Migrate DirectAdmin to DirectAdmin: Move All Users to a New Server · Plesk AlmaLinux 10: Supported Version and What Is Missing
See also: cPanel vs Plesk (2026): Which Control Panel for Hosting? · Plesk “Unable to connect to database”: PleskDBException Fix
Frequently asked questions
Can the cPanel Transfer Tool migrate from Plesk?
Yes. The Transfer Tool lists Plesk as a remote server type next to cPanel, DirectAdmin and Ensim. It needs root access to the Plesk server over SSH.
Does Plesk Migrator support cPanel as a source?
Yes. Plesk’s migration guide lists cPanel 11.5 and later as a supported source platform.
Can I migrate a single domain from Plesk to cPanel?
The Transfer Tool works per account. In the other direction Plesk Migrator works per subscription, so all domains in that subscription move together.
What do I have to redo by hand after a Plesk to cPanel move?
Custom DNS records, SpamAssassin settings, mail addresses with a plus sign, FTP users with an underscore, two-factor enrolment and any nginx-specific rules.
Is there a free migration service?
cPanel lists a free migration service for customers coming from Plesk. Check its current scope on the cPanel migration services page before relying on it.
Maintenance record
This guide changes servers, data or security settings, so we re-check it against current versions on a fixed schedule. Take a backup or snapshot before you start.
- Maintained by
- srvScripts editorial team
- Supported versions
- Plesk to cPanel & WHM (Transfer Tool); cPanel 11.5+ to Plesk (Plesk Migrator)
- Last full review
- Next review