From Cloudways to Vultr | WordPress Migration Complete Tutorial
Cloudways is a high-performance cloud server, so it’s worth sticking with if your budget allows.
Vultr offers more flexibility and is slightly cheaper than Cloudways, but many features require manual setup.
Before you start moving your website, it’s a smart move to turn off all your plugins to steer clear of any hiccups.

Cloudways: download local backups
Head over to Cloudways, locate the Backup feature, enable Local Backups, then hit Back Up Now and wait for the process to finish.

Download the FileZilla tool and select the client to download.
The FTP information is at the bottom of the access details, if you don’t have one, create your own.

Open filezilla, click on File, Site Manager, Add Site Manager, select SFTP for protocol, enter host IP, port 22, user and password are in the SFTP Details above, enter and click to connect.

Successfully connect, find the local_backups, and download it to your local computer.

4 ways to upload website backups to the server
1. FTP upload
If the website is quite large, the process will take a significant amount of time, so it’s not recommended.
Unzip the website package.

The private folder can be deleted if there are no files.

The important part is public_html
click on it to see if it is as complete as the following.

Log in to the vultr root directory in the same way. Then pull the public_html and database files directly into the root directory and wait for the upload to complete.
2. SCP upload
It’s quicker than using FTP, but it still takes some time.
Open a command prompt and enter the following command. The path, IP, and file name should be changed to your own.
scp D:/cw/filename.sql root@server-ip:/root/

3.SSH-Rsync
The process is lightning-fast, and you can fully sync to the target server in just a few seconds or minutes. You’ll need to reach out to Cloudways customer support to have rsync installed first.
The SSH button is turned on first.

If not, add an SFTP USER.

When you log in to SSH, ignore the warning . The account password is the SFTP user you just created.

Once entered, you will log in as normal.

Check whether the following Rsync is installed successfully. If success, it displays the version number.
rsync --version
Compress website backup files.
tar -czvf backup.tar.gz *
Start compressing like the picture below.

Compression is complete.

The target server should also use Rsync.
You should be able to use the PUTTY . Open it.,Enter the following command.。
sudo apt update
sudo apt install rsync
Create the directory and grants permissions in the Vultr server.
mkdir -p /var/www/html/
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
After the cloudways compression is completed, use the following transfer commands: path, ip, destination path, user name should be changed to your own.
rsync -avz -e "ssh" /path/to/backup.tar.gz user@TargetServer-IP:/path/
For example:
rsync -avzP -e "ssh -p 22" [email protected]:/home/1365960.cloudwaysapps.com/cvmeqkdgxu/public_html/backup.tar.gz /var/www/html/
If you don’t know the Cloudways file path, query with the following command
ls -l
Go to PUTTY and check whether the size of the compressed package is the same as that of the backup.
ls -lh /var/www/html/backup.tar.gz
After confirming the same, unzip the zip package.
sudo tar -xzvf /var/www/html/backup.tar.gz -C /var/www/html
Check if you have extracted to the destination folder, if it is correct, you will see the wp-config.php, wp-content folder, etc.
ls -la /var/www/html
Authorize the folder again.
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
Apache: proceeds with the following command. Edit the profile.
sudo nano /etc/apache2/sites-available/000-default.conf
Clear all the contents of the configuration file, copy and paste the following file into it, and remember to change the bold to your own information.
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html
ServerName your-domain
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Save & Exit:
Ctrl+X, enter y, press enter.
Check and edit the wp-config.php file (normally do not need to modify, check the following, if it is inconsistent with the database information above Cloudways, it should be changed to the same)
sudo nano /var/www/html/wp-config.php
Modify the following files.
define('DB_NAME', 'your_database_name'); //database name
define('DB_USER', 'your_database_user'); // database user
define('DB_PASSWORD', 'your_database_password'); // database password
define('DB_HOST', 'localhost');
Resolve domain names
Modify the IP address
www+ip address
@+ip address
both of which are A records.
Enter the database
mysql -u wpuser -p
To import the database, change the path to your own file.
SOURCE /var/www/html/cvmeqkdgxu-20250118-0332.sql;
Database permissions.
Enter
mysql
in Putty, press enter to enter the database.
Press Exit and enter to exit.
GRANT ALL PRIVILEGES ON *.* TO 'database name'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
Exit the database and check the file.
sudo nano /etc/my.cnf
sudo nano /etc/mysql/my.cnf
sudo nano ~/.my.cnf
If empty. Copy all of the following, save Ctrl+X, Y Enter to exit.
[mysqld]
bind-address = 0.0.0.0
port = 3306
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
pid-file = /var/run/mysqld/mysqld.pid
symbolic-links = 0
max_connections = 150
sql_mode = STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
log-error = /var/log/mysql/mysqld_safe.log
socket = /var/run/mysqld/mysqld.sock
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/
Let go of the firewall port
sudo ufw allow 80
sudo ufw allow 443
sudo ufw reload
At this time, you can visit the website to see, generally domain/wp-admin, http without s.
Install SSL and force HTTPS.
sudo apt update
sudo apt upgrade -y
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d yourdomain.com -d www.your-domain
SSL auto-renewal
sudo certbot renew --dry-run
4. Website Migration Plugin
The easiest, it is recommended that students who are not familiar with it move in the form of plug-ins.
All in one WP migration
Updraftplus