// ssd vps

How to Migrate a Website to an SSD VPS: Complete Step-by-Step Guide

August 05, 2026 · by CLIQHOST

How to Migrate a Website to an SSD VPS: Complete Step-by-Step Guide

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.


Why Migrate to an SSD VPS?

Before diving into the technical steps, it's worth understanding the concrete benefits:

  • Much faster read/write speeds compared to classic HDDs — essential for high-traffic websites
  • Lower latency on data access — faster response time for every request
  • Dedicated resources — no more sharing CPU and RAM with dozens of other users
  • Full control over server configuration (PHP versions, modules, firewall rules, etc.)

What You Need Before You Start

Make sure you have:

  1. SSH access to the new SSD VPS (root or sudo user)
  2. Credentials for the source hosting or VPS
  3. An SFTP client (FileZilla, WinSCP) or terminal access
  4. Access to the DNS control panel for your domain
  5. Enough time — schedule the migration during low-traffic hours

Step 1: Create a Full Backup of the Source Site

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/

Step 2: Prepare the New SSD VPS

Connect to the new server via SSH:

ssh root@NEW_VPS_IP

Update the System

apt update && apt upgrade -y    # for Ubuntu/Debian
# or
yum update -y                   # for CentOS/AlmaLinux

Install a LAMP or LEMP Stack

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

Secure the MySQL Installation

mysql_secure_installation

Follow the interactive prompts: set a root password, remove anonymous users, and disable remote root access.


Step 3: Create the MySQL Database and User on the New Server

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;

Import the Database Backup

mysql -u root -p mysite_db < /root/backup_db_20240601.sql

Step 4: Transfer and Extract Site Files

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=3 removes the path prefix from the archive. Adjust the number based on your archive structure (inspect it with tar -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 {} \;

Step 5: Configure the Virtual Host

Nginx Configuration

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

Apache Configuration (Alternative)

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

Step 6: Update the Application Configuration Files

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';

Step 7: Test the Site Before Changing DNS

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


Step 8: Install SSL and Enable HTTPS

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.


Step 9: Update the Domain's DNS Records

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.


Common Mistakes to Avoid

  • Don't delete the old hosting immediately after updating DNS — keep it active for at least 48–72 hours
  • Don't forget upload directories (wp-content/uploads, cache folders, etc.) — make sure they're included in the backup
  • Don't ignore file permissions — incorrect permissions cause 403 or 500 errors
  • Don't skip local testing — editing the hosts file saves time and prevents visible downtime for your users

Conclusion

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

SHARE
// what clients say

What Our Clients Say

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

AM
Andrei M.
eCommerce owner · Chișinău
★★★★★

"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."

EV
Elena V.
Web agency · Bălți
★★★★★

"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."

DC
Dmitri C.
SaaS founder · Chișinău