Per migrare un sito WordPress su un nuovo hosting fai un backup completo, installi un WordPress vuoto sul server di destinazione, trasferisci file e database con un plugin di migrazione, collaudi la copia su un indirizzo temporaneo e solo alla fine sposti i DNS. Se ti serve spostare i soli articoli e le sole pagine, ti basta l'esportazione integrata in Strumenti → Esporta, senza plugin aggiuntivi.
Il timore che ferma quasi tutti è lo stesso: perdere contenuti o lasciare il sito irraggiungibile per un giorno intero. Non deve succedere, e alla fine di questa guida avrai una procedura completa per ognuno degli scenari possibili, comprese le verifiche da fare dopo lo spostamento.
Cosa serve prima di iniziare
Cinque cose, e vale la pena averle tutte sul tavolo prima di toccare qualsiasi impostazione:
- Accesso amministratore al sito di partenza, quello che in genere trovi su
/wp-admin. Se hai perso la password, recuperala prima: a migrazione avviata è molto più scomodo. La procedura è nella guida su come accedere all'area di amministrazione. - Credenziali del nuovo hosting: accesso al pannello, dati FTP o SFTP e la possibilità di creare un database MySQL con il relativo utente.
- Accesso al pannello dove sono gestiti i DNS del dominio. Non sempre coincide con l'hosting: se il dominio è stato registrato altrove, i DNS si cambiano dal registrar.
- Un backup recente e verificato, che è la vera rete di sicurezza dell'operazione. Se non ne hai uno, parti da come fare il backup di un sito WordPress.
- La versione di PHP del nuovo server. Deve essere pari o superiore a quella di partenza: se il vecchio ha PHP 8.2 e il nuovo è fermo a 7.4, tema e plugin possono smettere di funzionare appena spostati.
Annota anche lo spazio occupato dal sito, cartella wp-content/uploads/ compresa: è il numero che decide quale metodo puoi usare.
Quale metodo scegliere
| Situazione | Metodo consigliato | Tempo indicativo |
|---|---|---|
| Sito completo sotto i 256 MB | All-in-One WP Migration | 30-60 minuti |
| Sito completo oltre i 256 MB | Duplicator o migrazione manuale | 1-3 ore |
| Solo articoli e pagine | Esportazione XML integrata | 20-40 minuti |
| Hai accesso SSH | WP-CLI | 20-30 minuti |
| E-commerce con ordini attivi | Manuale, con finestra pianificata | 2-4 ore |
Nel dubbio, se il sito è piccolo parti dal primo metodo: ha meno passaggi manuali.
Strumento 1: WordPress Importer/Exporter (built-in)
L'export nativo di WordPress, in Strumenti → Esporta.
Esporta articoli, pagine, custom post type, categorie, tag, commenti e i riferimenti ai media. Non esporta i file dei media, il tema, i plugin, le impostazioni e i widget: quelli restano sul vecchio sito e vanno rimessi a mano sul nuovo. Gli utenti vengono inclusi solo se hanno firmato dei contenuti.
Come si fa
- Sito sorgente: Strumenti → Esporta → scegli "Tutto il contenuto" o sezione specifica → scarica XML (WXR)
- Sito destinazione: Strumenti → Importa → installa "WordPress Importer" → carica XML
- Mappa autori (utenti del nuovo sito) e scegli se importare allegati (scarica i media dal sito vecchio se ancora online)
Limiti
Per siti grandi l'XML diventa pesante e l'import si interrompe per timeout PHP. Puoi suddividere il file con WXR Splitter oppure importarlo da riga di comando con wp import file.xml --authors=create, che ignora i limiti dell'interfaccia web.
Strumento 2: All-in-One WP Migration
Plugin gratuito tra i più usati per le migrazioni complete, ed è il percorso più breve se il sito sta sotto i 256 MB.
- Installa il plugin sul sito di partenza e apri All-in-One WP Migration → Esporta: ottieni un unico file
.wpressda scaricare. - Installa lo stesso plugin sul WordPress vuoto del nuovo hosting e apri Importa, poi carica il file.
- Conferma la sostituzione. Il plugin rimpiazza per intero il sito di destinazione con quello di partenza, database, media, plugin e tema compresi, e riscrive da solo gli indirizzi interni senza rompere i dati serializzati.
Da sapere prima di sceglierlo: oltre i 256 MB serve un'estensione a pagamento, la sostituzione è totale e quindi non è adatto a migrazioni parziali, e alla fine le credenziali di accesso diventano quelle del sito di partenza.
Strumento 3: Duplicator
Genera un pacchetto composto da un archivio e da un installatore PHP, che si carica sul nuovo hosting. È la scelta giusta quando la destinazione è vuota o quando il file supera i limiti del metodo precedente.
- Crea il pacchetto dal sito di partenza e scarica i due file,
installer.phpe l'archivio.zip. - Caricali nella cartella principale del nuovo dominio via FTP, uno accanto all'altro.
- Apri
tuodominio.it/installer.phpnel browser e segui la procedura guidata, che chiede i dati del database creato sul nuovo hosting e si occupa da sola della sostituzione degli indirizzi. - Cancella l'installatore e l'archivio appena la procedura è finita: restano accessibili a chiunque conosca l'indirizzo.
La versione gratuita ha limiti sulla dimensione dei pacchetti e non include i backup pianificati, che sono a pagamento.
Altri strumenti e riga di comando
UpdraftPlus nasce per i backup e migra con un componente aggiuntivo a pagamento. WP Migrate è per chi sincronizza abitualmente sviluppo e produzione.
Se hai accesso SSH, WP-CLI è la via più rapida e non ha i limiti di dimensione dei plugin:
wp db export backup.sql
wp search-replace 'vecchiosito.it' 'nuovosito.it' --skip-columns=guid
wp db import backup.sql
La migrazione passo per passo
Questa è la sequenza completa per spostare un sito da un hosting all'altro mantenendo lo stesso dominio. L'ordine conta: è quello che tiene il sito raggiungibile per tutta la durata dell'operazione.
- Fai il backup completo del sito di partenza, file e database insieme, e scaricalo sul tuo computer. Non fermarti al backup automatico dell'hosting: ti serve una copia che resti tua anche se quel pannello non fosse più accessibile.
- Verifica che il backup si apra, controllando che dentro ci siano la cartella
wp-contente il file.sqldel database. Un backup che non si estrae non è un backup. - Installa un WordPress vuoto sul nuovo hosting, dal pannello di controllo o manualmente. A questo punto avrai due siti attivi: quello vecchio ancora online per i visitatori e quello nuovo, vuoto, raggiungibile solo dall'indirizzo temporaneo che ti ha dato il provider.
- Trasferisci il sito con il metodo scelto nella tabella qui sopra. Al termine il nuovo hosting mostra il tuo sito completo, con tema, plugin e contenuti al loro posto.
- Collauda tutto sull'indirizzo temporaneo, prima di toccare i DNS. Apri la home, tre o quattro pagine interne, un articolo, il modulo di contatto e, se c'è, il carrello. Entra anche in
/wp-admine controlla che le impostazioni siano quelle attese. - Sposta i DNS cambiando il record A del dominio con l'indirizzo IP del nuovo server. Lo trovi nel pannello del nuovo hosting. Da questo momento parte la propagazione, che richiede da un'ora a ventiquattro.
- Rigenera i permalink entrando in Impostazioni → Permalink e premendo "Salva le modifiche" senza cambiare nulla. Serve a riscrivere le regole di riscrittura degli indirizzi sul nuovo server, ed è il passaggio che risolve la maggior parte dei "tutte le pagine danno 404".
- Attiva il certificato HTTPS sul nuovo hosting e controlla che il sito risponda su
https://. Quasi tutti i provider lo emettono gratuitamente dal pannello, ma va richiesto dopo lo spostamento dei DNS, non prima. - Fai pulizia: disinstalla il plugin di migrazione e cancella installatore e archivi rimasti nella cartella principale. Lasciarli lì significa consegnare a chiunque una copia scaricabile del sito e del suo database.
- Tieni attivo il vecchio hosting per una o due settimane, come via di ritorno immediata se salta fuori qualcosa che nessuno aveva notato.
Se il sito è un e-commerce
Qui il problema non sono i file, sono gli ordini: se un cliente completa un acquisto tra la copia del database e lo spostamento dei DNS, quell'ordine resta nel vecchio database e nel nuovo non esiste.
Le contromisure sono due e si usano insieme: scegliere la fascia oraria con meno traffico, che per la maggior parte dei negozi italiani è tra le tre e le sei del mattino, e mettere il negozio in manutenzione per il tempo della copia del database, in genere venti o trenta minuti e non l'intera migrazione, perché il sito nuovo lo hai già preparato e collaudato nei giorni precedenti.
Dopo lo spostamento fai subito un ordine di prova con un pagamento in modalità test e verifica che le email di conferma partano davvero: la posta in uscita è la cosa che si rompe più spesso cambiando server, e te ne accorgi solo quando un cliente ti scrive.
Se cambi anche il dominio
È la variante più delicata, perché ogni indirizzo salvato nel database va riscritto e perché gli indirizzi vecchi restano nell'indice di Google per mesi. Servono due cose, ed entrambe sono obbligatorie.
La prima è la sostituzione degli indirizzi nel database. Da riga di comando:
wp search-replace 'http://vecchiosito.it' 'https://nuovosito.it' --all-tables
Il plugin gratuito "Better Search Replace" fa lo stesso dall'interfaccia web: usa prima la modalità di prova, che mostra cosa verrebbe modificato senza modificarlo. Non sostituire mai gli indirizzi con una query SQL scritta a mano, perché rompe i dati serializzati di widget e configurazioni, che dipendono dalla lunghezza esatta delle stringhe.
La seconda è un reindirizzamento permanente da ogni vecchio indirizzo al nuovo corrispondente. Non un reindirizzamento globale verso la home, che fa perdere il posizionamento di ogni singola pagina: il criterio pagina per pagina e la sintassi corretta sono nella guida sui redirect 301 quando cambiano gli URL.
Se non hai più accesso al vecchio hosting
Capita più spesso di quanto sembri, di solito quando il sito è stato fatto anni fa da qualcun altro. Se hai ancora accesso a /wp-admin ma non al pannello dell'hosting, ne esci comunque: installa un plugin di migrazione e genera l'esportazione da lì, perché lavora dentro WordPress e non richiede FTP. Se non hai nemmeno quello, resta solo da ricostruire, recuperando i contenuti dalle pagine online.
Errori comuni
- Tutte le pagine danno 404 tranne la home: mancano le regole di riscrittura, e si risolve rigenerando i permalink come visto al passo 7.
- Le immagini non ci sono. L'esportazione XML trasferisce solo i riferimenti: spunta "Scarica e importa gli allegati" durante l'importazione, oppure copia a mano la cartella
wp-content/uploads/. - Il lucchetto HTTPS manca su alcune pagine. Sono contenuti con immagini o link scritti in
http://. Passa una sostituzione degli indirizzi sul database, non solo sui contenuti visibili. - L'importazione si interrompe a metà, in genere per il tempo massimo di esecuzione PHP. Usa la riga di comando o suddividi il file.
- Il tema si comporta in modo strano sul nuovo server: quasi sempre è una versione di PHP diversa o un'estensione mancante. Confronta le due configurazioni prima di cercare altrove.
Le verifiche dopo lo spostamento
Da fare il giorno stesso, perché ognuna di queste cose si rompe in silenzio e nessuna dà errore in bacheca. Apri il sito in una finestra anonima e controlla home, menu e due o tre pagine interne. Verifica che il lucchetto HTTPS compaia su tutte le pagine e non solo sulla home. Invia un messaggio dal modulo di contatto e controlla che arrivi nella casella giusta, poi fai lo stesso con le email automatiche di registrazione e recupero password. Controlla infine che il codice di tracciamento non sia rimasto configurato sul vecchio indirizzo.
La cache va riattivata solo alla fine, quando tutto il resto funziona: accesa prima, ti fa collaudare pagine salvate invece del sito vero. Le impostazioni consigliate sono nella guida su cache e performance di WordPress. Vale la pena riaprire il sito anche il giorno dopo, a propagazione conclusa.
In sintesi
Il tempo complessivo, per un sito vetrina di dimensioni normali, sta tra le due e le tre ore di lavoro effettivo, più la propagazione dei DNS che avviene da sola. Un e-commerce richiede una pianificazione più attenta, non più tempo al computer.
Ora che il sito è sul nuovo server, il passo successivo è metterlo in sicurezza: aggiornamenti, utenze e backup automatici vanno riconfigurati da zero, perché nessuna di queste impostazioni viaggia con la migrazione. Trovi tutto in aggiornamenti e sicurezza di WordPress.
Domande frequenti
Parliamo del tuo progetto
Raccontaci cosa vuoi costruire: la prima call è gratuita e senza impegno.
ContattaciServizi correlati


