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 🙂