August 05, 2026 · by CLIQHOST
Migrating a website to an SSD VPS might seem daunting at first, but with a clear plan and the right steps, the process is entirely manageable — even for those without advanced server administration experience. Whether you're moving from an overcrowded shared hosting environment or upgrading from a slower HDD VPS, an SSD VPS gives you superior speed, dedicated resources, and full control.
This guide walks you through the complete migration process: from backup creation and new server setup, to file transfer, database import, and DNS update.
Before diving into the technical steps, it's worth understanding the concrete benefits:
Make sure you have:
Never start a migration without a backup. If your source is a cPanel shared hosting account, use the Backup Wizard to download a complete archive (files + databases).
If you have SSH access to the source server, you can create a manual backup:
# Archive the site directory
tar -czf backup_site_$(date +%Y%m%d).tar.gz /var/www/html/mysite.com
# Export the MySQL database
mysqldump -u root -p database_name > backup_db_$(date +%Y%m%d).sql
Download both files to your local machine or transfer them directly to the new VPS:
scp backup_site_20240601.tar.gz user@NEW_VPS_IP:/root/
scp backup_db_20240601.sql user@NEW_VPS_IP:/root/
Connect to the new server via SSH:
ssh root@NEW_VPS_IP
apt update && apt upgrade -y # for Ubuntu/Debian
# or
yum update -y # for CentOS/AlmaLinux
For Apache + MySQL + PHP (LAMP):
apt install apache2 mysql-server php php-mysql php-curl php-gd php-mbstring php-xml -y
For Nginx + MySQL + PHP (LEMP) — recommended for maximum performance on SSD:
apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml -y
mysql_secure_installation
Follow the interactive prompts: set a root password, remove anonymous users, and disable remote root access.
mysql -u root -p
Inside the MySQL console:
CREATE DATABASE mysite_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'mysite_user'@'localhost' IDENTIFIED BY 'SecurePassword123!';
GRANT ALL PRIVILEGES ON mysite_db.* TO 'mysite_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
mysql -u root -p mysite_db < /root/backup_db_20240601.sql
Create the destination directory and extract the archive:
mkdir -p /var/www/html/mysite.com
tar -xzf /root/backup_site_20240601.tar.gz -C /var/www/html/mysite.com --strip-components=3
Note:
--strip-components=3removes the path prefix from the archive. Adjust the number based on your archive structure (inspect it withtar -tzf backup_site.tar.gz | head -20).
Set the correct file permissions:
chown -R www-data:www-data /var/www/html/mysite.com
find /var/www/html/mysite.com -type d -exec chmod 755 {} \;
find /var/www/html/mysite.com -type f -exec chmod 644 {} \;
Create the configuration file:
nano /etc/nginx/sites-available/mysite.com
Minimal working configuration:
server {
listen 80;
server_name mysite.com www.mysite.com;
root /var/www/html/mysite.com;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Enable the configuration:
ln -s /etc/nginx/sites-available/mysite.com /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
nano /etc/apache2/sites-available/mysite.com.conf
<VirtualHost *:80>
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /var/www/html/mysite.com
<Directory /var/www/html/mysite.com>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
a2ensite mysite.com.conf
a2enmod rewrite
systemctl reload apache2
If you're running WordPress, edit wp-config.php with the new database credentials:
define( 'DB_NAME', 'mysite_db' );
define( 'DB_USER', 'mysite_user' );
define( 'DB_PASSWORD', 'SecurePassword123!' );
define( 'DB_HOST', 'localhost' );
For Joomla, update configuration.php:
public $db = 'mysite_db';
public $user = 'mysite_user';
public $password = 'SecurePassword123!';
public $host = 'localhost';
Don't change the DNS right away! Test first by editing the hosts file on your local machine:
Windows (C:\Windows\System32\drivers\etc\hosts):
NEW_VPS_IP mysite.com
NEW_VPS_IP www.mysite.com
Linux/macOS (/etc/hosts):
echo "NEW_VPS_IP mysite.com www.mysite.com" | sudo tee -a /etc/hosts
Open your browser and visit http://mysite.com. Verify that:
- The homepage loads correctly
- Images and static assets are present
- Contact forms work
- Admin panel login works
Use Certbot for free Let's Encrypt SSL certificates:
apt install certbot python3-certbot-nginx -y # for Nginx
# or
apt install certbot python3-certbot-apache -y # for Apache
certbot --nginx -d mysite.com -d www.mysite.com
Certbot will automatically configure the HTTP → HTTPS redirect and set up auto-renewal.
Once you've confirmed everything works, go to your domain registrar's control panel and update the A record:
| Type | Name | Value | TTL |
|---|---|---|---|
| A | @ | NEW_VPS_IP | 300 |
| A | www | NEW_VPS_IP | 300 |
Set the TTL to 300 seconds (5 minutes) a few hours before migration for fast propagation. Full DNS propagation can take anywhere from a few minutes to 48 hours depending on your registrar and the previous TTL value.
hosts file saves time and prevents visible downtime for your usersMigrating to an SSD VPS is a significant step forward for any web project. By following the steps outlined above, you can make the transition with minimal downtime and no data loss. The keys to success are a complete backup, thorough testing, and patience during DNS propagation.
If you'd rather focus on your business and leave the migration to the experts, the CLIQHOST team offers VPS SSD administration and migration services for clients in Moldova and across the region. Our SSD servers are optimised for maximum speed and high availability.
Real reviews from customers who trust CLIQHOST for performance, reliability and expert technical support.
"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."