SEO per siti multilingua: sitemap, robots.txt e Search Console

Difficoltà:    

Nella prima parte della guida sulla SEO per siti multilingua ho parlato dei tag hreflang e del loro utilizzo all’interno di un progetto web internazionale.
In questo secondo capitolo scopriremo invece come impostare la sitemap XML e il file robots.txt delle diverse versioni del sito in relazione alle aree geografiche di riferimento.

Sitemap

Ho un sito in due o più lingue: quante sitemap mi servono?

In molti sono convinti che sia sempre e comunque necessario creare diverse sitemap, una per ogni lingua del sito. Non è necessariamente vero: esistono alcuni casi in cui è possibile indicare le varie versioni del sito in un’unica sitemap arginando confusione e dispersività.

Per decidere se nel vostro caso vi conviene creare una o più sitemap, l’aspetto fondamentale da valutare è la struttura del sito web: dov’è posizionata la seconda lingua?

  • La versione in un’altra lingua è in una sottocartella (come www.esempio.com/it): create una sola sitemap, utilizzando i tag hreflang
  • La versione in un’altra lingua è su un altro dominio (come www.esempio.it e www.esempio.com) o sottodominio (come it.esempio.com): create più sitemap e racchiudetele in un sitemap index

Ecco come fare:

Primo caso: versione in un’altra lingua in una sottocartella

www.esempio.com/it
Si tratta del caso più semplice, in quanto è sufficiente una sola sitemap contenente i tag hreflang di Google per indicare lingue e aree geografiche di riferimento: utilizzare questi tag all’interno della sitemap anziché come attributi HTML nell’head delle singole pagine è particolarmente utile per chi utilizza un CMS come WordPress e non sempre ha la possibilità di personalizzare l’head di ogni pagina del sito.

Ecco un esempio della sintassi richiesta con una pagina in lingua inglese che ha due versioni alternative:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
  <loc>http://www.example.com/en</loc>
  <xhtml:link 
    rel="alternate"
    hreflang="de"
    href="http://www.example.com/de" />
  <xhtml:link
    rel="alternate"
    hreflang="en-gb"
    href="http://www.example.com/en-gb" />
<xhtml:link
    rel="alternate"
    hreflang="en"
    href="http://www.example.com/en" />
</url>
</urlset>

In breve, la sitemap comunica a Google che per la pagina indicata all’interno dei tag loc esistono:

  • una versione in tedesco (http://www.example.com/de)
  • una versione in inglese specifica per chi vive in Gran Bretagna (http://www.example.com/en-gb)
  • una versione in inglese generica per tutti gli anglofoni che non vivono in Gran Bretagna (http://www.example.com/en)

Per veicolare questo messaggio la sitemap utilizza gli hreflang in xml (molto simili a quelli in HTML) per indicare lingua, area di riferimento e URL della pagina.
Il tag va così composto:

<xhtml:link + 
rel="alternate" + 
hreflang="codice della lingua (in formato ISO 639-1) - area geografica (in ISO 3166-1 alpha-2) + 
href="URL della versione del sito nella lingua indicata" />

Ogni URL deve contenere un tag loc e un sottoelemento hreflang per ogni versione della pagina, compresa quella racchiusa nel tag loc.

Va creato un tag hreflang per ogni pagina del sito?

Purtroppo sì. Non è possibile limitarsi ad indicare la home page del sito, in quanto Google necessita di conoscere nel dettaglio quante e quali pagine diverse esistono per ogni lingua. La scansione di Google, l’indicizzazione e il conseguente posizionamento avvengono sempre a livello di pagina e non di sito, per questo è imprescindibile indicarle tutte.
Per facilitare il lavoro a chi ha un sito con un gran numero di pagine, esiste questo tool gratuito che consente di generare la sitemap da un file CSV (in pratica dovrete mappare tutti gli URL delle diverse lingue in un foglio Excel e poi caricarlo).

Secondo caso: versione in un’altra lingua su un dominio a parte o sottodominio

www.esempio.com, www.esempio.it o it.esempio.com
Si tratta del caso più ostico, in quanto il protocollo ufficiale delle sitemap XML definisce chiaramente l’impossibilità di inserire URL da domini diversi all’interno di una sitemap. Stesso discorso vale per i sottodomini, in quanto Google li considera ufficialmente “un metodo per separare contenuti del tutto differenti” (basti pensare a domini di terzo livello come xxxx.blogspot.it o xxxx.wordpress.com, che ospitano migliaia di siti diversi tra loro, o alle decine di prodotti di Google ospitati su un sottodominio).

Esiste un modo per includere diversi domini in una sola sitemap effettuando un cross submit (qui le istruzioni, nella parte “Sitemaps and Cross Submits”), ma si tratta di un metodo poco usato e limitante, in quanto consente di elencare solo URL relativi a un unico sottodominio e richiede di dimostrare la proprietà del sottodominio elencando nel suo robots.txt la sitemap del dominio principale. Insomma, molto caotico e poco pratico.

Specie per i siti web di grandi dimensioni, l’opzione più consigliabile quando abbiamo a che fare con sottodomini e domini a parte è sicuramente creare una sitemap per ogni lingua del sito, perciò avremo tante sitemap quante sono le versioni alternative.

sitemap siti multilingua

Per arginare la dispersività causata dalla presenza di più sitemap, raggruppatele sempre in un sitemap index generale strutturato come nell’esempio di seguito:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap><loc>http://www.example.com/sitemap.xml</loc></sitemap>
<sitemap><loc> http://fr.example.com/sitemap.xml </loc></sitemap>
<sitemap><loc> http://de.example.com/sitemap.xml </loc></sitemap>
</sitemapindex>
Sì, ma in questo modo come indico le lingue a Google?

I tag hreflang possono essere cross-domain, perciò non c’è alcun problema nell’indicarli nelle singole sitemap. L’alternativa è utilizzare i tag hreflang in HTML nell’head delle singole pagine e segnalando a Google le lingue del sito tramite il targeting geografico della Search Console. Ne parleremo nell’ultimo paragrafo.

Con la sitemap abbiamo finito: per completare l’opera, è tempo di passare al robots.txt.

Robots.txt

Per i siti multilingua è sempre raccomandabile indicare la sitemap (o le sitemap) all’interno del file robots.txt. Si tratta di un passaggio importante soprattutto per i siti con sottodomini e domini a parte, per segnalare il sitemap index.

Se il vostro sito si compone solo di sottocartelle e quindi avete creato una sola sitemap, indicatela così:

Sitemap: http://www.example.com/sitemap.xml
User-agent:*
Disallow:

Se invece avete creato più sitemap e un sitemap index, è sufficiente includere solo l’URL di quest’ultimo:

Sitemap: http://www.example.com/sitemap_index.xml
User-agent:*
Disallow

Search Console

Ci siamo quasi!
L’ultimo passaggio da completare è quello di aggiungere una ad una le versioni del vostro sito alla Search Console di Google.
Potete farlo sia nel caso in cui le lingue alternative siano in una sottocartella che in un sottodominio, in quanto Google consente entrambi i tipi di sottomissione.

È particolarmente importante per i siti con lingue sui sottodomini che le versioni vengano aggiunte separatamente per specificare il targeting geografico.

Dal menù a sinistra selezionate Traffico di ricerca -> Targeting internazionale. Dovrebbero comparirvi due schede: lingua e Paese. Se avete aggiunto correttamente i tag hreflang in HTML alle pagine del sito, la sezione Lingua vi mostrerà dopo la prima scansione da parte dei crawler quanti tag sono stati trovati e quanti presentano errori.
La sezione Paese, invece, citando testualmente le linee guida di Google:

ti consente di impostare un Paese target per il tuo intero sito, se necessario.

Specificate quindi il Paese scegliendolo dall’elenco et voilà, avrete fornito a Google tutte le indicazioni necessarie per orientarsi all’interno del vostro sito multilingua!

Ho realizzato un’infografica per riassumere tutto il procedimento (click per ingrandire):

infografica seo multilingua

L’ultimissimo passaggio per assolvere a tutti i doveri della SEO tecnica è la localizzazione automatica dei visitatori del sito per restituire loro la pagina giusta nella giusta lingua.
Ne parleremo nella terza e ultima parte di questa guida.
Stay tuned 🙂

Di Susanna Marsiglia

Blogger, content manager, SEO, web designer, a volte scrittrice analogica. Nerd repressa causa incompatibilità con la matematica. Mens sana in corpore pigro.

Commenti (13)
  1. Paolo 17 febbraio 2017 at 14:42

    Ciao,
    una domanda: ho 5 domini da gestire, devo caricare l’indice della sitemap (con dentro tutte le sitemap dei domini) su tutte e 5 le search console? O basta caricare l’indice una volta sola su un dominio solamente?
    Grazie

  2. Alessandro 2 settembre 2016 at 11:14

    Ciao… non ho capito se tag hreflang nell’head e nella sitemap sono mutuamente esclusivi, vanno usati entrambi, o è indifferente… Grazie!
    P.S. Finalmente un sito sulla SEO anche bello da vedere!

    • Susanna Marsiglia 6 settembre 2016 at 11:32

      Ciao Alessandro, e scusami la risposta tardiva! 🙂
      Va usata un’opzione a tua scelta tra i tag nell’head e quelli nella sitemap, in quanto sono in tutto e per tutto equivalenti. La scelta su quale delle due soluzioni adottare è a tua discrezione, in base al progetto su cui stai lavorando e alla semplicità di implementazione. Usare entrambe le opzioni in contemporanea non solo è ridondante, ma potrebbe essere addirittura dannoso.

  3. Pingback: SEO per siti multilingua: guida ai tag hreflang

  4. Corrado 24 maggio 2016 at 19:34

    Ciao,
    articolo preziosissimo e utilissimo. Purtroppo non risolve un problema con un mio nuovo cliente. Praticamente chi ha fatto il sito prima (in wordpress) ha creato in “ibrido” tra le due situazioni: http.sitocliente.com (per l’italiano) http.sitocliente.com/ig/ (per united kindom) e http.us.sitocliente.com (per united state con redirect 301 da sitocliente.com – nuova installazione di wordpress solo per americani con contenuti specifici). Ora mi trovo a dover mettere un pò d’ordine ma sono in difficoltà? Suggerimenti? Anche perchè ora ricercando con google su risultati italiani esce solo http.us.sitocliente.com!!!

    • Susanna Marsiglia 2 giugno 2016 at 12:29

      Ciao Corrado,
      situazione intricata la tua. Ti consiglierei di riorganizzare tutto il sito di modo che ogni versione alternativa sia su un sottodominio (/us, /ig), assicurarti che i tag hreflang siano corretti (non è affatto normale che su google.it compaia la versione americana) e fare un redirect 301 dalle vecchie versioni alle nuove. Nel caso in cui il redirect non fosse possibile, tenta con un canonical, ma questa sarebbe proprio l’ultima spiaggia.
      Buona fortuna!

      • Federico 18 novembre 2016 at 17:19

        Ciao Susanna,

        innanzitutto complimenti per l’articolo, molto chiaro e molto utile! Mi trovo in una situazione simile a Corrado. Nel mio caso la scelta di avere un sito per gli Stati Uniti su un dominio differente (us.miosito.com) è dovuta al fatto che tale sito presenta gli argomenti in modo diverso rispetto alle versioni in italiano e in inglese del sito e ha una grafica differente. Di fatto il sito per gli USA è un sito semplificato pensato proprio per il mercato USA. La mia preoccupazione è evitare che nei risultati di ricerca compaiano contemporaneamente il sito us.miosito.com e miosito.it/en/. Mi piacerebbe avere un tuo consiglio.

        Grazie

  5. Pingback: SEO per siti multilingua: sitemap, robots.txt e...

  6. Pingback: SEO per siti multilingua: geolocalizzazione degli utenti

  7. martino 26 novembre 2015 at 13:11

    Grazie Susanna é una guida molto chiara che ritengo molto utile

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono segnalati *