This guide is written for WordPress and web hosting companies using Installatron (like us), however the steps below can be used to import, transfer, or migrate any website using nearly any content management system (CMS) or web app like Drupal, MODX, and Joomla. When you see “WordPress” in this guide, you should be able to simply swap that out for the web app you’re migrating.
If you’re migrating a non-app based website or can’t get these instructions to work (possibly due to remote host issues like low disk space), steps describing how to do a manual website transfer can be found in our general migration guide. You can also use that article to learn how to migrate your email; this guide covers only a web-app based website.
Our 1-click web apps utility – powered by Installatron – is really smart! It will automatically package up the database and files, copy them to your account with us, create the new database and if you’re changing domains it’ll even make necessary changes to the database configuration. This is why we recommend using it to handle the migration of any website that utilizes a database, like WordPress.
Domain Set up
Is this your first/primary domain?: Please ensure there are no existing apps installed. If you chose to pre-install WordPress during your order, or had already installed WordPress or another app, be sure to remove it now by finding the app in 1-click web apps (within Plesk) and clicking the X button beside it.
Is this a secondary/add-on domain or subdomain?: If you’re setting up an additional domain (called add-on domain) or a sub-domain, then you’ll need to login to Plesk and choose “Add Domain” or “Add Subdomain” to have Plesk set up its hosting and create its web root folder. Please ensure there are no existing apps installed there.
Avoiding migration issues
It’s best to disable any security plugins (like WordFence or Sucuri) prior to migration. Do the same for any admin folder changing plugins. You may re-enable them after the migration is completed, but since our shared servers all come with lower-level bruteforce login blocking for WordPress, so you likely do not require a security plugin any longer.
If the website you’re migrating is coming from one of the hosts listed below, click on its name to learn how to avoid common migration issues.
Bluehost
Bluehost security systems block the Installatron migration utility from functioning. To ensure this process works, before proceeding with the steps below, you must contact BlueHost and ask them to disable ModSecurity for your site. Once disabled, the migration should proceed smoothly.
MediaTemple
Media Temple uses a custom wp-config.php where the database server name is an environment variable:$_ENV{'DATABASE_SERVER'}
. This variable cannot be detected properly by our migration utility.
To prepare for this, access the MediaTemple File Manager and complete these steps:
- In the web root (typically /home/domain/{domain}/html), create a file called dbserver.php and put within it:
<?php echo $_ENV{'DATABASE_SERVER'}; ?>
- Use your browser to visit
http://{domain}/dbserver.php
and copy what you see there. - Edit wp-config.php and replace
$_ENV{'DATABASE_SERVER'}
with the value you saw in the browser wrapped in single quotes. The line should look similar to this:define('DB_HOST', 'internal-db.sXXXXXX.gridserver.com');
You can now proceed with the migration
Netfirms
PHP Memory limits tend to be super low (64MB). Sadly Netfirms refuses to allow an increase beyond 64MB for shared hosting, making the migration manual.
How to migrate a WordPress site using WordPress login details
If this process fails or you’re not using WordPress, try the FTP method instructions below. If you’re migrating from and to a Websavers server (or any server using Imunify360) please ensure you’ve disabled the necessary security rules at the source. This is described in the section above entitled “Avoiding migration issues at specific hosts”
- Log in to Plesk
- Choose 1-click web apps or Installatron.
- If you already have at least one application installed, you’ll need to choose the “Application Browser” tab in the upper right corner. If not, then you should already be there!
- Scroll down until you see WordPress (or use the search box in the upper right corner) and click on it.
- If you see a button on the right that says “Import Existing Install”, click it. If not, you’ll see a button that says “Install this application” with a downward pointing arrow on its right side. Click the down arrow, then choose “Import Existing Install”.
- Under the “From different account” part of the page, click the Continue button.
- Migration Settings (anything not described here should be left at its default value):
- Source URL: is the URL to the website you’ll be transferring. Visit the site in your browser, then copy/paste the URL from the address bar into this box.
- Protocol: WordPress
- Username: enter the WordPress admin username you use to login
- Password: enter the WordPress admin user password
- Destination: Choose the domain to which you’ll be migrating your website.
- Directory: You’ll likely want to keep the directory field blank unless you are planning on having your website visible at a subdirectory like this: yoururl.com/directory and not just yoururl.com.
- Click Import
Congrats, you’re done! If you encountered any errors or problems, see the troubleshooting section below to learn how to fix the most common issues with migrations.
If you needed to deactivate security rules at the source host, please reactivate them now for optimal security.
Want more to do? See our guide on securing WordPress for the best next steps to keep WordPress secure on Websavers hosting.
How to migrate a website using FTP
You will require FTP (or SSH/SFTP) credentials to access your former hosting company, including:
- Server hostname or IP: often ftp.yourdomain.com or you can use IP address or hostname of the source web server. If the source host uses cPanel this is ususally shown at the top of the dashboard.
- The username and password
- The ‘path’ or web root to the WordPress files at the old host.
How to create a new FTP account
If you can, it’s much simpler to create a new FTP account at the source host, than it is to try to use an existing account. When you create the FTP account, you’ll be provided the option to select the FTP User/Account Home Path. Be sure to set this path to the web root folder: the folder where WordPress is installed for this website.
How to determine the FTP web root path
If your source host has a file manager tool, open it, then navigate your way to where WordPress is installed, making note of the folders you opened to get there. When you see files and folders that begin with “wp-“, like the wp-config.php file and folders wp-admin and wp-includes, this will be the folder where WordPress is installed.
The folders you opened to reach those WordPress files will be your web root path and will look something like this: /folder1/folder2/folder3
. Therefore, when creating the FTP account, set the home folder to this path.
Here are some common examples of web root paths:
- Hostinger
- When the FTP username has the domain name in it:
/public_html
- When the FTP username does not have the domain name in it (it’s the root user):
/domains/{your_domain}/public_html
- When the FTP username has the domain name in it:
- MediaTemple:
/home/domain/{your_domain}/html
- MODX Cloud: only provides SSH access, use path:
www
or if that fails try/www
The server hostname, username, and password can all be found under the “SSH/SFTP Connection Information” in your MODX Cloud panel. - Hosts that use Plesk Panel:
- When it’s the primary domain:
/httpdocs
- When it’s an addon domain:
/{your_domain}
- When it’s the primary domain:
- Hosts that use cPanel:
- When it’s the primary domain:
/public_html
- When it’s an addon domain:
/public_html/{your_domain}
- Note: sometimes addon domains are
/{your_domain}
– we don’t know why it differs sometimes and not others.
- When it’s the primary domain:
No home path option when creating FTP account, or using Hostinger? If your host doesn’t have the ability to set the home path for your FTP or SFTP user, or if the host is Hostinger, enter this path when initiating the migration within 1-click web apps instead.
Switching to an SSH/SFTP connection? The web root path may be different for an SSH connection, so if you decide to try the SSH type migration, the path you found here might not work. See Troubleshooting below for details on this.
Use an FTP app to test a login?
If you have an FTP app on your computer, you can verify you have the right details by logging in to the source host to test that the connection works. This also makes it a bit easier to figure out what your ‘path’ value should be.
Initiate FTP Migration from Destination
- Log in to Plesk
- Choose 1-click web apps. If you are not hosting with us, you must find your own way to the Installatron (1-click web apps) utility.
- If you already have at least one application installed, you’ll need to choose the “Application Browser” tab in the upper right corner. If not, then you should already be there!
- Scroll down until you see WordPress (or use the search box in the upper right corner) and click on it.
- If you see a button on the right that says “Import Existing Install”, click it. If not, you’ll see a button that says “Install this application” with a downward pointing arrow on its right side — click the down arrow, then choose “Import Existing Install”.
- Under the “From different account” part of the page, click the Continue button.
- Migration Settings (anything not described here should be left at its default value):
- Source URL: is the URL to the website you’ll be transferring. Visit the site in your browser, then copy/paste the URL from the address bar into this box.
- Protocol: Choose the “FTP with TLS/SSL” option as it’s secure and it is the type of connection that is most commonly accepted by hosting providers. If it does not work, then you will need to use regular insecure FTP. If you instead opt to use SFTP or SSH, be sure to check out the troubleshooting section below on this topic
- FTP Server or IP: either try ftp.{domain} or use the server host name or IP as found in the source host’s control panel.
- Username + Password: Be sure to supply the correct FTP connectivity details from your source hosting provider.
- Path: If you were able to configure the FTP Home path to your WordPress install using the instructions above, then you must leave this value blank. If you were not able to specify an FTP Home path, use this field to enter the path you found using the instructions above.
- Destination: Choose the domain to which you’ll be migrating your website.
- Directory: You’ll likely want to keep the directory field blank unless you are planning on having your website visible at a subdirectory like this: yoururl.com/directory and not just yoururl.com.
- Click Import
1-click web apps will now complete the import of your external WordPress installation into your account on your new web hosting provider.
Congrats, you’re done! If you encountered any errors or problems, see the troubleshooting section below to learn how to fix the most common issues with migrations.
Want more to do? See our guide on securing WordPress for the best next steps to keep WordPress secure on Websavers hosting.
Troubleshooting
The Migration Assistant plugin could not be installed automatically
This error might occur when using the “WordPress” protocol to initiate the migration.
When you get this error it means something at the source blocked access to install the necessary plugin, which prevents the migration from proceeding.
If the source host is using Imunify360
- Login to Plesk
- Under the domain for the site you’re migrating, choose “Web Application Firewall”
- About half-way down the page you’ll see the heading “Switch off security rules” and in the “Security rule IDs” box, enter the following IDs then press the Apply or OK button:
77350110
77316819
If there are other IDs already in the box, you may add these two them on a new line. If these IDs already exist in that field, you do not need to add them again.
SECURITY NOTE: after the migration has completed, please remember to follow these steps again to remove these IDs – they only need to be disabled for the migration.
If the source host is not Websavers and does not use Imunify360
Another security system is likely blocking the automation. That could be a security plugin like WordFence, or another ModSecurity ruleset.
There are two ways to fix this:
- Check the logs at the source host to determine what’s doing the blocking and disable it, or talk to the source host’s support to see if they can help identify and resolve the block.
- Use the FTP protocol to do the migration (steps above).
WooCommerce Product Options by Barn2 data missing
We don’t yet know why but this plugin’s product options do not import successfully. You must use their export/import tools to transfer the settings.
Path error, directory error, or unable to find WordPress error (and how to find your web root path)
This is the issue if Installatron says “A test of the selected domain has failed (HTTP error 404).” And then at the bottom of the error it says something like “Technical Error: [1] Written file: /web_root_path/deleteme.random.php
‘ not accessible at `http://{domain}/deleteme.random.php’.
If it doesn’t say HTTP error 404, the path might not be the issue. Different error codes like 403 or 416 typically mean the source host’s firewall is blocking the migration.
IF USING FTP OR FTP WITH TLS
Double check that you configured the FTP user/account home folder to match the web root path for the website. If you have, then the solution should be to simply leave the path field blank (remove its contents) when entering the import details in 1-click web apps.
Try logging in with an FTP app on your computer. If, immediately after logging in, you see the standard WordPress files (ex: wp-config.php), then you can set the path folder to be empty in 1-click web apps. If you host multiple websites, make sure it’s also the path to the *correct* WordPress website! If you have to open up a folder (or two) to find your WordPress files, make note of the folders you have to navigate to get there, and that will be the path to enter in 1-click web apps. For example if you have to open public_html followed by mydomain.com, then your path is: public_html/mydomain.com whereas if you only have to open up the folder mydomain.com, then your path is simply: mydomain.com
IF USING SSH OR SFTP MODE
SSH and SFTP transfer methods can be a bit tricky to get right. There’s commonly two reasons why you might have trouble with SSH or SFTP transfer mode:
- The firewall may be blocking port 22 outbound, in which case you’ll need to get this port opened to proceed. This is one reason why we recommend using FTP with TLS mode.
- 1-click web apps requires an absolute path to the web root for the transfer to be successful. As an example, if your remote path currently seems to be public_html and it’s not working, try using an FTP app to find the absolute path from root, which should look something like this: /home/{your_ftp_username}/public_html. If your former web host is using Plesk, and the web root is httpdocs. the absolute path is probably /var/www/vhosts/{your_domain}/httpdocs
Compression Failed Error
This occurs when there are large files on the source server and the source server’s max execution time is low (like 30 seconds or less) or when there isn’t enough space on the source server to create the necessary backup files to transfer the site.
It is recommended to proceed through these solutions in order, one at a time, then attempt the transfer after each, as any one of the solutions could resolve the problem for you. They are listed in order of most likely solution to least likely solution to resolve the problem:
Solution 1: Free Up Space. This error will also occur (less frequently) if your source host is out of disk space. You must have sufficient disk space on your source hosting account to create a copy / backup of your site files. If you do not, you will need to ask your host to increase the storage temporarily or remove some files before proceeding. Alternatively you can migrate your site manually.
Solution 2: Remove Large Backups. Larger files (typically > 500MB) will create problems for our migration utility. Please delete any backups found within backup plugins like BackupBuddy, All In One Migration, etc. unless their combined size is less than 50MB. If you need the backups, download them to your computer before removing them. This is just one reason why we don’t recommend using plugins to backup your site.
Once the large files have been removed from the server, you can complete the steps above once again to successfully complete your transfer.
Solution 3: Change PHP Settings. Increase the PHP max execution time on the old host plus memory limit and post max while we’re at it.
If the source host is using Plesk, navigate to the PHP Settings button for the domain and change the values as shown below.
If the source host is using cPanel, go to the “PHP Selector” button (hopefully your host has this). You will now have one of three options: 1) Options on the far right, 2) Settings on the right, 3) You may instead be presented with the option to create a custom PHP INI — do this and then configure the following three values to match and save your changes.
max_execution_time = 600 memory_limit = 256M post_max_size = 64M
If you don’t have the option to change those values within the control panel (example: if the PHP options page has nothing on it other than the PHP version), you could try adding the three lines above to a file called .user.ini
file OR a php5.ini
file (either existing, or create a new one via FTP or file manager).
If the source is GoDaddy, see GoDaddy’s PHP config here.
If the host is using php as an apache module (this is unlikely unless your host uses very old systems), you can add the above directives in the following format to the root .htaccess file (use the file manager):
php_admin_value max_execution_time 600 php_admin_value memory_limit 256M php_admin_value post_max_size 64M
Of none of the above options work, then that unfortunately means the host does not allow you to change those values. You can try contacting their support to see if an admin will set them for you.
If an admin will not set them for you, you can still keep the failed migration, then manually copy the files — Installatron will have already copied the database for you.
Authentication or connection errors after confirming the user/pass works using an FTP app on my computer
This might mean that the source server only supports PASV/Passive mode connections and our firewall is blocking the necessary outbound ports to allow that to happen. To fix this, we’ll need to temporarily whitelist the IP address of the source server:
- If you have your own VPS, you can do this from within Plesk under Tools & Settings > Firewall or Imunify360.
- If you’re hosted on a shared server, open a ticket and provide us with the IP or hostname you’re connecting to so that we can whitelist it for a few days. Please be absolutely sure that you can connect with that username and password using an FTP app on your computer before opening a ticket about this.
About Websavers
Websavers provides web services like Canadian WordPress Hosting and VPS Hosting to customers all over the globe, from hometown Halifax, CA to Auckland, NZ.
If this article helped you, our web services surely will as well! We might just be the perfect fit for you.