• User

    Sito multilingua e SEO, indeciso su soluzione

    Salve a tutti, vorrei porvi una questione sulla quale sto riflettendo da qualche tempo senza aver trovato ancora una risposta valida.

    Mi ritrovo spesso a dover creare siti multilingua su un unico dominio (generalmente it o com).
    Vista la necessità di dover aggiornare spesso questi siti fin'ora ho sempre risolto trasformando le pagine in php e facendo caricare i file contenenti i testi nelle varie lingue tramite variabile nell'URL.
    Giusto per capirci "index.php?lang=it" faccio caricare un file "lang_ita.php" contenente i testi in italiano.

    Il vantaggio di fare una cosa del genere come tutti potete facilmente immagine è quello di avere un unico file "index" che però carica tutte le lingue, in caso di aggiornamenti basta modificare un solo file, da quando mi sono addentrato nel mondo SEO però ho forti dubbi che questa possa essere la soluzione migliore.

    Il fatto è che i consigli che leggo (praticamente ovunque) raccomandano di creare delle sottocartelle con la lingua di interesse, es: www . miosito . it / en /, www . miosito . it / de / ecc.., sempre che non si vogliano invece usare dei sottodomini.
    Questa soluzione chiaramente mal si sposa con quella da me adottata, per un sito in tre lingue vorrebbe dire avere tre siti differenti e quindi ogni piccolo aggiornamento andrebbe riportato su tutte le pagine delle altre lingue con conseguenti possibili problemi di congruenza dei contenuti.

    Mi chiedevo a questo punto se secondo voi devo abbandonare la tecnica da me adottata (passaggio di variabile nell'URL) e nel caso se c'è un modo per evitare di avere le pagine duplicate.

    Ringrazio in anticipo chiunque voglia darmi qualche suggerimento.


  • Moderatore

    ciao silvername, benvenuto nel Forum GT

    Nella costruzione di siti multilingua sono diversi gli aspetti cui occorre prestare attenzione, due in particolare:

    • Anche se dal punto di vista logico una pagina è la stessa cambiando lingua, occorre che cambiando la lingua cambi anche l'URL.

    Nel tuo caso la soluzione hai adottato permette di raggiungere lo scopo, anche se non è un URL user/seo-friendly.

    • Si raggruppano i contenuti di diverse lingue in sottocartelle o sottodomini.

    In questo caso la tua soluzione non raggiunge lo scopo.
    Il motivo per cui ciò è consigliato è per permettere di differenziare la geo-localizzazione in GWT (Strumenti per i Webmaster di Google) secondo la lingua dei contenuti. GWT permette di farlo per sottodominio o sottocartella, di qui la necessità di raggruppamento.
    C'è da dire una cosa: è possibile specificare la geo-localizzazione solo per domini di primo livello generici.
    Il .it è un ccTLD non generico: Google lo considera indissolubilmente legato all'Italia. Ben difficile scalare SERP estere. Per questo nello sviluppo di siti multilingua è meglio optare per domini .com/.net/.org/...etc.

    Non pensare però che la strutturazione in sottocartelle ti debba per forza costringere a usare file .php separati.
    La soluzione tecnica si chiama "URL rewriting"; grazie ad essa puoi fare sì che lo stesso file .php sia raggiungibile con path non fisici ma logici.

    Per esempio, puoi fare sì che
    / sia interpretato come /index.php?lang=it, e
    /de/ sia interpretato come /index.php?lang=de
    il tutto in modo trasparente all'utente.

    Puoi anche usare la tecnica per differenziare gli URL rendendoli User/SEO-friendly, es.
    /mia-pagina.php e
    /en/my-page.php siano due viste logiche dello stesso file .php cui si passa un lang=it o lang=en

    Non sviluppo in PHP e non so guidarti nell'implementazione tecnica, ma cerca nel tuo motore di ricerca preferito [php e url rewriting] e troverai sicuramente tutte le risorse di cui necessiti.

    Presta anche attenzione che le pagine fisiche su cui si mappano gli URL logici non causino contenuti duplicati.
    Per esempio se la tua Home Page in Italiano è / e si traduce con /index.php?lang=it, l'utente deve raggiungerla solo con il primo alias, non con /index.php?lang=it (un redirect 301 è un metodo per far rispettare il vincolo)

    Spero d'esserti stato utile


  • User

    sei stato davvero gentile ed esaudiente nella risposta, non potevo chiedere di meglio, grazie ancora :smile5: