L'hébergement mutualisé fonctionne pour les petits sites jusqu'à ce qu'il ne fonctionne plus. Les signes classiques : pages qui ralentissent aux heures de pointe, restrictions de panneau bloquant les logiciels nécessaires, suspension de votre compte parce qu'un autre locataire a fait une mauvaise query, ou simplement avoir dépassé ce qu'un plan "illimité" délivre réellement.
Décidez si vous êtes vraiment prêt
Avant de migrer, soyez honnête : un VPS vous donne le contrôle, mais vous devenez responsable de tout ce que l'hébergeur mutualisé gérait automatiquement. Mises à jour, patches sécurité, backups, monitoring, config mail — tout sur vous.
Choisir la taille du VPS
Pour un site typique migré, notre Cloud VPS Basic (3,48 €/mois : 1 Go / 1 vCPU / 25 Go) gère les sites WordPress jusqu'à ~10K pageviews/mois. Advanced (7,48 €/mois : 2 Go / 1 vCPU / 60 Go) jusqu'à ~50K. Si pas sûr, commencez avec Basic — vous pouvez resize en 90 secondes.
Provisionner le VPS et préparer l'OS
Choisissez Ubuntu 24.04 LTS. Après provisioning, SSH en root, immédiatement :
apt update && apt upgrade -y
adduser votrenom
usermod -aG sudo votrenom
mkdir /home/votrenom/.ssh
cp /root/.ssh/authorized_keys /home/votrenom/.ssh/
chown -R votrenom:votrenom /home/votrenom/.ssh
chmod 700 /home/votrenom/.ssh
chmod 600 /home/votrenom/.ssh/authorized_keys
sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart ssh
ufw allow OpenSSH
ufw allow 'Nginx Full'
ufw enable
timedatectl set-timezone Europe/Paris
Installer la stack LEMP
apt install -y nginx mariadb-server php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip php8.3-intl php8.3-bcmath php8.3-redis redis-server certbot python3-certbot-nginx
mysql_secure_installation
Backup depuis le mutualisé
Fichiers :
rsync -avz --progress vieuxuser@vieuxhost.example.com:/home/vieuxuser/public_html/ /tmp/oldsite/
Base de données :
mysqldump -u olduser -p old_database_name > olddb.sql
Transférer vers le VPS
scp -r /tmp/oldsite votrenom@new-vps-ip:/tmp/
scp olddb.sql votrenom@new-vps-ip:/tmp/
# Sur le VPS
sudo mkdir -p /var/www/votresite.com
sudo cp -r /tmp/oldsite/* /var/www/votresite.com/
sudo chown -R www-data:www-data /var/www/votresite.com
mysql -u root wp_votresite < /tmp/olddb.sql
Mettre à jour wp-config.php
Mettez à jour DB credentials, host (maintenant localhost), et toute référence de chemin. Pour WordPress, mettez aussi à jour l'URL via WP-CLI :
cd /var/www/votresite.com
sudo -u www-data wp search-replace 'http://oldsite.example.com' 'https://newsite.example.com'
Configurer Nginx
Créez /etc/nginx/sites-available/votresite.com avec un server block standard, activez avec ln -s, testez avec nginx -t, rechargez.
Tester avant le cutover DNS
Éditez votre /etc/hosts local pour pointer votresite.com vers la nouvelle IP. Testez. Vérifiez : pages chargent, login marche, images affichent, formulaires soumettent.
Le cutover DNS
- 24h avant : réduisez TTL DNS à 300 secondes
- Cutover : changez le record A vers la nouvelle IP
- Obtenez le certificat :
certbot --nginx -d votresite.com -d www.votresite.com - Testez depuis externe
- Après 24h : remontez TTL à 3600+
Ne tuez pas l'ancien site immédiatement
Gardez l'ancien compte mutualisé tournant au moins une semaine. Si vous découvrez quelque chose qui manque — une image, une row DB, une règle .htaccess custom — vous pouvez encore récupérer.
Setup backups, correctement
Vous êtes maintenant responsable de vos propres backups. Approche minimum viable : cron quotidien dumpant DB et tarballant fichiers, retention 30 jours, sync off-site via rclone.
Ce que vous avez gagné
- Accès root complet
- Plus de "votre compte est suspendu"
- SSH réel
- Contrôle complet du serveur mail si désiré
- Configurations sous-domaines custom
- Capacité de croître avec votre trafic