Migrare un sito o un blog WordPress su un altro dominio è molto più semplice di quello che si possa pensare. Segui questa guida ed in pochi minuti avrai terminato.
La migrazione di un sito web ha un forte impatto sulla sua indicizzazione, per questo è importante valutare l’impatto del SEO sulla migrazione.
Per siti web di piccole e medie dimensioni non è necessario chiedere aiuto ad una agenzia SEO, cosa invece altamente consigliata quando si tratta di migrare portali con migliaia di pagine. Infatti, una migrazione sbagliata potrebbe causare perdite di ranking e di indicizzazione nei motori di ricerca portando importanti cali di viste organiche.
Può capitare di dover migrare su un nuovo hosting mantenendo il dominio, oppure cambiare dominio e hosting a WordPress, ora ti spiegherò come trasferire un sito WordPress da un dominio all’altro.
ESEMPIO:
Sito Origine:
- Hosting: MEDIAJOB (SITO D’ARTE E VENDITA QUADRI)
- Dominio: www.mediajob.eu
Sito Destinazione:
- Hosting: ANNUNCISUBITO (SITO DI ANNUNCI GRATUITO)
- Dominio: www.annuncisubito.eu
Come migrare WordPress da un dominio ad un altro:
1. Effettua una copia in locale del sito via FTP
Tramite un qualsiasi client FTP (Filezilla ad esempio) scarica sul tuo pc una copia totale del sito web (il contenuto della cartella www/ oppure la root).
2. Scarica il Backup del database mySQL
(clicca l’immagine per ingrandirla)
Dal pannello di controllo di phpmyadmin, oppure con qualsiasi plugin per la gestione del database (WP-DBManager ad esempio), scarica il backup del database mySQL. Ti consiglio di scaricare la versione compressa (.gz) per evitare problemi in fase di upload poichè se il file è troppo grosso potrebbe non caricarsi.
Per conoscere i dati di collegamento tra WordPress e mySQL puoi aprire il file config.php situato nella root di WordPress. Questo file di configurazione contiene l’indirizzo del database, nome del database, nome utente e password.
3. Imposta il nuovo hosting
Attiva il dominio, hosting (Linux) e il database mySQL. Salva tutti i dati di accesso: FTP, utente mySQL, nome database mySQL, password mySQL, url del database mySQL. I servizi di hosting più famosi hanno la predisposizione per i più comuni CMS. A questo punto la piattaforma è pronta per il trasferimento di WordPress sul nuovo dominio.
4. Modifica il file config.php
Ora è necessario cambiare le impostazioni del vecchio sito per dirgli dove si trova il nuovo database. Apri con il Notepad il file config.php che trovi dentro la cartella principale del sito che hai appena scaricato via FTP. Modifica le righe relative ai dati di accesso al database mySQL (nome, database, password e url).
Se hai personalizzato il file config.php con altre righe (ad esempio per attivare il Multisite), copiale tali e quali nel nuovo config.php
5. Modifica il database mySQL*
Alternativa 1
Accedi al pannello di phpMyAdmin ed esegui la query per sostituire il nuovo dominio al vecchio.
UPDATE evemilano_posts SET post_content = REPLACE(post_content, ‘http://www.esempio.com’, ‘http://www.esempio.it’);
PS: Sostituisci il tuo dominio nella query. Questa query viene eseguita appunto nella tabella post_content. Eventuali link generati in PHP o nei widget andranno modificati a mano.
Alternativa 2
Recupera il Backup del databse mySQL, estrailo dall’archivio .gz e aprilo con il Notepad. Utilizza la funziona “Find and Replace/Trova e Sostituisci”, nel campo “trova” inserisci il vecchio URL (www.pippo.com), nel campo “sostituisci” invece inserisci il tuo nuovo URL (www.pluto.it). Lancia l’operazione e lascia macinare il processore. Terminato il processo salva e chiudi il file e rimettilo nell’archivio .gz
*Se devi migrare da un hosting ad un altro senza cambiare il dominio non sarà necessario eseguire questa sostituzione. Carica il sito via FTP e il database mySQL sul nuovo server, successivamente cambia i dati del DNS. Per la procedura dettagliata salta al punto 6.
6. Carica il sito via FTP
Per trasferire WordPress non è necessario installare il CMS sul nuovo hosting. Collegati via FTP al nuovo server, individua la root e carica tutto il sito scaricato precedentemente. Se il tuo hosting ha una sola cartella caricate il contenuto della cartella locale WordPress, in modo da avere nella root del nuovo server le cartelle “wp-admin”, “wp-content”, “wp-includes”, …
7. Importa il database WordPress sulla nuova piattaforma di hosting
Accedi al pannello di controllo phpmyadmin del nuovo server sql (i dati di accesso sono generalmente inviati via email dopo l’acquisto del servizio).
Nella colonna di sinistra sono elencati i database attivi, clicca su quello che vuoi utilizzare. Il database dovrebbe essere vuoto, se non lo fosse seleziona tutte le tabelle e cancellale. Clicca “Import”, seleziona il file di Backup mySQL (.gz) e avvia l’importazione del db.
8. Apri il browser e controlla che il nuovo sito funzioni a dovere 🙂
Possibili imprevisti post migrazione:
Come Murphy insegna, l’imprevisto è sempre dietro l’angolo. Di seguito descriverò i casi più significativi che mi sono capitati.
Il caricamento del database si interrompe
A volte disabilitare l’interruzione automatica dell’upload risolve il problema
Impossibile importare il database mySQL perchè il nome del database non coincide con il nome del database di destinazione.
In questo caso potete semplicemente rinominare il nuovo database con il nome del database da importare. Tuttavia certi hosting non permettono di rinominare il database mySQL. Ho risolto caricando il database sul mio server sql locale, nel quale ho ovviamente pieni poteri di amministratore. Tramite il pannello di phpmyadmin ho creato un nuovo database e ho importato il Backup. Ho poi rinominato il database con il nome del database di destinazione e il caricamento sul nuovo server è andato a buon fine.
Una seconda alternativa per risolvere il problema del nome database è eliminare la riga nel DB (una delle prime) con scritto CREATE (il DB non va creato) e sostituire la riga poco sottoeliminare la riga (una delle prime) con scritto CREATE (proprio perché il DB non va creato) e sostituire la riga con scritto USE inserendo il nome del DB fornito dal provider.
Impossibile caricare il database mySQL perchè il file supera le dimensioni limite.
Quando esporti il database dal pannello phpmyadmin seleziona l’opzione “compresso con gzip” come mostrato sopra.
Il pannello di controllo non è più in versione Multi-site
Per ripristinare il back-end Multisite è necessario copiare i settaggi del vecchio file config.php che attivano la gestione dei sotto soti.
Impossibile importare il database mySQL perchè non è possibile creare nuovi database
Mi segnalano che alcuni providers non permettono l’importazione del database se nella prima riga dello stesso si usa il comando CREATE. In pratica il provider vieta la creazione di nuovi database e bisogna utilizzare/sovrascrivere quello già esistente. Per risolvere il problema vi basterà modificare la prima riga del database inserendo il comando USE (al posto di CREATE) e il nome del database fornito dal provider. Ecco come modificare il database:
Prima della modifica
Dopo la modifica: la riga è stata commentata disabilitandola
Il sito non funziona 🙁
Per prima cosa leggi bene il messaggio di errore stampato sul browser e cerca di individuare il colpevole. Se viene menzionato il database spesso vuol dire che le informazioni inserite nel file config.php sono errate, controlla le 4 righe che identificano il database mySQL.
Dopo una migrazione di dominio è spesso necessario reimpostare i permalink altrimenti WordPress restituisce un errore 404 nelle pagine interne. Se hai questo problema naviga nelle impostazioni dei permalink, seleziona la prima opzione (post-id) e salva così WordPress riscrive il file .htaccess. Ora puoi rimettere i permalink che utilizzavi prima e salva di nuovo. In pratica bisogna forzare la riscritture delle regole di redirect sovrascrivendo il salvataggio delle opzioni con altre diverse (in certi casi basta semplicemente salvare di nuovo).
Anche i plugin potrebbero creare dei problemi. Prova ad escludere temporaneamente tutti i plugin rinominando la cartella (da Plugin a temp-plugin, ad esempio). Molto spesso i plugin vanno resettati quando si fa un cambio di dominio ed escludendoli avrai modo di capire se l’errore è dovuto a questo.
In alternativa puoi provare ad importare il backup del database originale senza sostituire gli url con Notepad (Step 5). Potrà essere cambiato successivamente dal pannello di controllo di phpmyadmin. Seleziona la tabella wp_options (se non hai cambiato la radice) e modifica il campo “siteurl” come indicato in figura. Tuttavia in seguito dovrai modificare tutti i link interni fatti a mano (immagini comprese).
(clicca l’immagine per ingrandirla)