Why you need to migrate from shared to VPS and when it's time to start
The transition from shared hosting to a virtual private server is driven by the need for guaranteed resources and full control over the software environment. On shared hosting, you share one physical server and one IP address with hundreds of other users. If a "neighbor" on the server receives a sudden spike in traffic or suffers a DDoS attack, your site will inevitably slow down. The shared to vps migration process allows you to isolate the project, allocating it a fixed amount of RAM and processor time (vCPU).
Main limitations of shared hosting
- LVE and Inodes limits: Hosters limit the number of files and concurrent processes.
- Outdated software: You cannot update the PHP or MySQL version to the one you need if the hoster hasn't done so.
- Lack of root access: It is impossible to install specific modules such as Redis, Memcached, or specific PHP extensions.
- Slow disk: Cheap plans often use HDDs or regular SSDs with low IOPS.
If your WordPress or Bitrix site starts taking longer than 3 seconds to load, and the cPanel dashboard displays "Resource Limit Reached" errors, it's time to plan a migrate cpanel shared to vps. Unlike the rigid frameworks of PaaS solutions, moving to your own server provides flexibility comparable to deciding to migrate from Heroku to VPS in 2026 to save budget and remove build time limits.
Choosing a server configuration for migrate cpanel shared to vps
When planning a cpanel migration, it is critically important to select the right resources. Shared hosting often masks real resource consumption. A server with 2 GB of RAM is the absolute minimum for a modern control panel and a single CMS-based site. For high-load projects or multiple sites, consider configurations with 4-8 GB RAM and NVMe drives.
Comparison of features and prices: Shared vs VPS
| Feature | Shared Hosting (Typical) | VPS (Valebyte Entry) | VPS (Valebyte Pro) |
|---|---|---|---|
| Processor (vCPU) | 0.5 - 1 Core (Shared) | 1 Dedicated Core | 2-4 Dedicated Cores |
| RAM | 512 MB - 1 GB | 2 GB RAM | 4 - 8 GB RAM |
| Disk Type | SATA SSD | NVMe SSD | NVMe SSD (High IOPS) |
| Bandwidth | 100 Mbps (Shared) | 1 Gbps (Dedicated) | 1 - 10 Gbps |
| Monthly Cost | $3 - $10 | $5 - $12 | $20 - $45 |
When choosing between virtualization and physical hardware, remember that for most web tasks a VPS is sufficient, but in specific scenarios, such as Bare-metal vs VPS for ML inference on CPU, the performance difference can be tenfold. For migrating from cPanel, a standard VPS on KVM virtualization will be more than enough.
Looking for a reliable server for your projects?
VPS from $10/mo and dedicated servers from $9/mo with NVMe, DDoS protection, and 24/7 support.
View offers →Preparing backups for cpanel migration
Before initiating a shared hosting to vps transfer, you must prepare an up-to-date copy of the data. cPanel has a built-in "Backup Wizard" tool; however, for manual transfer to panels like CloudPanel, it is better to make backups separately: files (Home Directory) and databases (MySQL).
Creating a database dump and file archive
Go to cPanel -> File Manager. Select the public_html folder (or your domain's folder) and click "Compress". Choose .zip or .tar.gz format. Once finished, download the archive to your local computer.
For the database, use phpMyAdmin:
- Select the required DB in the left menu.
- Go to the "Export" tab.
- Select the "Quick" method and "SQL" format.
- Click "Go" to save the file.
If you have SSH access on your shared hosting (many providers provide it upon request), use commands for a faster process:
# Archiving site files
tar -czvf site_backup.tar.gz public_html/
# Creating a database dump
mysqldump -u username -p database_name > db_backup.sql
This approach minimizes the risk of data corruption when downloading via a browser. If you have previously used cloud solutions, the process will be similar to how a migration from AWS Lightsail to VPS in 2026 occurs, where manual export of snapshots or application data is also required.
Looking for a server that just works?
Valebyte VPS — NVMe, 24/7 support, deploy in 60 seconds.
Setting up the target VPS: CloudPanel vs Plesk
For a successful migrate cpanel shared to vps, you need to choose a new control panel. cPanel on a VPS is expensive (from $15-20/mo for the license alone), so system administrators often choose alternatives.
CloudPanel — the choice for maximum performance
CloudPanel is a free panel focused on PHP applications. It does not support a mail server "out of the box" (it assumes the use of external services), but it works extremely fast due to the absence of unnecessary background processes. It is ideal if you want to squeeze the maximum out of 1-2 GB of RAM.
Plesk — if you need cPanel comfort
Plesk has a "Plesk Migrator" tool that can automatically perform a cpanel migration by connecting to the old hosting via SSH. This is a paid option, but it saves hours of manual work by transferring not only sites but also mailboxes, passwords, and DNS settings.
Installing CloudPanel on a clean Ubuntu 22.04/24.04 is done with a single command:
curl -sS https://installer.cloudpanel.io/ce/v2/install.sh | sudo bash
Step-by-step data transfer: shared hosting to vps
When the new server is ready, the main stage of the shared to vps migration begins. We need to transfer files from the old server to the new one. The fastest way is to use the scp or rsync utility.
File transfer and database import
Connect to your new VPS via SSH and run the command to download the backup directly from the old server (if SSH is allowed there):
scp username@old-shared-hosting:/home/username/site_backup.tar.gz /var/www/site/
After transferring the archive, it needs to be unpacked and the correct access permissions set. For CloudPanel, this is usually the clp-user:
tar -xzvf site_backup.tar.gz
chown -R clp-user:clp-user /var/www/my-website/htdocs/
find /var/www/my-website/htdocs/ -type d -exec chmod 755 {} \;
find /var/www/my-website/htdocs/ -type f -exec chmod 644 {} \;
To import the database, create a new empty DB in the VPS control panel, note the username and password, then import the dump:
mysql -u new_db_user -p new_db_name < db_backup.sql
Don't forget to update your site's configuration file (e.g., wp-config.php for WordPress or .env for Laravel), specifying the new database connection details.
Setting up mail and DNS after migration
The most difficult part of migrate cpanel shared to vps is maintaining email functionality. Shared hosting usually provides a built-in mail server. On a VPS, you will either have to set up your own (Postfix/Dovecot) or switch to external services (Yandex 360, Google Workspace, Zoho Mail).
Updating DNS records
For the site to work in the new location, you need to change the A-record in your domain settings. Set the TTL (Time To Live) to 300-600 seconds a day before the migration so that the changes take effect instantly.
- A-record: Specify the IP address of your new VPS.
- MX-records: If you moved mail to an external service, specify their servers. If using Plesk with mail, specify your VPS IP.
- SPF, DKIM, DMARC: Be sure to set up these records, otherwise your emails from the new IP will end up in spam.
If you use Cloudflare for DNS management, the process is simplified as you don't have to wait for domain propagation. This is reminiscent of the flexibility gained by users who decide to migrate from Cloudflare Workers to VPS to run a full backend instead of Edge functions.
Looking for a server that just works?
Valebyte VPS — NVMe, 24/7 support, deploy in 60 seconds.
SSL certificates and security check
After the DNS has updated, it is necessary to issue an SSL certificate. On shared hosting, cPanel often uses AutoSSL (Comodo/Sectigo). On a VPS, Let's Encrypt is the standard.
Issuing a certificate via Certbot
In CloudPanel or Plesk, this is done with one button in the "SSL" section. If you are setting up the server manually (Nginx/Apache), use Certbot:
sudo apt update
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
After installing SSL, check the site for Mixed Content. All links in the database should use https://. For WordPress, this is conveniently done via the "Better Search Replace" plugin or WP-CLI.
Firewall Configuration
Unlike shared hosting, VPS security is your responsibility. Close all unnecessary ports using UFW:
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 21/tcp
ufw enable
Performance optimization after shared hosting to vps
After completing the shared hosting to vps transfer, you will notice a speed increase. However, to fully realize the potential of NVMe disks and dedicated memory, you need to perform tuning.
- PHP-FPM: Configure
pm.max_childrendepending on the amount of RAM. For 2 GB RAM, 10-15 processes is optimal. - OPcache: Make sure the module is enabled. It caches compiled PHP bytecode in memory.
- Redis: Install Redis and configure it as an object cache for your CMS. This will reduce the load on MySQL by 3-5 times.
- Gzip/Brotli: Enable compression in Nginx to speed up text data transfer.
Benchmarks show that a site on a VPS with configured Redis and PHP 8.3 handles page generation in 150-200ms, while on an overloaded shared hosting this time can reach 800-1200ms. This is a critical factor for SEO and user retention.
Conclusions
Moving from cPanel shared hosting to a VPS is a necessary step for a growing business, providing independence from server neighbors and full control over the technology stack. For migration, we recommend using a VPS with at least 2 GB of RAM and the CloudPanel dashboard for maximum performance or Plesk for process automation. Make regular backups and don't forget to set up SPF/DKIM records to maintain high email deliverability after changing the IP address.
Ready to choose a server?
VPS and dedicated servers in 72+ countries with instant activation and full root access.
Start now →