back to top

Migrare un sito WordPress: cambiare dominio e/o hosting provider

In questa guida vedremo come migrare un sito WordPress cambiando dominio ed hosting. In altre parole, vedremo come gestire una migrazione completa del nostro sito WordPress su un nuovo hostname e/o spostando materialmente contenuti, grafica, plugin e impostazioni varie presso un nuovo hosting provider.

Migrare WordPress: la guida completa per spostare il tuo sito senza problemi

Per praticitร , questa guida verrร  divisa in due parti affinchรจ possa essere utile anche a chi abbia anche una sola di queste esigenze: vedremo quindi, separatamente, come cambiare il nome di dominio o la cartella di installazione di WordPress e come spostare il sito presso un nuovo hosting.

Prima di iniziare effettuate un backup di WordPress

In ogni caso, quindi a prescindere da quale sia la nostra esigenza, la raccomandazione preliminare รจ la medesima: effettuate un backup completo della vostra attuale installazione di WordPress effettuando una copia sia dei file fisici che dei dati all’interno del database.

Per effettuare tale backup potete ricorrere agli strumenti eventualmente messi a disposizione del vostro attuale hosting provider (se avete pannelli tipo Plesk o cPanel dovreste avere delle funzionalitร  di backup piuttosto intuitive e semplici da utilizzare) oppure, in alternativa, potete procedere “manualmente” effettuando una copia in locale di tutti i file (mediante FTP) ed un dump del DB mediante la funzione di esportazione di phpMyAdmin (esporta “struttura e dati” di tutte le tabelle).

Esporta il database

In alternativa, per finire, รจ sempre possibile utilizzare un qualche plugin appositamente creato per gestire il backup di un sito WordPress.

Una volta effettuata la nostra copia di sicurezza, possiamo iniziare a rimboccarci le maniche.

Cambiare dominio o cartella di un sito WordPress

Supponiamo di aver deciso di cambiare al URL di installazione del nostro sito WordPress. Gli scenari possibili sono diversi, ad esempio:

  • cambiare il dominio del nostro sito da vecchiosito.com a nuovosito.com;
  • cambiare il protocollo utilizzando https al posto di http;
  • spostate WordPress sotto un dominio di terzo livello (da www.miosito.com a blog.miosito.com) o effettuare il passaggio inverso (da blog.miosito.com a www.miosito.com);
  • spostare WordPress dalla root ad una sub-directory (passare quindi da miosito.com a miosito.com/blog/) o effettuare il percorso contrario (da miosito.com/blog/ a miosito.com)

In tutte queste situazioni sarร  necessario effettuare delle modifiche al fine di far “girare” WordPress correttamente all’interno del nuovo hostname o della nuova cartella. E’ importante precisare che se provassimo a cambiare la URL senza fare le giuste operazioni (che vi spiegheremo a breve) il risultato sarebbe l’impossibilitร  di accedere a WordPress: il parametro relativo all’URL di installazione, infatti, รจ un valore di configurazione essenziale e se questo non coincide con l’effettiva collocazione del sito quest’ultimo diviene irraggiungibile.

Per cambiare la URL di un sito WordPress รจ possibile intervenire in piรน modi. Vediamoli uno ad uno:

Modificare la URL di WordPress mediante query al database

A mio avviso รจ la soluzione preferibile. Per essere attuata richiede un minimo di dimestichezza con la gestione di database… nulla di complicato in realtร , basta saper utilizzare phpMyAdmin (tool diffusissimo e presente in quasi tutti i pacchetti hosting). In pratica dovremo lanciare una serie di query per aggiornare le impostazioni della nostra installazione di WordPress con la nuova URL di installazione.

Selezioniamo il nostro database. Se ne abbiamo piรน di uno e non conosciamo il nome di quello in uso da WordPress sarร  sufficiente dare una sbirciata al file wp-config.php presente nella root del nostro sito. La riga da cercare รจ questa:

define('DB_NAME', 'nome_del_database');

Utilizzando phpMyAdmin accediamo al database del nostro sito WordPress e clicchiamo sulla tab SQL.

Esegui una query SQL in phpMyAdmin

Nell’area di testo inseriamo le istruzioni SQL (che vi mostrerรฒ qui sotto) avendo cura di modificare tutte le occorrenze di VECCHIA_URL con la URL attuale della nostra installazione di WordPress e quelle di NUOVA_URL con la nuova URL.

UPDATE wp_options
SET option_value = REPLACE(option_value, 'VECCHIA_URL', 'NUOVA_URL')
WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts
SET guid = REPLACE(guid, 'VECCHIA_URL','NUOVA_URL');

UPDATE wp_posts
SET post_content = REPLACE(post_content, 'VECCHIA_URL', 'NUOVA_URL');

UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value,'VECCHIA_URL','NUOVA_URL');

Attenzione: รจ molto importante che le URL (sia quella vecchia che quella nuova) siano scritte in modo corretto: entrambe le impostazioni devono includere http:// e non devono avere uno slash (“/”) alla fine.

Query di UPDATE per aggiornare la URL

Una volta inserite le istruzioni SQL (opportunamente modificate) eseguiamo la query cliccando sul pulsante “Esegui”.

Dopo questa operazione potremo spostare materialmente il sito (sul nuovo dominio, nella nuova cartella, ecc.) e provare ad accedervi. Se tutto รจ andato per il verso giusto sarร  possibile entrare nel sito attraverso la nuova URL.

E’ importante precisare che le operazioni appena compiute non risolveranno magicamente ogni problema del nostro sito: eventuali riferimenti alla vecchia URL inseriti nel tema o nelle impostazioni di qualche plugin dovranno essere corretti a mano.

Utilizzare uno script PHP per aggiornare il database di WordPress con la nuova URL

In alternativa (se non avete phpMyAdmin o non sapete come utilizzarlo) potete utilizzare uno script PHP che non farร  altro che compiere le operazioni che abbiamo descritto in precedenza. Questo il codice sorgente dello script:

<?php
include_once('wp-config.php');

$vecchia_url = isset($_POST['vecchiaURL']) ? $_POST['vecchiaURL'] : '';
$nuova_url = isset($_POST['nuovaURL']) ? $_POST['nuovaURL'] : '';

if ($vecchia_url && $nuova_url) {

  $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
  if (!$dbc) {
    die('Errore di connessione al DB');
  }

  $q = 'UPDATE ' . $table_prefix . 'options SET option_value = REPLACE(option_value, \'' . $vecchia_url . '\', \'' . $nuova_url . '\')';
  $r = mysqli_query($dbc, $q);

  $q = 'UPDATE ' . $table_prefix . 'posts SET guid = REPLACE (guid, \'' . $vecchia_url . '\', \'' . $nuova_url . '\')';
  $r = mysqli_query($dbc, $q);

  $q = 'UPDATE ' . $table_prefix . 'posts SET post_content = REPLACE (post_content, \'' . $vecchia_url . '\', \'' . $nuova_url . '\')';
  $r = mysqli_query($dbc, $q);

  $q = 'UPDATE ' . $table_prefix . 'postmeta SET meta_value = REPLACE (meta_value, \'' . $vecchia_url . '\',\'' . $nuova_url . '\')';
  $r = mysqli_query($dbc, $q);

  $q = 'SELECT * FROM ' . $table_prefix . 'posts WHERE option_value like \'%' . $nuova_url . '%\'';
  $r = mysqli_query($dbc, $q);
  if ($r) {
    echo '<h1>Aggiornamento eseguito</h1>';
    echo '<ul>';
    while ($row = mysqli_fetch_array($r,MYSQLI_ASSOC)) {
      echo '<li>' . $row['guid'] . '</li>';
    }
    echo '</ul>';
  }

}
?>
<form method="post" action="cambiaurl.php">
<div>
  <label>Vecchia URL</label>
  <input type="text" id="vecchiaURL" name="vecchiaURL" value="<?php echo $vecchia_url; ?>"/>
</div>
<div>
  <label>Nuova URL</label>
  <input type="text" id="nuovaURL" name="nuovaURL" value="<?php echo $nuova_url; ?>"/>
</div>
<div>
  <input type="Submit" value="Aggiorna URL WordPress">
</div>
</form>

Copiate il codice e salvatelo cosรฌ com’รจ all’interno del file cambiaurl.php. Caricate il file via FTP posizionandolo nella root della vostra installazione di WordPress.

Mediante il browser richiamate il file appena caricato:

http://www.miositowp.com/cambiaurl.php

Non dovete fare altro che compilare i campi proposti (vecchia URL e nuova URL) e cliccare sul pulsante “Aggiorna URL WordPress”. Lo script eseguirร  automaticamente le operazioni di aggiornamento del database.

Tecniche semplici e veloci per cambiare la URL di un sito WordPress (ma non sempre efficaci al 100%)

E’ possibile modificare la URL di un sito WordPress anche seguendo altre strade decisamente piรน semplici. Tuttavia รจ bene precisare che le techiche che vi illustrerรฒ di seguito non funzionano correttamente se la propria installazione di WordPress riguarda un network di siti (installazione multi-sito).

Modificare wp-config.php

Una semplice tecnica per cambiare la URL di una singola installazione di WordPress consiste nell’agire direttamente sul file wp-config.php, aggiungendo due semplici linee di codice:

define('WP_HOME','http://www.nuovodominio.com');
define('WP_SITEURL','http://www.nuovodominio.com');

Cosรฌ facendo da pannello di controllo scompariranno le relative impostazioni in Impostazioni > Generali i cui valori saranno sovrascritti da quelli specificati nelle due direttive viste sopra.

Utilizzare il file functions.php

Un’altra tecnica piuttosto semplice prevede l’aggiunta di un paio di righe di codice all’interno del file functions.php all’interno della cartella del tema in uso (se il tema non ha un file functions.php basterร  crearne uno nuovo).

Per aggiornare WordPress alla nuova URL รจ sufficiente aggiungere queste righe di codice subito dopo l’apertura del file (quindi immediatamente sotto a “<?php” per intenderci):

update_option('siteurl','http://www.nuovodominio.com');
update_option('home','http://www.nuovodominio.com');

Una volta caricato il file functions.php cosรฌ modificato, dovremo accedere al pannello di controllo un paio di volte perchรจ WordPress aggiorni automaticamente le sue impostazioni (una volta fatto ricordiamoci di rimuovere immediatamente le due righe di codice precedentemente aggiunte ripristinando il file functions.php allo stato iniziale).

Il metodo RELOCATE

Un’ultima semplice tecnica per gestire lo spostamento del sito web su una nuova URL consiste nell’utilizzo della modalitร  RELOCATE di WordPress. Anche questa tecnica prevede l’inserimento di una piccola modifica al file wp-config.php. Nello specifico dovremo aggiungere una riga di codice subito prima del commento che indica il punto in cui il file non deve essere piรน editato:

define('RELOCATE',true);
/* That's all, stop editing! Happy blogging. */

Una volta caricato il file cosรฌ modificato all’interno del nostro sito WordPress, accediamo al pannello di amministrazione utilizzando la nuova URL:

http://www.nuovodominio.com/wp-login.php

Dopo aver effettuato l’accesso spostiamoci in Impostazioni > Generale e vericfichiamo che entrami gli indirizzi siano corretti.

Impostazioni di WordPress riguardo all'indirizzo del sito

Una volta verificato che tutto sia a posto, ripristiniamo il file wp-config.php al suo stato inziziale (rimuoviamo, quindi, la linea di codice aggiunta poco prima).

Utiliziamo WP Migrate

Un’altra tecnica per raggiungere l’obiettivo prefissato, consiste nell’utilizzare un plugin ad hoc. Il piรน popolare di questi, sicuramente, รจ l’ottimo WP Migrate.

Questo plugin consente di scaricare una dump completo del database con tutti (ma proprio tutti!) i riferimenti alle URL ed ai percorsi fisici aggiornati secondo i valori specificati al momento dell’export.

Questo strumento รจ davvero fantastico ed utilissimo quando si sviluppa, ad esempio, un sito in locale e lo si vuole esportare pronto per essere utilizzato in fase di produzione.

Ovviamente, per completare la migrazione, รจ necessartio ricaricare il dump utilizzando phpMyAdmin. Se si sta modificando la URL di un sito giร  esistente dovremo sovrascrivere il precedente database (di cui abbiamo giร  fatto il backup, ovviamente) con il dump appena scaricato, se invece stiamo spostando il sito su un nuovo hosting dovremo semplicemente riversare il dump all’interno di un nuovo database.

Per utilizzare WP Migrate รจ necessario, ovviamente, installare il plugin, accedere alla schermata di impostazioni e configurare la migrazione in base alle nostre esigenze:

Utilizzare WP Migrate

Una volta fatto clicchiamo sul pulsante “Export” per salvare il dump del database pronto all’uso.

Cambiare l’hosting del nostro sito WordPress

Fino ad ora abbiamo visto come cambiare la URL della nostra installazione di WordPress, ma non abbiamo ancora spiegato come spostare materialmente i file del nostro sito da un hosting provider all’altro.

E’ importante premettere che lo spostamento di un sito WordPress presso un nuovo hosting non implica necessariamente il cambio della sua URL… il proprietario di un sito web potrebbe volerlo spostare presso un nuovo provider senza cambiare il dominio o la cartella di installazione! La migrazione, infatti, potrebbe avvenire mantenendo inalterato il nome a dominio come, in effetti, avviene molto spesso.

Ma cosa bisogna fare se si desidera migrare un sito WordPress presso un altro provider? In parole semplici, il da farsi consiste in:

  • effettuare lo spostamento completo di tutti i file che costituiscono il sito web;
  • riversare, all’interno di una nuova base dati, il contenuto del “vecchio database” al cui interno sono salvate le varie impostazioni ed i contenuti del nostro sito WordPress.

Se abbiamo giร  effettuato il backup completo del nostro sito (come spiegato all’inizio di questo articolo) non dovremo fare altro che riversarlo nella nuova destinazione. Se, contestualmente con il cambio di hosting provider, abbiamo deciso di effettuare anche una modifica alla URL del sito dovremo ricordarci, una volta completata la migrazione, di seguire i passaggi visti in precedenza oppure utilizzare il plugin WP Migrate (da installare nella versione di WordPress sul vecchio hosting) per generare un dump pronto all’uso con il nuovo dominio e percorso fisico.

Cosa ci serve se abbiamo diciso di cambiare hosting

Per prima cosa assicuriamoci di disporre di tutto quanto necessario per effettuare la migrazione. Prima di pianificare lo spostamento del sito รจ opportuno scegliere con cura l’hosting provider cui ne affideremo le cure. Il mio consiglio รจ di prestare la dovuta attenzione alla scelta dell’hosting WordPress piรน adatto alle nostre esigenze, vagliando con attenzione le varie proposte del mercato. In fase di scelta del nuovo hosting รจ opportuno verificare che:

  • il nuovo spazio web supporti PHP;
  • la versione di PHP sia compatibile con la versione di WordPress che intendiamo migrare;
  • sia disponibile un database MySQL;
  • si disponga di spazio a sufficienza per riversare i files ed il database.

Se tutti i requisiti sono stati soddisfatti possiamo procedere.

Trasferire i dati di WordPress

Accediamo al pannello di controllo del nuovo hosting e creiamo un nuovo database MySQL se non giร  presente. Se il nuovo hosting dispone di un pannello come Plesk o cPanel a creazione di un nuovo database รจ alquanto intuitiva. In caso contrario potrebbe essere utile verificare la modalitร  prevista dal nuovo provider.

Una volta creato il nuovo DB (ed il relativo utente) andiamo a riversarvi dentro i dati. Per farlo apriamo phpMyAdmin, selezioniamo il nuovo database e clicchiamo sulla tab Importa:

Importa il database

Selezioniamo dal nostro hard-disk il file contenente il dump del vecchio database ed eseguiamo l’importazione.

Impostazioni per l'importazione dei dati

Se tutto รจ andato a buon fine, al termine del processo di importazione dovremmo avere il nostro nuovo database popolato con tutte le tabelle ed i dati necessari al ripristino del nostro sito.

Aggiornare i dati di connessione al DB e trasferire i file di WordPress

Una volta rigenerato il DB dobbiamo pensare a trasferire i files che, in precedenza, abbiamo salvato in locale. Per trasferirli nel nuovo spazio web faremo ricorso ad un normale client FTP (come, ad esempio, Filezilla).

Prima di effettuare l’upload, tuttavia, sarร  necessario aprire in locale il file wp-config.php ed inserire le nuove credenziali di accesso al database modificando le opportune linee di codice (dovremo sostituire i dati del database fornito dal vecchio provider con quelli del database presso il nuovo provider):

/** Il nome del database di WordPress */
define('DB_NAME', 'nome_del_db');

/** Nome utente del database MySQL */
define('DB_USER', 'utente_del_db');

/** Password del database MySQL */
define('DB_PASSWORD', 'password_del_db');

/** Hostname MySQL */
define('DB_HOST', 'host_del_db');

Dopo aver inserito i giusti dati di connessione alla base dati, potremo effettuare l’upload di tutti i file fisici all’interno del nuovo spazio web. Una volta completato l’upload (potrebbe durare anche parecchio tempo) proviamo ad effettuare l’accesso al nuovo sito web. Se tutto รจ andato per il verso giusto dovremmo riuscire ad accedere al nostro sito WordPress.

Il mio sito non funziona piรน: cosa fare?

Nella maggior parte dei casi, i processi descritti in questo articolo sono risolutivi. Puรฒ capitare, tuttavia, che al termine di un cambio di URL o della migrazione presso un nuovo provider il sito non funzioni correttamente.

La prima cosa da fare in situazioni di questo genere รจ cercare di stare calmi e non andare nel panico. Ricordiamoci che abbiamo effettuato un backup completo di tutto il sito web, quindi in caso di problemi potremo sempre ripristinare la situazione originaria!

Detto questo cerchiamo di capire quali potrebbero essere le cause che hanno determinato il problema. La prima cosa da fare, quindi, รจ prestare attenzione ai messaggi di errore mostrati a video e, eventualmente, verificare il log degli errori del nostro web server.

Cause comuni degli errori post-migrazione di WordPress

  • Il sito รจ inaccessibile
    • se avete effettuato un cambio di URL assicuratevi che tutte le occorrenze nel database della vecchia URL siano state sostituite con la nuova (in particolar modo verificate i dati della tabella wp_options).
    • dopo un cambio di hosting provider l’errore piรน comune รจ rappresentato certamente dai problemi di connessione al nuovo database: assicuratevi di aver inserito correttamente nel file wp-config.php i parametri di connessione alla nuova base dati!
    • se il sito continua ad essere irraggiungibile potrebbe essere a causa dei plugin: il consiglio รจ di accedere tramite FTP, accedere alla cartella wp-content e rinominare, provvisoriamente, la cartella plugins in stop_plugins. Dopo questa operazione provate ad accedere nuovamente al sito.
  • Il sito รจ accessibile ma presenta dei problemi
    • se, dopo un cambio di URL, alcune pagine del sito risultano irraggiungibili provate ad accedere al pannello di controllo Impostazioni > Permalink e, senza modificare nulla, cliccate sul pulsante “Salva le modifiche”: cosรฌ facendo WordPress rigenererร  le regole di redirect che governano la raggiungibilitร  delle pagine interne del sito.
    • se il sito presenta anomalie potrebbe essere utile agire sui plugin: รจ consigliabile disattivare tutti i plugin per poi riattivarli selettivamente uno ad uno, al fine di verificare se uno di questi รจ la causa della problematica riscontrata.
Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

Leggi anche...

Clonare un sito WordPress

Esistono diverse ragioni per cui potrebbe essere utile clonare...

Disabilitare i commenti in WordPress

Una delle caratteristiche da sempre più apprezzate nei siti...

WordPress: Custom Post Type, cosa sono e come crearli

Nonostante qualcuno pensi che Wordpress sia una semplice piattaforma...

Mettere in sicurezza WordPress: proteggere la cartella wp-admin da accessi non autorizzati

Vediamo come implementare una maggior sicurezza all'interno del nostro...

Mettere WordPress in manutenzione senza usare plugin

Quando si deve mettere in manutenzione un blog basato...

Password WordPress dimenticata: come risolvere il problema

Come capita spesso per altre password, anche quella per...
Pubblicitร