Migrazione WordPress senza downtime: checklist tecnica per spostare un sito a hosting senza farlo cadere

Spostare un sito WordPress tra hosting è il momento in cui più siti cadono. La procedura corretta — DNS, redirect, verifica integrità, rollback — permette una migrazione a zero downtime percepito. La checklist completa.
La migrazione è il momento in cui più siti WordPress cadono. Non per la complessità tecnica in sé — copiare file e database non è difficile — ma per l'insieme di dettagli che, trascurati, si sommano: il DNS che propaga a metà, gli URL hardcoded nel database, i certificati SSL non configurati sul nuovo server, le email che smettono di funzionare. Ognuno di questi, da solo, è gestibile; presi insieme senza un metodo, diventano un sito fuori linea per ore.
Una migrazione a zero downtime non significa «nessun secondo di interruzione tecnica» — significa zero downtime percepito dall'utente. Il visitatore non nota nulla perché, per tutto il tempo in cui lavori dietro le quinte, il vecchio server continua a servire il sito. Il cambio avviene in modo trasparente quando il DNS propaga. Ecco la procedura che usiamo, passo per passo.
Fase 1 — Clonare sul nuovo hosting senza toccare il vecchio
Il principio fondamentale: non toccare mai il sito di produzione finché il nuovo non è completamente funzionante e verificato. Clona file e database sul nuovo server lasciando il vecchio intatto e attivo. Con WP-CLI la parte tecnica è rapida:
# Sul NUOVO server — clona dal vecchio senza toccarlo
# 1. Scarica i file via rsync (il vecchio resta attivo)
rsync -avz user@vecchio-server:/var/www/wp/ /var/www/wp/
# 2. Esporta il database dal vecchio server
ssh user@vecchio-server "wp db export - --path=/var/www/wp" > dump.sql
# 3. Importa nel nuovo database
wp db import dump.sql --path=/var/www/wp
# 4. Sostituisci gli URL se il dominio cambia (se resta uguale, salta)
wp search-replace 'https://vecchio-dominio.it' 'https://www.dominio.it' --path=/var/www/wpFase 2 — Verificare il nuovo sito senza cambiare il DNS
Prima di puntare il DNS, devi poter verificare che il nuovo sito carichi correttamente. Il problema: il dominio punta ancora al vecchio server. La soluzione è l'header Host o il file hosts locale, che fa credere al tuo computer che il dominio punti già al nuovo IP:
# Opzione A: file hosts locale (verifica dal tuo computer)
# Aggiungi una riga con l'IP del NUOVO server + il dominio
sudo nano /etc/hosts
# Inserisci: 203.0.113.10 www.dominio.it dominio.it
# Salva, poi visita il sito nel browser: caricherà dal nuovo server
# Opzione B: verifica via cURL con header Host (da terminale)
curl --resolve www.dominio.it:443:203.0.113.10 https://www.dominio.it/ -I
# Restituisce gli header HTTP dal nuovo server senza toccare il DNSFase 3 — Verificare l'integrità dei contenuti
Un sito che carica non è un sito corretto. Verifica che i contenuti siano completi: conta i post, i prodotti, le immagini media. Una migrazione interrotta a metà può lasciare il database senza i file allegati, o i file senza i riferimenti nel database.
# Confronta i conteggi tra vecchio e nuovo server
# Sul VECCHIO server
wp post list --format=count --post_type=post --path=/var/www/wp
wp post list --format=count --post_type=product --path=/var/www/wp
wp media list --format=count --path=/var/www/wp
# Sul NUOVO server — i numeri devono coincidere
wp post list --format=count --post_type=post --path=/var/www/wp
wp post list --format=count --post_type=product --path=/var/www/wp
wp media list --format=count --path=/var/www/wpFase 4 — Il cambio DNS a basso TTL
Solo quando il nuovo sito è verificato e completo si cambia il DNS. Il trucco per minimizzare il tempo di propagazione è abbassare il TTL (Time To Live) del record DNS giorni prima della migrazione: così, quando cambi il valore, i resolver DNS lo aggiornano in pochi minuti invece di ore.
# Giorni prima della migrazione: abbassa il TTL del record A
# Da 3600s (1 ora) a 300s (5 minuti) nel pannello DNS
#
# Il giorno della migrazione:
# 1. Verifica che il nuovo server sia pronto (fasi 1-3)
# 2. Cambia il record A al nuovo IP
# 3. Verifica la propagazione:
dig +short www.dominio.it A
# Ripeti ogni 2 minuti finché restituisce il nuovo IP
# 4. Con TTL a 300s, la maggior parte del traffico si sposta in 5-10 minutiFase 5 — Redirect e rollback
Dopo il cambio DNS, configura sul vecchio server un redirect 301 verso il nuovo. Se un visitatore arriva ancora al vecchio IP (DNS non propagato), viene reindirizzato al nuovo invece di vedere un sito staccato. E tieni pronto il rollback: se il nuovo server ha problemi gravi nelle prime ore, puoi ripuntare il DNS al vecchio in pochi minuti — perché non lo hai spento.
Una migrazione fatta bene è invisibile. Il visitatore non vede nulla; i motori di ricerca non perdono indicizzazione; gli ordini non si interrompono. Una migrazione fatta male è ore di sito fuori linea, posizioni SEO perse, clienti che vedono errori. La differenza non è la velocità delle mani: è avere la checklist e seguirla nell'ordine giusto. In WP Planet la migrazione assistita è inclusa nei piani di hosting cloud: la facciamo noi, con rollback pronto, e il cliente non si accorge di nulla.
Verifica lo stato del tuo WordPress con un check-up gratuito.
Analisi di sicurezza, prestazioni e configurazione tecnica senza impegno commerciale.
Articoli correlati

Backup realtime e disaster recovery WordPress: quando serve davvero (e quando è spesa inutile)
Leggi
Schermata bianca WordPress: diagnosticare l'errore critico e ripristinare il sito in 5 passi
Leggi
