Gabriele Morero - Grafico Webdesigner SEO

Duplicare un sito wordpress

Può capitare di avere la necessità, o di volere il  proprio sito in lingua straniera; per renderlo tale esistono plugin molto validi per tutte le esigenze: da chi vuole la traduzione del contenuto a fianco al testo originale a chi desidera avere delle pagine aggiuntive in lingua specifica. A volte però la pecca di questi plugin si presenta a livello di SEO poichè non generano url utili ai motori di ricerca; correndo ai ripari è possibile creare un duplicato del proprio sito wordpress in una sottodirectory in modo da avere un sito indipendente con le proprie password e con i propri contenuti, url, tag, ecc… in lingua. Ovviamente questa soluzione  presenta lo svantaggio di avere poi 2 o più siti indipendenti da gestire singolarmente, si deve quindi fare una valutazione dei pro e contro: Facilità di Gestione oppure Buona Ottimizzazione, per cui nel caso di più traduzioni è comunque consigliabile utilizzare plugin specifici.

Step1

Per creare quindi il nostro sito in lingua dobbiamo accedere la nostro spazio ftp e creare la nostra Sottodirectory (ed esempio: www.miosito.com/en/), al cui interno copieremo l’intero contenuto del sito della root principale. Ora inizia la parte più “complicata” ovvero settare le impostazioni dei file .php e del database per fare funzionare il nostro sito.

Step2

Accendendo al nostro database mysql potremo vedere le 11 tabelle (minime, possono aumentare a seconda dei plugin installati) relative al sito wordpress principale, generalmente indicate con il prefisso wp_; ricordandoci ovviamente di creare una copia di backup del database principale, procederemo con il copiare singolarmente ogni tabella wp_ rinominandola però con, ad esempio il prefisso wp2_.

Step3

Fatto questo dovremo andare a modificare all’interno delle tabelle wp2_option i valori di option_value relativi alla colonna option_name relativa all‘url e alla home(che andrà aggiornato con l’aggiunta della sottodirectory), concluderemo questa operazione modificando anche la option_name relativa al wp_user_roles che andrà cambiata in wp2_user_roles.

 Step4

Ora effettueremo le stesse modifiche alla tabella wp2_usermeta, dove aggiorneremo i prefissi a wp2_ per tutti i valori meta_key che ancora presentino il vecchio prefisso, per la precisione tutti i wp_capabilities e i wp_user_level.

Step5

Concluse le nostre operazioni sul database dobbiamo dire al nostro sito wordpress presente nella sottocartella di andare a leggere e utilizzare i dati presenti nelle nuove tabelle wp2. Andiamo quindi ad aprire il file wp-config.php presente nella nostra sottodirectory /eng/, e andiamo a modificare anche qui il prefisso delle tabelle nella voce sottostante, cambiando il prefisso wp_ con il nuovo wp2_

$table_prefix = 'wp_'; // Solo numeri, lettere e sottolineature!!

Step6

Una volta salvato, aggiorniamo il file config.php sull’ftp ed eseguiamo l’ultima modifica al file .htaccess andando a sostituire il RewriteBase da “/” a /en/, ovvero il percorso per arrivare alla sottodirectory.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /eng/
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Ora non ci resta che andare all’url del nostro nuovo sito www.miosito.com/en/ per vederlo online, e accedere al backend www.miosito.com/eng/wp-admin per effettuare le modifiche necessarie.


34 risposte per Duplicare un sito wordpress

  1. By Agostino Agnero, luglio 15, 2011 al 12:35 am

    Ciao, ma se io volessi tradurre anche il testo del template come potrei fare?

    • By Gabriele Morero, luglio 15, 2011 al 9:45 am

      Ciao!
      Il mio consiglio è nel tradurre manualmente tutti i contenuti, senza affidarsi a traduttori automatici che possono sballare i termini o i significati delle frasi; considerando che a seconda del tipo di nazione o lingua possono esserci parole specifiche, differenti dalla semplice traduzione.
      La soluzione migliore è mettersi di buona voglia e tradursi: nomi delle pagine, delle categorie, dei post, i tag, ecc…e sopratutto settare proprio il nuovo wordpress installato in lingua specifica può risultare poi utile ai motori di ricerca.

  2. By Manuele, maggio 11, 2012 al 12:30 am

    Ciao Grazie del consiglio che mi hai dato su come duplicare le tabelle ;).
    Sono riuscito, ora però ho un altro problema, ho fatto tutta la procedura come riportata sopra alla lettera ma ho notato che alla fine mi mancava il file .htaccess
    (presente invece nella versione del sito in italiano).

    Ho provato comunque ad aprire il mio sito ma non funzionava…
    come gestore ho aruba, secondo te devo provare a sentire loro?

    Grazie

  3. By Manuele, maggio 11, 2012 al 12:35 am

    Scusa mi sono scordato di aggiungere anche che lavoro con Mac e uso Fetch per l’ftp,
    per quanto riguarda il file .htaccess una volta che lo scarico sul desktop
    (o dentro qualsiasi altra cartella) sparisce…
    Quindi non so come fare per modificarlo.

    Grazie ancora

  4. By Manuele, maggio 11, 2012 al 12:50 am

    Scusa i tanti commenti…
    Sono riuscito ad aprire il .htaccess, ma dice soltanto

    # BEGIN WordPress

    # END WordPress

    Quindi non penso di doverlo toccare.

    Grazie ancora

    • By admin, maggio 11, 2012 al 7:39 am

      Se, digitando l’url per andare alla home del sito duplcato, non vedi nulla, è probabile che tu abbia dimenticato di modificare qualcosa nelle tabelle. Prova a ricontrollare la tabella wp_option, dove devi inserire gli url aggiornati (esempio: http://www.miosito.it/sottocartella/). Il file htaccess va modificato come nell’esempio modificando la riga con RewriteBase /sottocartella/.

      • By Manuele, maggio 11, 2012 al 2:48 pm

        Grazie di tutto,
        l’ultima cosa che non ho capito:
        dentro il file .htaccess (aperto con dreamweaver)
        io vedo solo
        # BEGIN WordPress
        # END WordPress

        in che modo posso intervenire visto che non ci sono righe di testo
        incollo il codice soprariportato (mettendo ovviamente
        dove lo dice la mia /sottocartella)

        Grazie ancora

        • By admin, maggio 12, 2012 al 11:10 am

          Esatto.
          Quell’operazione è da fare solamente se, nel wordpress duplicato, avevi impostato i permalink personalizzati, cioè “google-friendly”. Per far si che continuino a funzionare occorre copiare il contenuto del file htaccess riportato nell’esempio (modificando la sottocartella).

  5. By Manuele, maggio 13, 2012 al 11:07 am

    Ciao,
    Grazie!

    Sono riuscito a fare tutto.

    Rimane solo un ultima cosa “strana”
    entrando nel wp-admin del nuovo sito in inglese, in una pagina, articolo, media etc.
    il testo della pagina in “visuale” appare in bianco dello stesso colore del fondo per modificare i testi
    devo per forza modificare con “html”…

    Premetto che ho un tema installato abbastanza elaborato
    e allo step 4 (non so se può influire) quando dicevi di modificare la tabella wp2_usermeta
    io ho trovato oltre ai wp_capabilities e i wp_user_level anche wp_user_setting e wp_dashboard…
    e ho modificato anche quelli con prefisso wp2.

    A parte questo ho nient’altro da che può dipendere?

    Comunque ti ringrazio tantissimo per la pazienza e per questa guida che è stata preziosa.

  6. By Marco, gennaio 28, 2013 al 9:45 am

    Ciao,
    grazie per questa guida, è stata molto utile.
    Ma ho ancora una domanda.
    Ho seguito tutti i passi che hai descritto ma ancora qualcosa non va.
    In pratica ho creato una cartella “nuovo” nel mio dominio, ci ho copiato tutto il sito e ho fatto gli aggiornamenti sul db.
    Adesso ho il dominio con il sito normale e il sito copiato su dominio/nuovo.
    L’home page si vede e il wp-admin è accessibile.
    Però tutte le voci di menu già esistenti rimandano alle pagine del sito originale non a quelle della copia, mentre le voci che creo nuove mi danno errore 404.
    Spero di essere stato abbastanza chiaro.
    Nel caso non lo fossi stato il sito è visibile all’indirizzo diversiedivisi.it e diversiedivisi.it/nuovo.

    Grazie dell’aiuto, della disponibilità e del tempo dedicatomi.
    Ciao
    Marco

    • By admin, gennaio 28, 2013 al 11:04 am

      Ciao,
      ti ringrazio, mi fa piacere ti sia stata utile.
      Probabilmente non hai modificato il file .htaccess? Se hai la riscrittura degli url (permalinks) personalizzata, devi correggere il file .htaccess nella relativa sottocartella “nuovo” così:


      RewriteEngine On
      RewriteBase /nuovo/
      RewriteRule ^index\.php$ – [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /nuovo/index.php [L]

      # END WordPress

  7. By Marco, gennaio 28, 2013 al 12:40 pm

    sono un idiota, avevo corretto il “RewriteBase” ma non l’ultima “RewriteRule” .-.
    e dire che l’ho riguardato un sacco di volte…

    grazie mille
    ciao,
    Marco

  8. By tonia, febbraio 6, 2013 al 10:05 am

    Buongiorno,

    ho l’esigenza di creare con wordpress (hosting bluehost) 3 siti con tre domini diversi e 3 lingue diverse pero’ con lo stesso tema e topic e voglio collegarli tra di loro tramite delle bandierine. in pratica voglio che sia tutto uguale tranne la lingua. il sito in italiano ha gia’ dei contenuti. saprebbe dirmi come fare? Grazie mille

    • By admin, marzo 22, 2013 al 11:20 am

      Buongiorno e scusami per il ritardo nella risposta (sicuramente avrai già risolto).
      Puoi usare un plugin che si chiama qtranslate che ti consente di gestire più lingue su uno stesso sito, e ti permette gi creare automaticamente le bandierine.
      Altrimenti puoi avere proprio 3 siti, ciascuno con la propria lingua e collegarli tramite bandierine inserite manualmente all’interno di ciascuna template.

  9. By Tiziana, aprile 17, 2013 al 8:47 am

    Ciao! Ho seguito alla lettera le tue indicazioni ma ad esempio nello step 3 non ho trovato nel mio database la option_name relativa al wp_user_roles. Ho seguito alla lettera tutto il resto solo che ora quando mi connetto al mio sito (quello della sotto cartella) mi da errore 404.
    Sai mica come risolvere questo problema??

    Grazie,
    Tiziana

    • By admin, aprile 17, 2013 al 8:54 am

      Ciao,
      ti deve essere sfuggito ;), prova a scorrere le tabelle della tapella wp2_option, troverai il valore wp_user_roles da rinominare,

      • By Tiziana, aprile 17, 2013 al 8:58 am

        Non c’è! Premetto che io ho installato WordPress tramite cPanel, cambia qualcosa?
        Ora sto cancellando la sottocartella creata tramite FTP e provando l’installazione in una sotto cartella tramite cPanel, usando come prefisso database wp2_

        Spero che funzioni!

        • By admin, aprile 17, 2013 al 9:05 am

          Non credo cambi qualcosa, perchè WordPress ha bisogno delle sue 11 tabelle di base nel Database per funzionare.
          Se reinstalli da zero WP in una sottocartella usando il prefisso wp2 allora le tabelle saranno create con tale prefisso, ma dovrai poi importare i contenuti, tramite “WordPress Importer”, dall’altro sito.

          • By Emiliano, settembre 30, 2015 al 3:35 pm

            Ciao, complimenti per l’ottima guida! Ho piu’ o meno lo stesso problema di tiziana.. ho fatto tutti gli step tramite FTP, ma mi manca “wp_user_roles” descritto nello step 3. Il sito si vede e funziona tutto, solo che se entro nell’area admin (wp-admin) mi dice “Devi farti autorizzare per accedere a questa pagina.”
            Cosa posso fare? grazie.

          • By Emiliano, ottobre 2, 2015 al 12:56 pm

            Risolto! La option_name relativa al wp_user_roles era nella seconda pagina della tabella wp_options. Non avevo notato che ci sono altre pagine :P

  10. By Alessandro, maggio 13, 2013 al 2:04 pm

    Ciao! Ho fatto tutto come dicevi, ma andando al nuovo indirizzo mi compare un messaggio del browser con scritto “Errore del server
    Si è verificato un errore nel sito web durante il recupero di http://www.miosito.com/oldsite/.”
    con annesso Errore HTTP 500 (Internal Server Error): Si è verificata una condizione imprevista durante il tentativo del server di soddisfare la richiesta.
    Cosa può essere?

    • By admin, maggio 14, 2013 al 6:59 am

      Ciao,
      ti consiglio di controllare i passaggi, perchè sicuramente hai dimenticato di rinominare qualche tabella con il nuovo prefisso. Solita capita negli Step 4 e 5…

  11. By Antonio, giugno 1, 2013 al 10:29 am

    Ciao Ragazzi, grazie mille per il tutorial, e` stato davvero utile.
    Ho un piccolo problemino ora con una versione, Nella versione in Italiano(www.easygroupbooking.com/italian) e` andato tutto liscio, ora in quella spagnola ho un problema con i link.
    Ogni volta che clicchi su un link non apre la pagina corretta, anzi non la tova proprio.
    Cosa potrebbe essere sbagliato?
    Grazie in anticipo

    • By admin, luglio 2, 2013 al 7:53 am

      Potrebbe essere un problema del file .htaccess…hai modificato il file presente nella sottocartella spagnola?

  12. By Marco Zencms.it, ottobre 6, 2014 al 9:26 am

    Ciao ho eseguito tutto come indicato da te, solo che quando vado ad aprire il link alla sottocartella, quindi http://www.miosito.com/en mi da “500 internal server error” ….

    In un primo momento si era visto con tutti i contenuti che si caricavano, ma nell’admin mi dava lo stesso errore di Marco, e cioè che rimandava al link http://www.miosito.com , adesso invece mi dà l’errore suddetto.

    Sai dirmi qualcosa in merito?

    Ti ringrazio per la guida e per l’aiuto ;)

  13. By Luca, gennaio 17, 2015 al 10:24 am

    Ciao, Complimenti per la guida, molto chiara e precisa.
    Ho applicato i passi da te indicati e funziona tutto perfettamente solo, non riesco ad avvedere alla wp-admin, se digito: http://www.miosito/en/wp-admin e inserisco le credenziali con cui accedo a http://www.miosito/wp-admin, viene fuori il messaggio: “Devi farti autorizzare per accedere a questa pagina.”
    Qualche consiglio per risolvere il problema?
    Grazie in anticipo

    • By admin, marzo 18, 2015 al 9:25 am

      Ciao Luca,
      hai provato a verificare gli url inseriti nelle tabelle indicate dallo Step 2 in poi?
      Verifica anche il collegamento al DB nel file config.php.

  14. By Savio, marzo 14, 2015 al 12:24 pm

    Ciao, a quasi quattro anni da questo utilissimo post, quanto è ancora valido usare questa operazione? voglio dire, c’è qualche plug in con le nuove versioni di wordpress che aiuta a farlo? io vorrei seguire le tue istruzioni, però invece di duplicare le tabelle, vorrei creare un altro database, dato che aruba me lo da diviso in 5, come fare in questo caso? grazie :)

    • By admin, marzo 18, 2015 al 9:14 am

      Ciao Savio,
      questa procedura può essere ancora utilizzata. Tutto ovviamente dipende dall’obbiettivo che si vuole raggiungere, poichè esistono plugin gratuiti e a pagamento che permettono di tradurre i contenuti.
      A seconda di come si desidera gestirli è comunque possibile duplicare il sito web e avere 2 siti distinti.

      In ogni caso la procedura di duplicazione può essere utilizzata anche per altri scopi.

      Nel tuo caso, se hai due DB distinti, anzichè duplicare le tabelle puoi esportare il DB e importarlo nel secondo per avere comunque due installazioni di wordpress.

  15. By Federica, marzo 25, 2015 al 6:57 pm

    Ciao Gabriele, ti ringrazio per la guida, è esattamente quello che devo fare, ma mi perdo in un passaggio forse banale, come si duplicano le tabelle del database? ho il dominio su aruba se può essere utile, ma non capisco come fare, vedo il mio elenco di tabelle ma non trovo il comando adatto!!! Ci ho già perso due giorni e sarà sicuramente una cretinata, ma aiuto vi prego!!!! :-D

  16. By enrica, aprile 30, 2015 al 3:02 pm

    Buongiorno,

    non so se mi può dare un’aiuto per un problema strano di cache o htccess che si verifica su un sito che ho duplicato seguendo questa procedura.
    Però nel passare da un sito all’altro nella versione ita ed eng non si aggiornano menu e footer
    se non ricaricando la pagina.

    http://www.kim2015.it/
    cliccando il link in basso su EN si apre il link corretto ma carica solo la parte centrale in inglese menu e footer rimangono in ita ricaricando la pagina con F5 la versione inglese si carica correttamente con menu e footer in inglese.

    i rispettivi file .htaccess sono i seguenti per ita :

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

    per eng

    # BEGIN WordPress

    RewriteEngine On
    RewriteRule .* – [E=Cache-Control:no-cache]
    RewriteBase /eng/
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ./eng/index.php [L]

    # END WordPress

    hosting su register ho già inviato richiesta anche a loro ma mi hanno segnalato che lato server non risultano problemi.

    mi può aiutare?

    può essere il template o qualche redirect impostato nel template?
    digitando ad esempio anche una cartella inesistente ad esempio: http://www.kim2015.it/ru
    la parte che si aggiorona con l’errore 404 è sempre la centrale menu e footer rimangono invariati.

    il template in uso non supporta eventuali problematiche per le lingue ma duplicando i siti l’ita nella root principale e l’eng in una directory distinta non dovrebbe creare problema.

    grazie

  17. By Luca, luglio 16, 2015 al 4:06 pm

    Ciao,
    ho trovato molto utile il tuo post dato che volevo duplicare il mio sito nella cartella http://www.fawltytowersrooms.com/en/.
    Unica modifica alla tua guida è che ho usato un altro database invece di duplicare le tabelle.
    Per la parte amministrazione tutto bene, ma come scrivi sopra in un commento
    “Se, digitando l’url per andare alla home del sito duplcato, non vedi nulla, è probabile che tu abbia dimenticato di modificare qualcosa nelle tabelle. Prova a ricontrollare la tabella wp_option, dove devi inserire gli url aggiornati (esempio: http://www.miosito.it/sottocartella/). Il file htaccess va modificato come nell’esempio modificando la riga con RewriteBase /sottocartella/.”
    il problema è che il mio .htaccess l’ho ricontrollato più e più volte e te lo riporto di seguito, ma non mi funziona lo stesso
    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /en/
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /en/index.php [L]

    # END WordPress

    Potresti aiutarmi gentilmente?
    Grazie

    Luca

  18. By jennifer, gennaio 31, 2016 al 10:18 pm

    Buona sera , in tanto ti ringrazio per la guida che hai pubblicato! sono alle prime armi in questo campo e vorrei farti una domanda. Ho creato una Sottodirectory del mio sito , vorrei capire se è possibile indirizzare la sottodirectory in un database diverso rispetto a quello che uso per il sito principale? grazie mille

  19. By bruba, maggio 11, 2016 al 11:33 pm

    sai darmi delle info su come aggiornare un vecchio WP 2.2.2 alla versione nuova senza rischiare?

    perché ho visto che i plugin appositi non possono essere usati per versioni antecedenti alla 3.9.

    esiste un plugin per la 2.2.2?

    grazie!

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

Tweets

Scroll to top