↓Salta al contenuto principale
Alemasone

Migrare WordPress su un nuovo dominio senza perdere posizioni

La procedura per cambiare dominio a WordPress: backup, sostituzione degli URL, redirect 301 nel file htaccess e i controlli da fare dopo.

7 min di lettura Aggiornato il
Schermata di un pannello di amministrazione WordPress accanto a un grafico di traffico del sito
In questa pagina
Quando sposti WordPress su un nuovo dominio, a decidere se va bene o male è una cosa sola: i redirect permanenti 301 dal vecchio dominio al nuovo, pagina per pagina. Senza, Google tratta il nuovo sito come un sito appena nato e il posizionamento costruito in anni sparisce. Con i redirect giusti l’autorità passa al nuovo dominio e il calo dura poco.

Di solito si cambia dominio per un cambio di nome dell’azienda, un rebranding o il passaggio da un’estensione all’altra, per esempio da .it a .com. In tutti i casi è un’operazione delicata ma prevedibile, se la fai nell’ordine giusto. Ecco il percorso completo, con i punti dove si sbaglia più spesso.

Prima di iniziare #

Registra il nuovo dominio e fai un backup completo. Il dominio nuovo va comprato prima, e il vecchio non va lasciato scadere. Del backup ti servono i file (tutta la cartella del sito, soprattutto wp-content) e il database. Un backup che non hai mai provato a ripristinare non è un backup: se usi un plugin, scarica l’archivio sul tuo computer invece di lasciarlo sul server.

Fotografa la situazione attuale. Esporta da Search Console l’elenco degli URL indicizzati e segnati le pagine che portano più traffico: ti serviranno per il controllo finale.

Scegli il momento. Quando il traffico è più basso, ma mai il venerdì sera: se qualcosa va storto, vuoi avere i giorni dopo per sistemare.

Controlla che il nuovo dominio sia pulito. Se ha già avuto una vita, può portarsi dietro penalizzazioni. Guardane la storia su archive.org e cerca site:nuovodominio.it su Google: eviti sorprese difficili da capire dopo.

Trasferire file e database #

La strada più semplice è un plugin di migrazione come Duplicator o All-in-One WP Migration, che crea un pacchetto unico con file e database e lo ripristina sulla nuova installazione. Per i siti di dimensioni normali funziona bene; su quelli molto grandi si scontra con i limiti di tempo del server o con le dimensioni massime delle versioni gratuite. Se il sito resta sullo stesso hosting e cambia solo il dominio, spesso non serve spostare niente: basta collegare il nuovo dominio allo stesso spazio.

La via manuale è più laboriosa ma non ha limiti:

  1. Scarica tutti i file del sito via FTP (con FileZilla o Cyberduck) o dal file manager del pannello dell’hosting.
  2. Esporta il database in formato SQL da phpMyAdmin o dal pannello dell’hosting.
  3. Carica i file sul nuovo spazio web.
  4. Crea un nuovo database e importa il file SQL.
  5. Modifica wp-config.php con nome del database, utente, password e host della nuova installazione.
Prova prima di aprire. Non mandare ancora i visitatori sul nuovo dominio. Prova il sito con un dominio temporaneo o modificando il file hosts del tuo computer, così controlli che tutto funzioni prima di spostare il pubblico.

Sostituire gli URL nel database #

Il vecchio dominio compare in decine di punti del database: link interni negli articoli, percorsi delle immagini, impostazioni dei plugin, campi personalizzati. Cambiare l’indirizzo nelle impostazioni non li tocca.

Non farlo con un «trova e sostituisci» in phpMyAdmin. Alcuni dati sono salvati in un formato (serializzato) che contiene la lunghezza di ogni testo: se cambi il testo senza aggiornare quel numero, i dati diventano illeggibili e widget e impostazioni spariscono.

Gli strumenti giusti sono due:

  • Un plugin di ricerca e sostituzione che gestisca i dati serializzati, come Better Search Replace: prima in modalità simulazione, poi sul database vero.

  • WP-CLI, se hai accesso alla riga di comando:

    wp search-replace 'https://vecchiodominio.it' 'https://nuovodominio.it' --all-tables --dry-run
    

    --dry-run mostra cosa cambierebbe senza toccare niente: lancialo così, controlla il conteggio e solo dopo ripetilo senza.

Dopo la sostituzione, controlla in Impostazioni → Generali che Indirizzo WordPress (URL) e Indirizzo sito (URL) di WordPress puntino al nuovo dominio, in HTTPS. Se dopo il cambio non riesci più a entrare in bacheca, puoi forzarli da wp-config.php, sopra la riga «That’s all, stop editing»:

define( 'WP_HOME', 'https://nuovodominio.it' );
define( 'WP_SITEURL', 'https://nuovodominio.it' );

Pagina Impostazioni Generali di WordPress con i campi indirizzo WordPress e indirizzo del sito
I due campi devono riportare entrambi il nuovo dominio, in HTTPS

I redirect 301: il passaggio decisivo #

Il reindirizzamento va messo sul vecchio dominio, nel file .htaccess nella cartella principale (è un file nascosto: nel client FTP attiva la visualizzazione dei file nascosti). Se il server è Apache, come in gran parte degli hosting condivisi:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?vecchiodominio\.it$ [NC]
RewriteRule ^(.*)$ https://nuovodominio.it/$1 [R=301,L]

Questa regola manda ogni indirizzo alla pagina corrispondente sul nuovo dominio, mantenendo il percorso: vecchiodominio.it/articolo arriva su nuovodominio.it/articolo. Mettila prima delle regole di WordPress. Se il server usa Nginx, la stessa cosa si fa con return 301 https://nuovodominio.it$request_uri; nel blocco server del vecchio dominio, e molti pannelli di hosting hanno anche un’opzione di redirect già pronta.

Terminale con il comando curl -I che restituisce il codice 301 e, nella riga Location, la stessa pagina sul nuovo dominio
Il codice deve essere 301 e la destinazione la pagina corrispondente, non la home

Tre cose che fanno la differenza:

  1. Il codice deve essere 301, non 302. Il 302 indica uno spostamento temporaneo e non trasferisce l’autorità della pagina.
  2. Il redirect deve essere pagina per pagina. Mandare tutto alla home è l’errore che fa più danni: per i motori di ricerca vuol dire che tutti i vecchi contenuti non esistono più.
  3. Tieni attivo il vecchio dominio per almeno un anno, meglio per sempre. Solo così i redirect continuano a funzionare mentre i motori aggiornano l’indice e mentre qualcuno clicca i vecchi link sparsi in rete.

Se la struttura degli indirizzi cambia fra vecchio e nuovo sito, servono regole apposite per le pagine principali, da preparare prima con una tabella che abbini ogni vecchio URL al nuovo.

Dopo il passaggio #

Nell’ordine, senza saltare passaggi:

  1. Certificato HTTPS sul nuovo dominio, e verifica che il sito risponda solo in HTTPS.
  2. Cambio di indirizzo in Search Console: aggiungi e verifica la nuova proprietà, poi dalla proprietà vecchia apri Impostazioni → Cambio di indirizzo e scegli quella nuova. Lo strumento controlla che i 301 funzionino, quindi fallo dopo averli attivati. Se usi Bing Webmaster Tools, lì c’è una funzione simile.
  3. Sitemap aggiornata e inviata dalla nuova proprietà.
  4. File robots.txt controllato: dopo una migrazione capita di ritrovarsi con un blocco totale rimasto dall’ambiente di prova.
  5. Link interni verificati con uno strumento di scansione: anche dopo la sostituzione nel database può restare qualcosa nei temi o nei menu.
  6. Analytics: aggiorna lo stream con il nuovo dominio in Google Analytics, altrimenti i dati si interrompono senza motivo apparente.
  7. Email e servizi collegati al vecchio dominio: caselle di posta, moduli di contatto, integrazioni con servizi esterni.
Il calo iniziale è normale. Nelle prime settimane il traffico scende, perché i motori devono ripassare tutto il sito. Con i redirect giusti di solito si recupera in uno o due mesi. Il segnale che qualcosa non va è un calo che continua a peggiorare dopo il primo mese: in quel caso ricontrolla i redirect.

I redirect trasferiscono l’autorità, ma un link aggiornato vale più di uno reindirizzato. Scrivi ai siti che ti portano più traffico (bastano i primi dieci o venti) e chiedi di aggiornare l’indirizzo. È un’ora di lavoro che rende.

Aggiorna anche tutto ciò che controlli direttamente: profili social, firme delle email, schede aziendali nelle directory, materiali stampati se ancora in uso.

Domande frequenti #

Quanto tempo devo tenere attivo il vecchio dominio? #

Almeno dodici mesi, meglio ventiquattro, e se puoi rinnovalo per sempre: costa poco e ti evita che qualcun altro lo compri. I motori aggiornano l’indice in poche settimane, ma link sparsi in rete, segnalibri e riferimenti nei documenti restano per anni.

Il redirect 301 fa perdere autorità alla pagina? #

Una volta si parlava di una piccola perdita. Oggi Google dice che il 301 trasferisce il valore della pagina, a patto che la destinazione abbia un contenuto equivalente. Il danno arriva quando mandi tutto alla home o a pagine che non c’entrano.

Posso cambiare dominio e struttura degli indirizzi insieme? #

Si può, ma meglio di no: se qualcosa va storto non sai quale dei due cambiamenti è il colpevole. La via prudente è cambiare dominio, aspettare qualche settimana che la situazione si stabilizzi e solo dopo toccare la struttura.

Cosa succede alle email del vecchio dominio? #

I redirect del sito non le toccano: riguardano solo il traffico web. Le caselle di posta vanno spostate a parte; attiva un inoltro dalle vecchie alle nuove per un periodo lungo e avvisa i contatti abituali. Aggiorna anche i record SPF, DKIM e DMARC del nuovo dominio, o i tuoi messaggi finiranno nello spam.

Il plugin di migrazione basta da solo? #

Per spostare il sito, di solito sì. Non copre però la parte che conta di più: i redirect sul vecchio dominio e il cambio di indirizzo in Search Console. Quei due passaggi li fai a mano.

No. Cambiando l’indirizzo nelle impostazioni, i link e le immagini inseriti negli articoli continuano a puntare al vecchio dominio. Funzionano finché c’è il redirect, ma ogni clic fa un passaggio in più: per questo serve la ricerca e sostituzione nel database.

Da leggere anche