migrate wordpress to websavers

How to transfer or migrate your WordPress website (also MODX, Drupal, Joomla)

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 even make necessary changes to the database configuration if you’re changing domains in the process. This is why we recommend using it to handle the migration of your web app powered website.

It’s best to disable any security plugins (like WordFence or Sucuri) prior to migration. Do the same for any admin folder changing plugins. Feel free to re-enable them after the migration is completed, but note that our shared servers all come with lower-level bruteforce login blocking for WordPress, so you  may not require that level of security from a plugin.

Host-Specific Issues

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 issues.

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.

They use 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, use the MediaTemple File Manager and, in the web root (typically /home/domain/{domain}/html), create a file called dbserver.php and put within it: <?php echo $_ENV{'DATABASE_SERVER'}; ?> then use your browser to visit http://{domain}/dbserver.php. In the file manager 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 safely proceed with the migration.

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.

FTP Credentials

You will require FTP (or SSH/SFTP) credentials to access your former hosting company, including:

  1. 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.
  2. The username and password
  3. The ‘path’ or web root to the WordPress files at the old host.

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.

To determine the web root folder location: 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:

  • 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: /httpdocs for primary domains or for addon domains: /{your_domain}
  • Hosts that use cPanel: /public_html for primary domains or /public_html/{your_domain} for addon domains.

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. More details on finding the correct path to enter can be found in the troubleshooting section below.

Let’s get started!

  1. Log in to Plesk 
  2. 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.
  3. 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!
  4. Scroll down until you see WordPress (or use the search box in the upper right corner) and click on it.
  5. 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”.
  6. Under the “From different account” part of the page, click the Continue button.
  7. Provide the necessary details to begin the transfer. Anything not described here should be left at its default value.
    • Source URL: is simply 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: we recommend choosing the “FTP with TLS/SSL” option as it’s the simplest to use, it is 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: enter the path you found using the instructions above.
    • Choose the domain to which you’ll be importing WordPress.
    • You’ll likely want to keep the “Directory” field empty unless you are planning on having your website visible at a subdirectory liek this: yoururl.com/directory (and not just yoururl.com)
  8. Click Import

Installatron 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.


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.


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.

If that doesn’t solve the problem, try logging in with an FTP app on your computer. If, immediately after logging in, you see the files for the WordPress install you wish to migrate (make sure it’s also the *right* WordPress install if you have multiple), then you can set the path folder to be empty in 1-click web apps.

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


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 transfer mode:

  1. The firewall may be blocking port 22 outbound, in which case you’ll need to get this port opened to proceed. This is why we recommend using FTP with TLS mode.
  2. Installatron 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

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.

This likely means 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’re using Plesk Firewall (like on a VPS), you can do this from within Plesk under Tools & Settings > Firewall.
  • 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 in csf (our firewall). 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 Jordan Schelew

Jordan has been working with computers, security, and network systems since the 90s and is a managing partner at Websavers Inc. As a founder of the company, he's been in the web tech space for over 15 years.

Leave a Comment