The idea in one sentence
Build the new environment completely, test it while the old one still serves visitors, and only then redirect traffic.
Step 1: Inventory what runs on the old host
Do not assume it is "just a website". List:
- Website files and the database
- Scheduled tasks (cron jobs)
- Email accounts (mailboxes hosted there, or only forwarding)
- Subdomains
- SSL certificates
- Server configuration (PHP version, extensions, redirects, rewrite rules)
- Anything that connects from outside (APIs, webhooks, IP-restricted services)
- Files outside the web folder (logs, uploads, generated reports)
Check your DNS records too. They show which services depend on the old host, including ones nobody remembers. A short account ownership audit helps when domain, host and mail sit under different logins.
Step 2: Lower the TTL, early
The TTL (time to live) of a DNS record tells the internet how long to remember the old address. If it is set to 24 hours, some visitors will keep reaching the old server for a day after the switch.
At least two days before the move, lower the TTL of the relevant records to something short, such as 5 minutes. After the move is stable, you can raise it again.
This one step avoids most of the "half the people see the new site, half see the old one" problem.
Step 3: Build the new environment
- Set up the server or hosting account with versions matching the old one as closely as possible (same major PHP, database and runtime versions). Upgrade later, not during the move
- Copy the files and the database
- Recreate cron jobs, redirects and configuration
- Install SSL certificates, or prepare automatic issuance (note that automatic certificates often need DNS to point to the new server first, so plan for it)
- Set up backups and monitoring on the new host right away
Step 4: Test on the new host before switching
You can test the new server using the real domain name without changing public DNS, by editing the hosts file on your own computer so that the domain points to the new server's IP address. Only your machine sees the new site.
Test the real flows:
- Pages, forms, logins
- Payments and checkout (including a real small transaction if it is a shop)
- Emails sent by the site (confirmation, password reset)
- Uploads, downloads, search
- Background jobs
Remember to remove the hosts entry afterwards, or you will be confused later about what you are seeing.
Planning a hosting move?
We can run the parallel build, DNS cutover and email checks so visitors never notice the switch.
Step 5: Handle data that changes
If the site writes data (orders, comments, registrations), data keeps arriving at the old server while you are building the new one. Two approaches:
- Short freeze: put the old site in maintenance mode or read-only for a few minutes, copy the latest database, then switch DNS. Simple, with a small interruption to writes.
- Continuous sync: replicate the database during the move, which is more complex but allows a true zero-interruption switch. Worth it for busy shops and applications.
For most small businesses, a short freeze at a quiet hour is fine and much less risky.
Step 6: Do not forget email
This is where moves most often go wrong. If you are also moving DNS (nameservers), follow migrating DNS without breaking email so MX, SPF, DKIM and DMARC survive the cutover.
- If your mailboxes are hosted at the old provider, you need to migrate them (including stored messages) or move email to a dedicated service before touching DNS
- Check the MX records, and the SPF, DKIM and DMARC records. If they point to the old server and you do not carry them over, outgoing emails may land in spam or be rejected
- If the website sends email (order confirmations, notifications), make sure the new server is authorised to send them
A good rule: separate web hosting and email, so a future hosting move does not touch your mailboxes at all.
Step 7: Switch
- Do a final copy of the data (or finish the freeze).
- Update the DNS records to the new server.
- Verify from several networks (office, mobile data, an online DNS checker).
- Watch logs on both servers. Traffic should move from old to new within minutes if the TTL was low.
- Leave the old server running in the meantime.
Step 8: After the switch
- Run a smoke test of every critical path
- Check error logs on the new server
- Check that scheduled tasks are running
- Confirm that backups are being made, and test a restore (see backups that actually restore). Document what is backed up, where, and who can restore in your exit plan
- Raise the TTL back to a normal value
- Keep the old host for one to two weeks, then cancel once nothing is arriving there
- Take a final backup of the old server before deleting it
Common pitfalls
- Forgetting email, covered above, and the number one cause of problems
- Hard-coded IP addresses in settings or in other systems' allowlists
- A database with the old domain stored inside it (common in WordPress, see also taking back a WordPress site)
- Missing PHP extensions or different server limits on the new host
- Wrong file permissions after the copy
- SSL certificate errors on launch day
- Cancelling the old host the same day
A realistic timeline
For a small site: a day of preparation, a couple of hours for the switch. For an application with a database, cron jobs and email: plan a week, including testing and a rollback option.
Always have a way back. If something goes wrong, you should be able to point DNS back to the old server within minutes. That is another reason to keep it running.
Need a cutover plan?
Tell us what is on the old host (web, mail, cron). We will propose an order of operations and a rollback.
L'idée en une phrase
Construire complètement le nouvel environnement, le tester pendant que l'ancien sert encore les visiteurs, et seulement ensuite rediriger le trafic.
Étape 1: Inventaire de l'ancien hébergeur
Ne partez pas du principe que c'est « juste un site ». Listez:
- Fichiers du site et base de données
- Tâches planifiées (cron)
- Comptes email (boîtes hébergées là, ou simple redirection)
- Sous-domaines
- Certificats SSL
- Configuration serveur (version PHP, extensions, redirections, règles de rewrite)
- Tout ce qui se connecte depuis l'extérieur (APIs, webhooks, services restreints par IP)
- Fichiers hors du dossier web (logs, uploads, rapports générés)
Vérifiez aussi les enregistrements DNS. Ils montrent quels services dépendent de l'ancien hébergeur, y compris ceux que plus personne ne se rappelle. Un audit de propriété des comptes aide quand domaine, hébergement et mail sont sous des logins différents.
Étape 2: Baisser le TTL, tôt
Le TTL (time to live) d'un enregistrement DNS indique combien de temps Internet garde en mémoire l'ancienne adresse. S'il vaut 24 heures, certains visiteurs continueront d'atteindre l'ancien serveur un jour après la bascule.
Au moins deux jours avant le déménagement, baissez le TTL des enregistrements concernés à une valeur courte, par exemple 5 minutes. Une fois la bascule stable, vous pourrez le remonter.
Cette seule étape évite la plupart des « la moitié des gens voient le nouveau site, l'autre moitié l'ancien ».
Étape 3: Construire le nouvel environnement
- Préparer le serveur ou le compte d'hébergement avec des versions aussi proches que possible de l'ancien (mêmes majeures PHP, base et runtime). Les mises à niveau, plus tard, pas pendant le déménagement
- Copier les fichiers et la base
- Recréer cron, redirections et configuration
- Installer les certificats SSL, ou préparer l'émission automatique (souvent le DNS doit déjà pointer vers le nouveau serveur: planifiez-le)
- Mettre en place sauvegardes et monitoring sur le nouvel hébergeur tout de suite
Étape 4: Tester avant de basculer
Vous pouvez tester le nouveau serveur avec le vrai nom de domaine sans changer le DNS public, en éditant le fichier hosts de votre machine pour pointer le domaine vers la nouvelle IP. Seule votre machine voit le nouveau site.
Testez les vrais parcours:
- Pages, formulaires, connexions
- Paiements et panier (y compris une petite transaction réelle pour une boutique)
- Emails envoyés par le site (confirmation, reset de mot de passe)
- Uploads, téléchargements, recherche
- Tâches d'arrière-plan
Pensez à retirer l'entrée hosts ensuite, sinon vous ne saurez plus ce que vous regardez.
Un déménagement d'hébergement en vue ?
On peut gérer la construction en parallèle, la bascule DNS et les contrôles email pour que les visiteurs ne voient rien.
Étape 5: Données qui continuent de changer
Si le site écrit des données (commandes, commentaires, inscriptions), elles continuent d'arriver sur l'ancien serveur pendant que vous construisez le nouveau. Deux approches:
- Gel court: mettre l'ancien site en maintenance ou lecture seule quelques minutes, copier la dernière base, puis basculer le DNS. Simple, avec une courte interruption des écritures.
- Sync continue: répliquer la base pendant le déménagement, plus complexe, mais vrai zéro interruption. Intéressant pour les boutiques et apps chargées.
Pour la plupart des PME, un gel court à une heure calme suffit et reste bien moins risqué.
Étape 6: Ne pas oublier l'email
C'est là que les déménagements plantent le plus souvent. Si vous bougez aussi le DNS (nameservers), suivez migrer le DNS sans casser l'email pour que MX, SPF, DKIM et DMARC survivent à la bascule.
- Si vos boîtes sont chez l'ancien prestataire, migrer les messages (ou passer l'email vers un service dédié) avant de toucher au DNS
- Vérifier MX, SPF, DKIM et DMARC. S'ils pointent vers l'ancien serveur et que vous ne les reprenez pas, les mails sortants partent en spam ou sont rejetés
- Si le site envoie des emails (confirmations, notifications), autoriser le nouveau serveur à les envoyer
Bonne règle: séparer hébergement web et email, pour qu'un prochain déménagement web ne touche plus vos boîtes.
Étape 7: La bascule
- Dernière copie des données (ou fin du gel).
- Mettre à jour les enregistrements DNS vers le nouveau serveur.
- Vérifier depuis plusieurs réseaux (bureau, data mobile, un outil DNS en ligne).
- Surveiller les logs des deux serveurs. Avec un TTL bas, le trafic bascule en quelques minutes.
- Laisser l'ancien serveur tourner entre-temps.
Étape 8: Après la bascule
- Smoke test de chaque parcours critique
- Logs d'erreur sur le nouveau serveur
- Vérifier que les tâches planifiées tournent
- Confirmer les sauvegardes, et tester une restauration (voir des sauvegardes qui restaurent vraiment). Documentez quoi, où, et qui peut restaurer dans votre plan de sortie
- Remonter le TTL à une valeur normale
- Garder l'ancien hébergeur une à deux semaines, puis résilier quand plus rien n'y arrive
- Prendre une dernière sauvegarde de l'ancien serveur avant de le supprimer
Pièges fréquents
- Oublier l'email, déjà couvert, cause numéro un des problèmes
- Adresses IP en dur dans la config ou dans des listes d'autorisation ailleurs
- Une base qui stocke l'ancien domaine en dur (fréquent sous WordPress, voir aussi reprendre un site WordPress)
- Extensions PHP manquantes ou limites serveur différentes
- Mauvaises permissions fichiers après la copie
- Erreurs de certificat SSL le jour J
- Résilier l'ancien hébergeur le jour même
Un planning réaliste
Pour un petit site: une journée de préparation, quelques heures pour la bascule. Pour une application avec base, cron et email: prévoir une semaine, tests et option de retour inclus.
Ayez toujours un chemin de retour. En cas de problème, vous devez pouvoir pointer le DNS vers l'ancien serveur en quelques minutes. Une raison de plus de le laisser tourner.
Besoin d'un plan de bascule ?
Dites-nous ce qu'il y a sur l'ancien hébergeur (web, mail, cron). On proposera un ordre d'opérations et un retour arrière.