Migrazione sito WordPress ed email: checklist tecnica completa
Come migrare un sito WordPress e le caselle email a un nuovo hosting senza downtime. Checklist operativa con DNS, propagazione, MX records, IMAP, test e rollback.

Una migrazione senza downtime richiede una sequenza precisa: prima sposti i file e il database, poi testi sul nuovo hosting con il file hosts, poi abbassi il TTL DNS, poi propaghi il DNS, infine migri le email IMAP. L'ordine conta: email e sito si migrano in fasi separate per non perdere messaggi durante la propagazione DNS.
Migrare un sito WordPress a un nuovo hosting è una delle operazioni tecniche più comuni - è una delle più sbagliate quando non si segue una sequenza corretta. I problemi tipici: sito offline per ore durante la propagazione DNS, email perse durante il cambio MX, database che punta ancora al vecchio server, cache che mostra la vecchia versione.
Questa guida copre la migrazione sia del sito web (WordPress o qualsiasi sito PHP/statico) sia delle caselle email, con attenzione a evitare perdita di dati e downtime.
Prima di iniziare: mappa tutto
Una migrazione fatta bene parte dall'inventario. Prima di toccare qualsiasi configurazione:
Inventario sito:
- Versione WordPress, PHP e database (MySQL/MariaDB)
- Lista plugin attivi con versioni
- Spazio disco usato (
du -sh public_html/) - Dimensione database (
mysqldump | wc -co da phpMyAdmin) - Configurazioni custom in
.htaccess,wp-config.php,php.ini - Certificato SSL: chi lo gestisce (hosting, Cloudflare, Let's Encrypt)?
Inventario email:
- Quante caselle email esistono
- Dimensione totale mailbox per casella
- Client email usati dai destinatari (Outlook, Gmail, Apple Mail, webmail)
- Record MX attuali (
dig MX tuodominio.it) - Eventuali record SPF, DKIM, DMARC configurati
Inventario DNS:
- Dove sono gestiti i DNS (registrar, Cloudflare, hosting)
- TTL attuale dei record principali (
dig tuodominio.it +noall +answer) - Record speciali: CNAME per sottodomini, record SRV, TXT extra
Fase 1: abbassa il TTL DNS
Questa operazione va fatta 24-48 ore prima della migrazione, non il giorno stesso.
Il TTL (Time To Live) determina quanto a lungo i resolver DNS mantengono in cache i tuoi record. Se il TTL e 86400 (24 ore, valore di default comune), dopo il cambio DNS ci vogliono fino a 24 ore perché tutti i visitatori vedano il nuovo server.
Abbassalo a 300 secondi (5 minuti) prima della migrazione:
- Su Cloudflare: Dashboard > DNS > clicca sul record A > modifica TTL
- Su altri DNS manager: cerca la colonna TTL nella lista dei record
- Sul registrar: pannello di gestione DNS
Dopo aver abbassato il TTL, aspetta che il TTL precedente sia scaduto (attendi almeno il tempo del TTL vecchio) prima di procedere con la migrazione.
Fase 2: backup completo dal vecchio hosting
Prima di spostare qualsiasi cosa, backup completo verificato:
# Backup file system
tar --exclude='wp-content/cache' \
--exclude='wp-content/uploads/cache' \
-czf backup-sito-$(date +%Y%m%d).tar.gz public_html/
# Backup database
mysqldump --single-transaction --quick \
--user=db_user --password nome_database \
> backup-db-$(date +%Y%m%d).sql
Scarica entrambi i backup in locale e verifica che il file del database non sia vuoto e abbia dimensione coerente.
Fase 3: crea il sito sul nuovo hosting
Crea il database: su cPanel del nuovo hosting, crea un database e un utente MySQL con tutti i privilegi. Annota nome database, utente e password.
Carica i file: via FTP/SFTP o File Manager, carica i file del sito nella cartella corretta del nuovo hosting (public_html/ o la cartella del dominio).
Importa il database: via phpMyAdmin del nuovo hosting, importa il file .sql. Se il file e grande, usa WP-CLI o la riga di comando:
mysql -u nuovo_utente -p nuovo_database < backup-db-$(date +%Y%m%d).sql
Aggiorna wp-config.php: le credenziali del database nel nuovo hosting sono diverse. Modifica wp-config.php con i nuovi valori:
define( 'DB_NAME', 'nuovo_nome_database' );
define( 'DB_USER', 'nuovo_utente_db' );
define( 'DB_PASSWORD', 'nuova_password_db' );
define( 'DB_HOST', 'localhost' );
Fase 4: verifica il sito sul nuovo hosting prima di cambiare DNS
Questo passo è fondamentale per evitare downtime. Prima di puntare il DNS al nuovo hosting, verifica che il sito funzioni correttamente li.
Metodo 1 - File hosts: modifica il file /etc/hosts (Linux/Mac) o C:\Windows\System32\drivers\etc\hosts (Windows) aggiungendo:
NUOVO_IP_HOSTING tuodominio.it
NUOVO_IP_HOSTING www.tuodominio.it
Dove NUOVO_IP_HOSTING e l'indirizzo IP del nuovo server. Ora il tuo computer risolve il dominio sul nuovo server, mentre il resto del mondo vede ancora il vecchio. Apri il browser e verifica:
- Homepage carica correttamente
- Link interni funzionano
- Immagini e media sono presenti
- Form di contatto funzionano
- Se e WooCommerce: aggiungi un prodotto al carrello e simula il checkout
- Accesso admin funziona
Metodo 2 - IP temporaneo: alcuni hosting assegnano un URL temporaneo del tipo temp-url.hosting.com/~utente/. Usalo per la verifica iniziale.
Rimuovi le righe dal file hosts dopo la verifica.
Fase 5: certificato SSL sul nuovo hosting
Prima di cambiare DNS, assicurati che il certificato SSL sia pronto sul nuovo hosting.
Let's Encrypt via cPanel: Bacheca cPanel > SSL/TLS > Let's Encrypt. Genera il certificato per il dominio. Attenzione: Let's Encrypt verifica il dominio via DNS o HTTP. Se il DNS non punta ancora al nuovo hosting, la verifica HTTP non funziona. Usa la verifica DNS o aspetta dopo il cambio DNS.
Cloudflare SSL: se usi Cloudflare come proxy, il certificato di Cloudflare copre automaticamente il dominio. Il nuovo hosting deve avere un certificato valido per la connessione tra Cloudflare e il server (certificato origin).
Certificato commerciale: se hai un certificato SSL a pagamento, dovrai richiederlo al tuo provider con la nuova CSR generata sul nuovo hosting.
Fase 6: cambia i record DNS
Quando il sito è verificato sul nuovo hosting e il certificato è pronto:
Aggiorna il record A (e AAAA per IPv6 se presente) del dominio principale e di www con il nuovo IP:
tuodominio.it-> nuovo IPwww.tuodominio.it-> nuovo IP
Se usi Cloudflare come proxy (nuvola arancione), aggiorna l'IP nell'origin record di Cloudflare.
Non toccare ancora i record MX se le email sono ancora sul vecchio hosting: la migrazione email avviene separatamente.
Dopo il cambio DNS, il vecchio hosting resta online (non spegnerlo ancora). Durante la propagazione, alcuni visitatori vedono ancora il vecchio sito. Per questo motivo il vecchio sito deve restare uguale: nessuna modifica ai contenuti durante la propagazione.
Fase 7: migrazione email - l'ordine e critico
La migrazione email va fatta dopo che il sito è stabile sul nuovo hosting, non in contemporanea. Questo perché durante la propagazione DNS i messaggi possono arrivare al vecchio o al nuovo server in modo imprevedibile.
Sequenza corretta:
- Crea le caselle email sul nuovo hosting prima di spostare i record MX
- Migra il contenuto IMAP: copia i messaggi dal vecchio al nuovo server usando un client email o un tool di migrazione
- Verifica che tutti i messaggi siano presenti sul nuovo server
- Solo allora cambia i record MX
Tool per migrazione IMAP:
Da riga di comando con imapsync (disponibile su molti server Linux):
imapsync \
--host1 vecchio.hosting.it --user1 [email protected] --password1 vecchia_password \
--host2 nuovo.hosting.it --user2 [email protected] --password2 nuova_password
Alternativa: configura il client email del destinatario con entrambi gli account e trascina manualmente le cartelle. Lento ma affidabile per un numero ridotto di caselle.
Cambio record MX:
Dopo la migrazione IMAP, aggiorna i record MX nel DNS:
- Rimuovi i vecchi record MX
- Aggiungi i nuovi record MX forniti dal nuovo hosting
- Abbassa il TTL dei record MX a 300 prima del cambio
Durante la propagazione MX (fino a 4-6 ore), alcuni messaggi arrivano ancora al vecchio server. Per questo motivo il vecchio server email deve restare attivo almeno 24 ore dopo il cambio MX.
Fase 8: aggiorna SPF, DKIM e DMARC
I record di autenticazione email vanno aggiornati con le informazioni del nuovo hosting. Se mancano o sono sbagliati, le email inviate dal nuovo hosting finiscono in spam.
SPF: deve includere i server del nuovo hosting. Il vecchio hosting va rimosso. Esempio:
v=spf1 include:nuovo-hosting.com ~all
DKIM: il nuovo hosting genera una nuova chiave DKIM. Trovi il record TXT da aggiungere al DNS nel pannello email del nuovo hosting (di solito cPanel > Autenticazione email).
DMARC: se ce l'hai, verificalo. Se il selettore DKIM e cambiato, il DMARC deve restare in p=none temporaneamente finché non sei sicuro che DKIM funzioni.
Verifica dopo il cambio con:
dig TXT _spf.tuodominio.it
dig TXT default._domainkey.tuodominio.it
Fase 9: test post-migrazione
Prima di dichiarare la migrazione completata:
- Sito carica correttamente su più browser e connessioni diverse
- HTTPS funziona senza avvisi di certificato
- Nessun redirect a vecchi URL o IP
- Immagini e media caricano tutti
- Form di contatto inviano email e arrivano
- WooCommerce: checkout funziona, email ordine arriva, gateway risponde
- Pannello admin accessibile e funzionale
- Caselle email ricevono messaggi di test
- Email inviate non finiscono in spam (usa mail-tester.com)
- Record SPF, DKIM e DMARC verificati con MXToolbox
Fase 10: spegni il vecchio hosting
Non farlo prima di:
- almeno 48-72 ore dalla propagazione DNS completata
- almeno 24 ore dalla propagazione MX completata
- aver verificato che nessuna richiesta arrivi ancora al vecchio IP (controlla i log del vecchio server)
- aver esportato tutti i backup dal vecchio hosting (alcuni provider li cancellano alla scadenza)
Casi particolari
Migrazione sito non WordPress
Il processo di base è lo stesso: backup file, backup database (se presente), carica sul nuovo hosting, verifica, cambia DNS. Per siti statici (HTML/CSS) non c'è database. Per siti PHP custom, verifica la compatibilità della versione PHP tra vecchio e nuovo hosting.
Migrazione WooCommerce con ordini attivi
Per e-commerce in produzione con ordini continuativi, il downtime anche minimo ha impatto economico. Usa questo approccio:
- Metti il negozio in modalità manutenzione durante la finestra di migrazione
- Esporta gli ordini recenti subito prima del DNS switch
- Verifica che gli ordini creati durante la propagazione non vadano persi (dipende da quanto dura la propagazione)
- Testa il checkout completo prima di togliere la manutenzione
Migrazione da hosting condiviso a VPS
Oltre al sito, considera: la configurazione del server (PHP-FPM, Nginx/Apache, OPcache), i cron di sistema, le configurazioni server-side personalizzate che su hosting condiviso erano gestite dal provider. Su VPS devi gestirle tu.
Quando affidarsi a un tecnico
La migrazione e fattibile in autonomia se hai familiarita con DNS, FTP e database. Considera assistenza tecnica quando:
- il sito è un WooCommerce con volume di ordini che non puoi permetterti di perdere
- hai caselle email business critiche con anni di archivio
- il sito ha configurazioni custom complesse (multisite, integrazioni esterne, cron personalizzati)
- il vecchio hosting ha problemi tecnici che rendono il backup difficile
- hai già provato e qualcosa è andato storto
WPsec.it gestisce migrazioni WordPress con verifica pre/post, migrazione email IMAP e configurazione DNS. Contattaci per una valutazione.
Quanto tempo ci vuole per una migrazione WordPress completa?
La migrazione tecnica (copia file, database, configurazione) richiede 1-3 ore a seconda delle dimensioni del sito. La propagazione DNS richiede fino a 24-48 ore (ma con TTL abbassato a 5 minuti si riduce a meno di un'ora nella maggior parte dei casi). La migrazione email aggiunge 1-4 ore a seconda del volume di messaggi da spostare. In totale, con pianificazione corretta, un sito medio può essere migrato con meno di 30 minuti di downtime percepito.
Posso perdere email durante la migrazione dei record MX?
Il rischio esiste se non si segue la sequenza corretta. Per evitarlo: crea le caselle sul nuovo hosting prima di cambiare MX, migra il contenuto IMAP, poi cambia MX. Durante la propagazione MX alcuni messaggi possono arrivare al vecchio server: per questo il vecchio server email deve restare attivo almeno 24 ore dopo il cambio MX. I messaggi arrivati al vecchio server durante la propagazione vanno recuperati manualmente.
Dopo la migrazione WordPress le immagini non caricano: perché?
Cause tipiche: la cartella wp-content/uploads non è stata copiata completamente (verifica con find wp-content/uploads -type f | wc -l confrontando vecchio e nuovo hosting), oppure i permessi dei file sono sbagliati (devono essere 644 per file e 755 per cartelle), oppure .htaccess ha regole che bloccano i file media. Controlla anche che siteurl e home in wp_options puntino al nuovo URL e non al vecchio.
Come faccio a sapere se la propagazione DNS e completata?
Usa strumenti come dnschecker.org o il comando dig @8.8.8.8 tuodominio.it per controllare cosa vede il resolver di Google. Se mostra il nuovo IP, la propagazione e avvenuta da quel resolver. Con TTL a 300 secondi, la propagazione globale avviene tipicamente entro 15-30 minuti. Con TTL a 86400, possono volerci fino a 24 ore.
Devo fare qualcosa di speciale per migrare WordPress multisite?
Si, WordPress multisite richiede attenzione extra. Le tabelle del database hanno prefissi separati per ogni sottosito. Gli URL nei contenuti puntano ai domini di ogni sottosito. Se sposti i siti su un nuovo dominio principale, serve un search-replace nel database per aggiornare tutti gli URL. Usa WP-CLI: wp search-replace 'vecchio-dominio.it' 'nuovo-dominio.it' --network --precise. Verifica anche le configurazioni in wp-config.php per DOMAIN_CURRENT_SITE e SUBDOMAIN_INSTALL.
Scritto dal team WPsec
Team WPsec.it
Bonifica malware, hardening, performance e manutenzione WordPress.
Continua a leggere
Articoli correlati.

Checklist manutenzione WordPress mensile: fai-da-te per non farsi hackerare
Checklist operativa mensile per la manutenzione WordPress fai-da-te: aggiornamenti, backup, utenti, plugin, database, log e sicurezza. Cosa controllare ogni mese per ridurre il rischio di compromissione.

WordPress 7.0 RC2: checklist di test su staging
Checklist operativa per verificare tema, plugin, checkout, editor, log e rollback su staging prima di aggiornare un sito WordPress a 7.0.

I migliori plugin di backup per WordPress nel 2026: confronto e best practice
Quali plugin di backup WordPress scegliere nel 2026: UpdraftPlus, BlogVault, Solid Backups, Duplicator, BackWPup, VaultPress, All-in-One WP Migration. Affidabilità ripristini, prezzi, errori da evitare.