How to Migrate Your Website to Cloudesta (Checklist and Free Migration Help)
You can move your website to Cloudesta in one of two ways. You can open a support ticket and let the Cloudesta team migrate your cPanel accounts for free, or you can move the files, databases and email yourself. Either way, the safe order is: take an inventory, lower your DNS TTL a day ahead, copy everything, test on the new server through your hosts file, switch DNS, and keep the old host running for a few days. This guide covers both paths for cPanel hosting and Cloud VPS.
Prerequisites
- An active Cloudesta service, either shared cPanel hosting or a Cloud VPS, plus the new server IP from your welcome email (shown here as
203.0.113.10). - Login access to your old host (cPanel, SSH or FTP) and to wherever your domain's DNS is managed.
- A list of every email account and its password, or permission to reset them.
- About an hour of a low-traffic period for the final DNS switch.
1. Should you let Cloudesta migrate your site or do it yourself?
Option A: free migration by the Cloudesta team
If your old host uses cPanel, this is the easiest option. Open a ticket at https://cloudesta.com/submitticket.php and include one of the following:
- The old host's cPanel URL, username and password. Our team can then transfer the account directly, including files, databases, email and SSL.
- A download link to a full cPanel backup. You create this on the old host under cPanel » Files » Backup » Download a Full Account Backup. The backup file (
backup-*.tar.gz) appears in your home directory when it finishes.
Also tell us which domains are involved and whether you want us to tell you when to switch DNS. For non-cPanel sources, such as Plesk, DirectAdmin or custom servers, describe your setup in the ticket and we will advise you.
Option B: migrate it yourself
Use the sections below. Do steps 2 and 3 first, then whichever of steps 4 to 6 apply to you.
2. What should you prepare before migrating?
Write down everything that currently lives on the old host:
- Sites: each domain, subdomain and addon domain, and its document root.
- Databases: the database names, users and which site uses each one. Check
wp-config.phpor.envfiles. - Email: every mailbox, forwarder, autoresponder and mailing list.
- DNS records: export or screenshot all records, including A, AAAA, CNAME, MX, TXT (SPF, DKIM, DMARC, verification records) and SRV.
- SSL: whether you use free AutoSSL or Let's Encrypt, or a paid certificate. For a paid certificate you also need its key and CA bundle.
- Cron jobs and PHP version: note the PHP version and any required extensions.
Lower the TTL at least 24 hours ahead
Find the A records for example.com and www, and the MX record, in your current DNS provider. Set their TTL to 300 seconds. Then wait at least as long as the old TTL (often 14400 or 86400 seconds) before switching, so resolvers pick up your change within minutes. You can check the current TTL with:
dig example.com A +noall +answer
3. How do you migrate a WordPress site yourself?
Method 1: All-in-One WP Migration plugin
Use this method for small to medium sites:
- Install WordPress on the new server. On cPanel you can use Softaculous under cPanel » Software.
- Install the plugin on both the old and the new site.
- On the old site, go to All-in-One WP Migration » Export » File.
- On the new site, go to All-in-One WP Migration » Import.
The free version limits the import size. If your export is too large, use the manual method below.
Method 2: manual files and database
First, copy the files. With SSH on both servers, run this from the new server:
rsync -avz -e ssh olduser@old.example-host.com:public_html/ ~/public_html/
Without SSH, compress public_html in the old File Manager, download it, then upload and extract it through cPanel » Files » File Manager on Cloudesta.
Next, export and import the database as described in section 5. Then update DB_NAME, DB_USER, DB_PASSWORD and DB_HOST (usually localhost) in wp-config.php.
If the domain or protocol changed, replace the old URLs with WP-CLI. Run the dry run first, then the real replacement:
cd ~/public_html
wp search-replace 'http://old.example.com' 'https://example.com' --all-tables --dry-run
wp search-replace 'http://old.example.com' 'https://example.com' --all-tables
wp cache flush
Use WP-CLI or a serialization-aware tool for this. Plain SQL find-and-replace breaks serialized data.
4. How do you move email accounts to the new server?
First, create the same mailboxes on Cloudesta under cPanel » Email » Email Accounts. If you prefer dedicated mail hosting, see Business Email.
Then copy the messages over IMAP with imapsync. You can run it from an Ubuntu 24.04 or 22.04 machine, such as a Cloud VPS:
sudo apt update && sudo apt install -y imapsync
echo 'oldpassword' > ~/pass1 && echo 'yourpassword' > ~/pass2 && chmod 600 ~/pass1 ~/pass2
imapsync --host1 mail.old-host.com --user1 info@example.com --passfile1 ~/pass1 --ssl1 \
--host2 203.0.113.10 --user2 info@example.com --passfile2 ~/pass2 --ssl2
Run it once now and once again right after the MX change to catch any new messages. Repeated runs only copy what is missing. Delete the password files when you are done. If you have only a few small mailboxes, you can instead add both accounts in Thunderbird and drag the folders across.
5. How do you move a MySQL database with mysqldump?
On the old server, export the database:
mysqldump -u dbuser -p --single-transaction --routines --triggers dbname > dbname.sql
Next, create the new database and user on Cloudesta. On cPanel, use cPanel » Databases » MySQL Database Wizard; cPanel adds your account prefix to the names. On a VPS, create them in the mysql client. Then import:
mysql -u newdbuser -p newdbname < dbname.sql
Without SSH, export and import through phpMyAdmin instead.
6. How do you test the site before changing DNS?
You can point only your own computer at the new server by adding a line to your hosts file. On Linux and macOS this is /etc/hosts. On Windows it is C:\Windows\System32\drivers\etc\hosts; open Notepad as Administrator to edit it.
203.0.113.10 example.com www.example.com
Browse the site, log in to the admin area, submit forms and check images. Remove the line when you are finished. You can also test from the command line without editing any file:
curl -I --resolve example.com:80:203.0.113.10 http://example.com
7. How do you switch DNS and finish the move?
You have two ways to switch:
- Change the nameservers at your registrar to those in your Cloudesta welcome email. If you do this, first recreate every record from your inventory, especially TXT and verification records.
- Keep your current DNS provider and update only the A records (and MX, if email is moving) to
203.0.113.10.
After DNS points to Cloudesta, AutoSSL on cPanel issues certificates automatically. You can trigger it under cPanel » Security » SSL/TLS Status » Run AutoSSL. On a VPS, run sudo certbot --nginx -d example.com -d www.example.com, or use --apache for Apache.
Verify it works
Check that DNS, HTTPS and mail all point to the new server:
dig +short example.com A
dig +short www.example.com A
dig +short example.com MX
curl -I https://example.com
The A records should return 203.0.113.10, and curl should return HTTP/2 200 (or a 301 to your preferred URL) with a valid certificate. Finally, send test emails to and from each mailbox.
Common problems
The padlock is missing or the browser warns about mixed content
The database still contains http:// links. Run wp search-replace 'http://example.com' 'https://example.com' --all-tables and clear any caching plugin or LiteSpeed Cache.
A white page or a "missing extension" error
The PHP version or extensions differ from the old host. On shared hosting, match them in cPanel » Software » Select PHP Version. On a VPS, install what is missing and restart PHP-FPM:
sudo apt install -y php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl
sudo systemctl restart php*-fpm
Email bounces or stops arriving after the MX change
This usually means the mailboxes did not exist on the new server yet, or the TTL was still high. Create all accounts before changing MX, lower the TTL a day ahead, then run imapsync again to collect mail that landed on the old server.
"Error establishing a database connection"
The wp-config.php credentials do not match the new database. Remember that cPanel database names and users carry the account prefix, for example cpuser_wpdb.
Frequently asked questions
Is the migration really free?
Yes, the Cloudesta team migrates cPanel accounts at no charge. Open a ticket with your old host access details or a full backup link, and we will confirm the scope.
Will my website go down during the move?
Normally it does not. The old host keeps serving visitors until DNS changes, and with a low TTL the switch completes within minutes.
How long until DNS changes reach everyone?
With a TTL of 300 seconds, most visitors see the new server within an hour. Nameserver changes at the registrar can take up to 24 to 48 hours.
Need help? Open a support ticket at https://cloudesta.com/submitticket.php and our team will migrate the site for you or troubleshoot your move.