Migrate Heavy wp-content Folder From One Host to Another Easily




  • You want to migrate a 15GB WordPress site
  • You have 1 GB Internet data only for next few hours.

In this kind of situation, taking backup with a plugin like Updraft, and restoring the backup is not going to work. Browser hang is one of the first issues, that you may face while restoring the site.

Even manually downloading and uploading wp-content would be a plain waste of time.


Migrating heavy WordPress site with SSH is the best way to go.

For example, let’s say you have an old site at Cloudways and you want to migrate it to a new Server there, I assume that you already WordPress installed.

Below is a step-by-step process that you need to follow.

(This process assumes that before migration to new hosting, your domain is pointed to the old hosting server, in order to download wp-content.zip file via SSH at the new Server)

  1. Login to Cloudways > Server

Copy Master Credentials (IP, Username and Password)
Copy application path

  1. Access now using Putty

  2. Type cd applications/app name/public_html/ to navigate public_html directory

  3. Type zip -r wp-content.zip wp-content/ to create a zip file of whole wp-content folder

Wait till competition, this may takes few minutes to hour.

  1. Now, Login to new server via Putty

  2. Type cd srv/users/serverpilot/apps/appname/public/ to navigate public_html directory

  3. wget http://example.com/wp-content.zip to download wp-content.zip folder which we created in last step 4th.

  4. rm -rf /wp-content/ to delete existing default wp-content folder

  5. unzip wp-content.zip to unzip and bring old hosting wp-content folder which you need.

Now, wp-content part done.

  1. Go back to Cloudways > Application > launch MySql Manager > Export all tables at system

  2. Login again to public_html directory of new server

  3. Install phpMyAdmin at new server, process is written below

wget https://files.phpmyadmin.net/phpMyAdmin/4.8.4/phpMyAdmin-4.8.4-all-languages.zip && unzip phpMyAdmin-4.8.4-all-languages.zip && rm phpMyAdmin-4.8.4-all-languages.zip && mv phpMyAdmin-4.8.4-all-languages phpmyadmin
  1. Edit wp-config.php, grab MySQL username and password

  2. Point new IP to your domain

Edit host file or switch at DNS directly

  1. Login to www.example.io/phpmyadmin/, username and password you can find inside new server wp-config.php file :stuck_out_tongue_winking_eye: just type nano wp-config.php, double click on username/password and CTRL+C to copy.

  2. Export old hosting SQL database tables

  3. Now, please make sure to update table prefix at wp-config.php as per Database. Else, you will see just Famous Five minutes installation page.

Default may be

$table_prefix = 'wp_';

You may need to update like this $table_prefix = 'wp_c319a4295d_';

  1. Point your domain to new IP address.

  2. Add a robots.txt file, that may be missing.

That’s all. I hope this helps.


Related: [Guide] Install WordPress into Subdirectory at Cloudways

Thanks & Regards,

Website migration from shared to cloud
Updrafts Creates Problem while restoring the backup
Using Updraft plus for migration?
The most awaited tutorial is here: Learn Installing LEMP
Migrate WordPress from Cloudways to Vultr with ServerPilot (In 1 hour)
I have to migrate from hostgator to Digital Ocean help me
Migrate WordPress from Cloudways to Vultr with ServerPilot (In 1 hour)

Can anyone explain what is happening from the step 2 to 9. The wp content folder is directly get copied from old to new server? :confused:


Please check now, and update me again if still I need to clarify. Thanks for pointing out.

It was intent for advanced users, who can just take it as bookmark. :smiley:


First part is my favorite :heart_eyes:

For second part I think direct backup will be better. Actually never used phpmyadmin… It looks confusing to me.

What if be backup MySQL DB also in ssh. Then we can transfer db too, without downloading.


mysqldump -u USERNAME -p DATABASE_NAME > filename.sql


Wget example-com/filename.sql


mysql -u USERNAME -p DATABASE_NAME < filename.sql