Migrations and Transfers Questions
Migration support articles: while most website migration to 20i hosting is simple and automatic, these articles can help if you have any issues.
How do I transfer a domain or website to another 20i customer?
As a 20i reseller, you can transfer hosting packages and domain names to different 20i customers through our My20i control panel.
Lloyd CobbCan I import contacts to webmail?
Yes, you can import a contact list from a previous mail client into 20i webmail. To do so:
Austin B.How do I migrate from cPanel and WHM?
Migrating from a cPanel / WHM host to 20i's scalable platform is quick and easy using our Migration Centre.
Austin B.Can 20i Support migrate my emails if I use WordPress FTP migration?
To migrate your emails and mailboxes to 20i email hosting, you can use our in-house Email Migrations tool. This will let you migrate your IMAP mailboxes, your Gmail mailboxes and your Outlook mailboxes into 20i.
Austin B.How do I migrate from an Unmanaged VPS to Managed Hosting on a VPS?
With any Managed Hosting package you'll get full access to the Migration Centre. It gives you a few easy migration options.
Unmanaged VPS with cPanel ➡ Managed Hosting on a VPS
- Log in to My20i
- Select Start a Migration.
- Choose WHM/cPanel from the list and click Next.
- Enter the required credentials: hostname, username and the password for cPanel/WHM, and click Next.
- You can then choose your Managed VPS from the Service Target dropdown menu and Package Bundle Type.
- Go to Migrations Overview in My20i at any time to see the status of your migration. You’ll be notified when it’s successfully completed.
Unmanaged VPS with WordPress➡ Managed Hosting on a VPS
The best way to migrate a WordPress site from unmanged VPS is by using a WordPress migration plugin. We'd recommend using All-in-One WP Migration
https://en-gb.wordpress.org/plugins/all-in-one-wp-migration/
Unmanaged VPS with a Custom Site ➡ Managed Hosting on a VPS
To migrate a custom site when you don't have a control panel or isn't WordPress would be a manual migration.
Austin B.How do I migrate a website manually?
20i provide an automatic 'one click' Migration Centre that supports migrations from the largest hosts and most popular control panels. This is available to all customers for no extra charge.
1. Create the hosting package at 20i. This provisions the website to our platform, lets you access the site over the temporary URL, and ensures that you have FTP access.
2. Start downloading your website files from the old provider: make an FTP connection using your previous FTP account details, and download all files from the web space to your local computer.
3. Download your database. You'll need a backup of all databases the website is using. All major hosts will be running the phpMyAdmin management software that lets you import and export your databases via a website. The steps are:
- First, access phpMyAdmin (My20i > Manage Hosting > [select package] > phpMyAdmin)
- Click the database you wish to backup down the left-hand side
- Click the 'Export' tab at the top of your page
- Leave 'Quick' selected under Export Method
- Select your desired format: we recommend SQL for most cases
- Click 'Go'
4. Upload the files to 20i. To access 20i FTP before you change the nameservers or update DNS for your domain, you'll need the FTP hostname displayed in the 'Nameserver Check' section. This automatically appears for any domains not using our nameservers as the last section down the right-hand side when you're managing your hosting packages.
5. Create a database at 20i. You can do that via My20i > Manage Hosting > [select package] > MySQL Databases. Note down the hostname, database name/username and password for your new database as you'll need these details later.
6. Import your database backup to the newly-created database. Once again we recommend using phpMyAdmin for this purpose:
- My20i > Manage Hosting > [select package] > phpMyAdmin
- Automatically login to phpMyAdmin for each of your databases. Click the 'Import' tab at the top of your page.
- Browse your computer for the database export you have taken previously
- Select the format that matches the export: this will be SQL for most cases
- Click 'Go'
If the import fails, you may wish to try again with 'Enable foreign key checks' unchecked.
7. Update the credentials in the website configuration file. The exact file you need to update depends on the software the website is running, but we've listed the most common configuration files below:
- WordPress: wp-config.php
- Joomla: configuration.php
- Drupal: sites/default/settings.php
- Magento: app/etc/local.xml
8. The website will now be fully functional on our platform. To test the website, we provide a Temporary URL that will be visible down the right-hand side of the control panel. For a more complete test, you can modify your hosts file, which allows you to override the domain name at your PC, so you can visit your domain at 20i while the rest of the internet still reaches the current website.
9. Time to go live! Once tested, you can change the nameservers of the domain and (optionally) transfer the domain in.
Austin B.What can the Migration Centre move?
As a 20i Reseller our Migration Centre gives you free and unlimited website migrations. The Migration Centre helps ease migrations from other providers. Currently, we support 6 types of migration sources:
Lloyd CobbHow do I migrate from Heart Internet?
Migrating from Heart Internet to 20i's scalable platform is quick and easy using our Migration Centre.
- Log in to My20i
- Select Start a Migration.

- Choose Heart Internet from the list and click Next.

- Enter the required credentials: API Username and Password.
- Select Next Step.

- You'll be shown a list of all your hosting packages within Heart Internet. Select those which you want to bring across and select Migrate.
- Go to Migrations Overview in My20i at any time to see the status of your migration. You’ll be notified when it’s successfully completed.
- Once the migration status has been updated to 'Complete' you can head to Manage Hosting to view the website and emails.
Mailboxes
Heart Internet has prevented their Resellers from changing passwords to all mailboxes through the Reseller Control Centre. This means that the Migration Centre is now unable to fetch mailboxes and their respective passwords. We've updated the Email Migration tool to make the migration as easy as possible. To enter the mailbox passwords to migrate the mailbox data across head to:
Manage Hosting -> Manage -> Email Migration
The mailboxes will be queued, and just require the password to start the migration.
DNS Record
By default, DNS records will be configured so that they point all services to 20i's services, such as mail and FTP. For example, if you are using Office365 or Gmail you'll want to remove our standard MX records and ensure the Office365/Gmail DNS records have been added before you continue, to avoid any interruption to your mail service.
After migrating your websites, databases, and email, the final step is to update your domain names. You can either transfer your domain name to 20i or leave it with its current registrar and simply point the name servers to your 20i hosting.
If you’re intending to use our free SSL certificates, the domain name(s) will need to be transferred to 20i as a security measure required by the certificate-issuing authority.
To transfer your own or your customers’ domain names to 20i, head to Transfer a Domain from the Migration Centre section of your 20i control panel. Enter the domain name(s) you want to transfer, confirm them, and then check out.
You can see the progress of your domain transfers from Migration Centre > Pending Domain Transfers. Please note that DNS propagation typically takes an hour but can take anywhere up to 24 hours as a global update is rolled out, so it may be a while before your domain resolves after the nameservers have been updated.
Updating Nameservers
If you’d prefer to update your nameservers with your current domain registrar (meaning you have your non-20i domain pointing to your 20i hosting) instead of transferring your domain to 20i, you will need to log in to your domain registrar’s control panel and update the nameservers to the following:
• ns1.stackdns.com • ns2.stackdns.com • ns3.stackdns.com • ns4.stackdns.com
If your registrar doesn’t support 4 nameservers, simply add as many as it will support. It can take up to 48 hours for nameserver changes to propagate across the web, but in the vast majority of cases, it will be completed much faster.
Congratulations, you’ve successfully migrated to 20i!
Important: You can never have too many backups! Before you delete any data with your old hosting company, please back it up on a separate physical device and/or have a copy in cloud storage. You can also download your data at any time via My20i, or purchase our Timeline Backups service for automatic daily backups.
Austin B.How do I move my site to the WordPress platform?
You can move between all our Linux, WordPress and Windows Platforms using the Platform Transfer icon inside My20i.
To do a platform transfer:
- Log in to My20i.
- Select the Platform Transfer icon from the homepage.
- Select the package you would like to transfer and then select the WordPress platform icon.
- Confirm the Hosting Package Type you want the package transferred to.
- Select the relevant data centre.
- Select Begin Transfer.

Note: Before performing a migration to the WordPress platform, please note the following requirements:
- WordPress must be installed in the website root. That is, the WordPress install sits inside the public_html folder.
- The WordPress install (including all plugins and themes) must be compatible with at least PHP 7.2. We currently support the latest version of PHP 8.5 across the platform.
- The webspace must not contain any software or code that does not belong to WordPress.
- Any subdomains or additional domains must be pointing to the same WordPress install and hence configured as a WordPress Network (Multisite).
A platform transfer will also cause the DNS records on our nameservers to be reset, to ensure the package points towards 20i services. You will need to reconfigure any external DNS records after the platform transfer completes.
Austin B.What is the 20i Migration Centre? An overview.
The 20i Migration Centre automates migrations from most hosts, allowing you to move your websites and email in just a couple of clicks. It’s completely free to use, there’s no website or email downtime, and no risk of data loss.
Austin B.Why does my migration fail?
Our Migration Centre is designed to make migrations as simple as possible, automating the process so that you can bring your sites to us efficiently and quickly.
Will the email migration tool cause downtime to emails?
No, the email migration won't cause any downtime to emails.
It doesn't affect DNS or the ability to send or receive emails: it simply performs an IMAP sync to move emails from one server to another. There will be no downtime caused by the use of the email migration tool. Learn more about the 20i email hosting.
Austin B.How do I migrate a WordPress site automatically?
Migrating a WordPress website to 20i's scalable platform is quick and easy using our Migration Centre.
Austin B.What does each Migration Status mean?
When you first start a website migration to 20i, you'll see it enters the system with a default status of 'queued'. We've laid out the 3 key states of a migration to 20i below:
Lloyd CobbDoes the email migration delete any emails?
No, the migration won't remove any emails from the mail server where emails are being migrated from, or any emails on the 20i email server.
It's a 'non-destructive' form of migration, so emails won't be duplicated or deleted. Changes will simply be added into the emails already at 20i.
Austin B.Why could my WordPress migration fail?
The following conditions should be met for the WordPress FTP migration tool to migrate a site. These conditions are usually met by default, unless you've made changes to your WordPress installation.
What to do if a WordPress migration has failed
If your migration fails, adjustments may need to be made to allow the migration tool to work correctly:
- The migration tool looks for the directory with the wp-config.php configuration file. If you’ve manually moved the wp-config.php file to another directory (sometimes done for security) then you’d need to move it to be with the rest of the core WordPress files.
- File and directory permissions should be consistent with WordPress best practice, i.e. directories set to 755 and files set to 644.
- Our IPs used for the FTP migration tool should not be blocked: 185.146.165.4 & 45.8.227.14. If you use a web application firewall (WAF) ensure these IPs are whitelisted.
- Ensure the website's domain name points to the correct web host. If the nameservers for the domain name don’t point to the right host then the migration will fail.
If you’re having trouble diagnosing what’s wrong, please feel free to contact support within your account from the support area.
Austin B.How to migrate your website from Siteground to 20i
The following is a step-by-step guide to get you started in moving your sites over from Siteground to 20i – depending on your site setup, you may be able to do this automatically using our Migration Centre, or if not then it can be done manually.
Ruth TurnerHow do I transfer large files using rsync?
FTP uploads on our system have a maximum size of 5GB. If you need to upload files larger than this, you'd need to upload these via SSH.
Or $ sudo yum install rsync (For CentOS, Fedora, Rocky and AlmaLinux)How to use rsync to upload files to a web hosting package
Generating an SSH Key Pair to use
Firstly, you will want to generate some SSH keys to be able to access your web hosting package. You can do this by running:
$ ssh-keygenAfter this command is run, you should see something similar to:
Generating public/private rsa key pair.
Enter file in which to save the key (/yourHomePath/.ssh/id_rsa):We recommend you just press Enter here and it will write your SSH key pair into the /.ssh/ folder in your home directory. Alternatively, you can provide it with a custom directory and key name that it will use to create your key pair.
It then may ask you to overwrite the previous keys there. If you choose to do so your previous keys will be lost.
The last step before your key is generated is to set a passphrase for the private key, however, this is optional.
Enter passphrase (empty for no passphrase):Your keys should now be generated, the public key will need to be uploaded into the SSH Access section of the package you are looking to move your files into.
You can verify that this is set up correctly by running the following which should connect you to your package via SSH:
$ ssh -i /path/to/privatekey domain.com@ssh.gb.stackcp.com
...
-bash-4.2$You can find a comprehensive guide to accessing your package using SSH here.
Using rsync to move files from your local machine to a package on 20i
Once you have SSH Access set, you can then look to begin moving your large backup files using rsync. This will be a case of simply running the rsync command and giving it a file to move and a directory to move it into.
rsync [options] [file to move] domain.com@ssh.gb.stackcp.com:[directory of package to move to]More specifically, to move your file to your hosting package at 20i, the rsync command will look something like this:
$ rsync -v path/to/backup.zip domain.com@ssh.gb.stackcp.com:/path/to/you/packages/home/directory/[optional path in the package]To find your package's /path/to/you/packages/home/directory/ it will be a case of going to the Manage Hosting page, finding the package you are looking to rsync to and going to Options > Manage and then looking for the Account Information section. Under this section you should see information such as the domain, package type and data centre location, however, we are specifically looking for the Home Path.
In the rsync command, you can set a further optional path to somewhere in your package. For example, this could be something such as /path/to/you/packages/home/directory/public_html/new-site/, however, if you do not provide this the file you are moving will be written into your package's root directory.
The -v option sets the output to verbose, which will tell you which file is being moved, and will provide confirmation once it has been successfully moved.
Please do note, that if you are moving files to a package on our US or Singapore data centre you will need to use ssh.us.stackcp.com / ssh.sg.stackcp.com instead of ssh.gb.stackcp.com.
When creating your SSH keys, if you set a custom directory or name for your key pair, then it may be the case you need to specify which private key to use in your rsync command. To do so we will need to make use of the -e option which allows you to specify the remove shell to be used whilst you are moving your files. This will look something like:
$ rsync -ve "ssh -i /path/to/key" path/to/backup.zip domain.com@ssh.gb.stackcp.com:/home/sites/path/to/package/[optional file path]When you run either of the above commands it will connect to your package via SSH and synchronise the file from your local machine to your package at 20i. If you are using the -v option, you will know once the file has been successfully moved as the following will be outputted:
Backup.zip
sent 467,930,820 bytes received 35 bytes 25,293,559.73 bytes/sec
total size is 467,816,526 speedup is 1.00Once the rsync has finished running, you can verify the file has been uploaded successfully by going to the File Manager of your package where you should be able to locate the file you transferred using rsync.
Josh Sargent
Corey Seymour