Trasferire WordPress è un compito che molte persone trovano complicato. Consultare il Codex, anche se completo, offre una miriade di opzioni ma non descrive il processo in modo semplice e in un “click”.

Prima di iniziare

Prima di cominciare qualsiasi operazione fai un backup del tuo sito che comprenda:

  • I file del tema;
  • I caricamenti;
  • I plugin che hai usato, in modo da non dover perdere tempo a scaricarli di nuovo, se le cose “dovessero andare male”;
  • Il tuo database.

È possibile eseguire il backup del database utilizzando uno di questi strumenti:

  • phpMyAdmin;
  • Sequel Pro per OS X;
  • I comandi del terminale;
  • Un client desktop MySQL, oppure un plugin di backup, come WP-DB-Backup, che vi fornirà una copia del database tramite e-mail o download.

Spostare un sito web da una sottodirectory alla root

Dopo aver affrontato le procedure di trasferimento di un’installazione di WordPress da “locale” a “online”, questa eventualità è di gran lunga più semplice perché in realtà non è necessario spostare nulla, o quasi.

Creare un sito di prova direttamente online è una pratica diffusa e praticamente necessaria per valutare l’effettivo funzionamento dell’installazione in rete. Realizzare un sito in WordPress all’interno di una cartella (es. http://www.sito.com/test) consente di condividere lo sviluppo e le modifiche con il cliente.

Questo metodo di trasferimento dalla cartella “test” alla root del dominio funziona su un’installazione standard di WordPress e con la maggior parte dei framework, o se si sta utilizzando una struttura a tema “child”.
Attenzione! Questo metodo non funziona per:

  • Installazioni multi-sito;
  • I siti che utilizzano Genesis come framework (non sono sicuro).

Il bello di questo metodo è che ci vogliono solo da tre a dieci minuti a seconda della configurazione di partenza.

1. Rimuovere il sito web esistente

Se vi è un sito web esistente nella directory principale, rimuoverlo. Potrebbe essere un’altra installazione di WordPress oppure un sito statico.
Se si tratta di un sito WordPress, fare il backup, come descritto sopra, e quindi eliminare tutti i file di WordPress nella root.

  • Se a avete usato un servizio di installazione di WordPress utilizzatelo anche per la rimozione del database.
  • In caso contrario, utilizzare phpMyAdmin eliminare il database del sito web esistente.
  • Dopo aver lasciato la base di dati, rimuovere tutti i file di WordPress. Questo significa che normalmente vanno eliminati tutti i file o le cartelle che iniziano con “wp-“.
  • Attenzione! non rimuovere il sito esistente fino a quando hai fatto il backup.

2. Disattiva i permalink

Disattiva i permalink nella schermata “permalink”, che troverai nel menu “Impostazioni” selezionando l’opzione “Default” e cliccando su “Salva modifiche”.

3. Cambia il tuo indirizzo web

In “Impostazioni”“Generale” (campo “Sito Web (URL)”), cambiare l’indirizzo del tuo sito web, ma non l’indirizzo di WordPress. Ad esempio, se hai lavorato sul www.sito.com/test, modificare le impostazioni come segue:

  • Indirizzo WordPress (URL): http://www.sito.com/test
  • Indirizzo del sito (URL): http://www.sito.com

Salvare cliccando sul pulsante “Salva modifiche” e passare alle fasi successive prima di tentare di accedere al sito.

4. Copiare e modificare solo due file

Con un client FTP/SFTP o tramite il file manager cPanel, copia (non spostare) i seguenti file dalla directory di WordPress alla directory root:

  • index.php
  • copia il file .htaccess nella directory root

Modificare il file index.php che hai spostato in questo modo:

  • Modificarlo “in situ” dopo il trasferimento, usando FTP / SFTP o file manager cPanel;
  • Scaricandolo dalla sottodirectory, modificandolo e poi caricarlo nella directory principale – invece di fare una copia.

La modifica che dovete fare è davvero molto semplice e riguarda una riga alla fine del file.
È sufficiente modificare questa riga:

require (‘./wp-blog-header.php)

così

require (‘/nomesottodirectory/wp-blog-header.php)

Cioè, se state lavorando su una struttura del tipo sito.com/test, modificate la linea di codice in require (‘/test/wp-blog-header.php).

Salvate il nuovo file “index.php”.

5. Ripristinare i permalink e verificare il trasferimento

Tramite il pannello di amministrazione di WordPress ripristinate i permalink di nuovo, con qualsiasi impostazione di cui avete bisogno per il vostro sito web.
Con il vostro browser visitate il sito e noterete che l’URL mostrato è appunto l’URL principale (“root” anche se il sito continua a risiedere nella sottodirectory.

E questo è davvero tutto!

55 commenti

  • Ciao,
    Dopo aver eseguito l’operazione non vi è stato il risultato desiderato ed il sito non era raggiungibile correttamente.
    Allora il cliente ha modificato l’ulr di WordPress e non quello del sito ( avendo visto che non vi era l’indirizzo corretto)
    Adesso come si può recuperare l’accesso alla sezione nomesito.estensione/sottocartella/wp-admin a cui ora è inibito l’accesso?
    Sto provando a cercare tra i vari files di configurazione ma non ho trovato ancora nulla

    • Ciao, la via più semplice credo sia quella di ripristinare tutto utilizzando il backup che – spero – sia stato effettuato prima di qualsiasi operazione.

  • Io ho eseguito il trasferimento da una sottocartella nella root dove vi era installato un altro wordpress ed è andato tutto bene! 🙂 Però non c’era alcun .htaccess nella sottocartella, ho utilizzato quello presente nella root (che non aveva particolari istruzioni all’interno) e sembra filare tutto liscio 🙂

    Grazie per questo tutorial!

  • Ho la stessa necessità, quella cioè di spostare un sito in wordpress da cartella a root. Anch’io mi pongo la domanda: ma influisce sul posizionamento?

    • Ciao,
      ho trasferito il sito di un cliente da una carte “di prova” alla root seguendo le istruzioni e, per quanto riguarda la parte SEO, non ho avuto problemi.

  • Ciao, ottima guida. Una domanda sul lato SEO che come vedo ti è già stata posta: nel mio caso nella root ho un sito con sue impostazioni SEO, e lo stesso sito ma totalmente rifatto, con un tema nuovo e dei contenuti aggiuntivi nella sottodirectory. In pratica sono due installazioni di WordPress differenti, con differenti plugin ecc.
    Ora, se io svolgo il procedimento da te indicato, e semplicemente copio tutte le impostazioni di All in one SEO da un sito all’altro, cosa succede? Perdo il posizionamento? E per quanto riguarda la sitemap? Grazie mille

  • Salve a tutti, ho seguito la procedura indicata.
    Tutto funzionante, non salta nessun link.
    Ho in seguito inserito il sito in “Strumenti per Webmaster”
    e ho indicato il percorso della Sitemap generata dal Plugin SEO Yoast,
    a distanza di un paio di giorni riscontro più di 500 errori dovuti al fatto che la sitemap indica a Googlebot di cercare le immagini nella sottocartella.
    In pratica l’immagine fisicamente si trova http://www.sito.com/temp/fotografia1.jpg
    Mentre per la navigazione l’immagine si troverebbe su http://www.sito.com/fotografia1.jpg

    Vorrei sapere se (come penso) questo influisca lato Seo e quale potrebbe essere la soluzione più indolore possibile per risolvere il tutto.
    Grazie mille.

  • ciao io non riesco a trovare il file .htaccess nella directory e quindi non riesco a portare a termine l’operazione, è possibile che il file non ci sia o sia altrove?
    ciao grazie

  • non trovo il file htaccess
    in piu non mi funziona piu niente.. :/
    e il file index.php è diversa da come l hai descritta te.
    non posso nemmeno loggarmi ,
    cè modo per risolvere il lavoro fatto di mesi?

    • L’articolo iniziava con “Prima di cominciare qualsiasi operazione fai un backup del tuo sito…”. Spero tu anon abbia saltato questo passo.

  • Grande! Funziona! 🙂
    Mi hai risolto in tre minuti il problema che avevo da setimane…
    GRAZIE! 🙂

    Antonio

    • Ciao,
      difficile rispondere tramite un commento, ma comunque il primo suggerimento è quello di effettuare una ricerca su Google. Troverai senza dubbio le risposte ai tuoi quesiti. La procedura non è particolarmente complessa ma nemmeno semplicissima. In alternativa potresti ricorrere all’utilizzo di un plugin che si occupi proprio della migrazione del tuo sito (database + file). Il più famoso, e avendolo utilizzato posso dirti che ha funzionato nel 99,99% dei casi, è senza dubbio BackupBuddy ma esistono anche altri plugin gratuiti che svolgono questa funzione.

  • Salve ragazzi, ho lo stesso problema ma non mi è chiaro il punto della modifica del file index….cosa vuol dire modificare “in situ” ?? devo rinominare il file scrivendo “in situ”?? Scusate l’ignoranza…

    • Ciao, “in situ” significa che puoi effettuare le modifiche direttamente sul file in remoto. Ma lascia perdere. La via migliore è copiare il file sul tuo computer e quindi modificarlo come riportato nel post. Devi modificare la linea
      require (‘./wp-blog-header.php)
      con
      require (‘./nomesottodirectory/wp-blog-header.php)

  • Ciao, ho utilizzato questa guida per fare il passaggio dalla sottodirectory alla root e ora per fare il passaggio inverso ovvero trasferire il sito dalla root alla sottodirectory? Ora avrei la necessita di creare una intro page che contiene il link alla home page per cui mi chiedo se devo seguire il procedimento inverso a questa guida ? 1. disattivare i permalink – 2. cambiare indirizzo wordpress da http://www.sito.com/test a http://www.sito.it – 3 ricopiare i file index.php e .htaccess dalla root alla sottodirecotry?
    grazie

    • Significa che le modifiche le puoi effettuare direttamente sul file online oppure, procedura che consiglio sempre, sui file che hai prima trasferito in locale sul tuo Pc.

  • Ciao,
    ho la necessità di creare un sito multisite, pertanto devo spostare l’intero sito nella root principale (è già in una sottocartella)…in questo caso come procedo?

    • In pratica devi fare il contrario di quanto spiegato nel post. Devi modificare il file index.php riportandolo alla versione originale “require (‘./wp-blog-header.php)”. In più devi riportare ala versione “standard” le voci Indirizzo WordPress (URL) e Indirizzo del sito (URL) in “Impostazioni” → “Generale”

  • Fatto tutto questo il messaggio se provo a visualizzare la pagina del sito: Parse error: syntax error, unexpected ” );’ (T_ENCAPSED_AND_WHITESPACE) in

  • Domanda? Ma nelle serp di google, l’url delle varie pagine conterrebbero il percorso reale (cioè con sottocartella “sito.it/sottocartella/pagina” ) oppure quello aggiornato (sito.it/pagina)? Grazie per l’articolo!

  • Ciao.. Il sito nella cartella test continua a funzionare, ho seguito la procedura ma mi da pagina bianca, la riga in index.php su WP 4..2.2 si presenta così:
    require( dirname( __FILE__ ) . ‘./test/wp-blog-header.php’ );

    Va fatta qualche modifica a .htaccess ?

  • Ma invece di far perdere tempo alle persone perchè non scrivi come MASCHERARE il link del vostro WORDPRESS per far sembrare che sia nella ROOT??? TU NON SPOSTI PROPRIO NULLA

    • Ok, adesso lo hai detto tu e il trucco è stato svelato: contento?
      Secondo me il bello e la mancanza di seccature erano proprio dovuti al fatto di non dover spostare quasi nulla; quindi io davvero non vedo tutto questo tempo perso.
      Un consiglio: tutta sta boria e maiuscole potresti dedicarli a una causa migliore.

  • Ciao!
    Premetto che sarebbe il mio primo sito con wordpress, ho seguito la procedura ma mi vien fuori questo errore: Parse error: syntax error, unexpected ‘/’ in /web/htdocs/www.nomesito.eu/home/index.php on line 17. (naturalmente al posto di nomesito c’è l’indirizzo corretto)… qualche idea?

    Il sito è su un server lnx: può centrare qualcosa?
    Grazie!

    Non credo di aver

  • Ciao Rado.
    Ho un problemino.

    Ho eseguito le istruzioni da te riportate (tra l’altro chiarissime). Ma non riesco a impostare i permanent link personalizzato.

    Mi obbliga ad usare il numerico se no il sito non funziona, quindi le mie pagine non riportano l’indirizo da me voluto.

    Ho il mi sito inserito nella root e non in una sottocartella.

    Hai idea del perche?

  • Ciao e complimenti per la guida.io devo spostare il nuovo sito fatto con wp da una cartella ad un’altra cartella dove c’è da anni un sito fatto con joomla e ben indicizzato.La modifica del file index non funziona credo perché punta alla root.come faccio a farlo puntare ad un’altra cartella?per il momento ho risolto con un redirect,ma non mi piace.
    Grazie

  • Ciao, ho seguito con successo questa guida e innanzitutto grazie per averla elaborata e condivisa.
    Alcune cosette:
    1) Non ho trovato come disattivare i permalink (la versione di WordPress è la 4.4.5);
    2) Credo ci sia un piccolo refuso qui: “Se non Ti segnaModificare il file index.php che hai spostato in questo modo” in quanto il file è stato copiato e non spostato;
    3) Da Google Chrome versione 54.0.2840.71 m visualizzo”[highlight color=”light-blue”]require (‘./wp-blog-header.php)[/highlight]” quindi con i tag WordPress mostrati come testo

    È andato tutto bene nonostante mancasse la disattivazione dei permalink quindi ok così!

  • Ciao, scusa il ritardo ho eseguito l’operazione descritta, ma non posso reimpostare i permalink e, effettuare modifiche al css in quanto non vengono lette, sia che le effettuo sul css madre, child o sul pannello del tema x le modifiche ??? Hai qualche suggerimento?

    • È strano il comportamento di cui parli.
      Sicuro di aver fatto tutto giusto? Prova a consultare la documentazione del tema originario per verificare che non esista qualche passaggio specifico da seguire.

      • Ciao, si ho eseguito tutto secondo procedura. Il tema lo utilizzo da tempo e lo gia utilizzato, modificandolo, anche per altri siti, ma mai con questo sistema di reintegro; ho sempre modificato con cerca e sostituisci come se lavorassi in locale.

      • trovato l’arcano. Nonostante o ripetuto la procedura, non potevo reimpostare i permalink. Soluzione: ho levato lo slash finale di /%postname%/ cioe’ /%postname% :)))
        In questo modo mi permette di modificare l’impostazione dei permalink

  • Ciao, ho fatto tutto ma mi dà il seguente errore: Parse error: syntax error, unexpected ‘/’ in /web/htdocs/www.milamadetomatch.com/home/index.php on line 17

  • Ciao!
    io mi sa che ho fatto un po di confusione e ho sbagliato a impostare in questo punto:

    Indirizzo WordPress (URL): http://www.sito.com/test
    Indirizzo del sito (URL): http://www.sito.com

    non so come ma devo aver salvato male, adesso non riesco più ada accedere al pannello di controllo wordpress, perché mi si devono essere incasinate le directory, come posso fare? c’è? un file da modificare ed impostare, credo ma non so qual’è ….mi potresti aiutare

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*

code