Como crear un Sitemap Multi-idioma con Hreflang

Escrito por Carlos Santos el 07/02/2015
sitemap-multi-idioma

Sí Señor, esta sí que es una buena Pregunta, antes de proseguir informaros que el tutorial es avanzado así que, Comencemos..

Mi experiencia es en este campo hasta el momento es que si quieres una versión multilingüe de tu web. Registra dominios diferentes y contrata un Hosting para cada uno de ellos. Luego posiciona cada una de ellas por separado. Por consiguiente con este método tendremos un sitemap para cada ellas. Si este es tu caso, no tienes por qué seguir leyendo, salvo por el afán de la lectura y las ganas de acumular conocimientos.

La técnica de un Domnio y Hosting por idioma siempre me dio buen resultado y tengo diversos casos de éxitos, funcionando muy muy bien. Pero seguro que tenéis casos de clientes con menor presupuesto o que simplemente no entiende la inversión en una web por idioma (Recordad estamos en España).  Por eso antes de informaros como realizar un Sitemap Multi-idioma. Vamos a indagar un poco en los casos más comunes que se pueden dar en una web,que comparte idiomas en un mismo dominio y hosting

Casos de web Multi-idiomas en un mismo dominio y hosting

Bien os cuento, existen dos casos comunes de web multi-idioma en un mismo dominio.

(A) Creación de subdominios por idiomas.

Esta opción la probé hace mucho tiempo y no obtuve buenos resultados. No tengo suficientes datos, como para evaluar si el poco éxito era debido a fallas en el proyecto o a su poca calidad. O simplemente a que el método elegido no es el mejor para posicionar en Google.

Se trata de crear subdominios por idiomas, ejemplo:

es.nombredemiweb.com ->  web para español

en.nombredemiweb.com ->  web para ingles

Según Google un subdominio es una web totalmente diferente, por lo que la densidad de palabras con este método será la correcta para cada idioma y Google no se hará un lio con palabras en inglés y español. Cosa que sólo provoca malos resultados en los rankings.

Si os parece bien dejaremos este caso sin comentar a fondo. Ya que tiene las ventajas de ser considerados como webs diferentes pero la desventaja de compartir IP. Por lo no es un método apropiado para indexar en varios países distintos además de no tener datos fiables de correcto funcionamiento.

(B) Creación de subcarpetas por idiomas.

Este método es el más habitual y me dio buenos resultados, os comento de que se trata.

nombredemiweb.com/es  -> web para español

nombredemiweb.com/en  -> web para ingles

Con este método el robot de google es capaz de detectar que tú web esta en distinto idiomas, pero sólo si se lo dices.  Si no se lo comunicas tu densidad de palabras será un galimatías de idiomas con el que no conseguirás primeros puestos en los rankings.

¿Cómo se comunicaba esto a Google, antes de existir los Sitemaps multi-idiomas?

Facil, en Google Webmaster Tools, añadias cada uno de las web como si fueran diferentes, definías su orientación geografía y por supuesto crearbas un sitemap único para cada una de ellas. De esta forma Google “entendía” que son versiones de tu web diferente.

 Entonces, ¿Cuál de los métodos tengo que utilizar?

Como dije al principio lo mejor es dominios y hosting diferentes, pero si el cliente sigue en crear una web multilingüe. La mejor opción es ninguna de las dos anteriores.

Un Nuevo Método, un nueva esperanza.

Hace relativamente poco Google comunico como debíamos de realizar un web multi-idioma. Podéis leerlo aquí: https://support.google.com/webmasters/answer/2620865?hl=es

Consiste en crear subcarpetas por idiomas, pero creando un solo sitemap donde podremos definir nuestras páginas y su correspondiente versiones en otro idiomas además de la orientación geográfica de las mismas.

Esto es un gran avance en las web multi-diomas. Para este propósito Google nos propone el uso de  las etiquetas: rel=”alternate” hreflang=”x” para llevar a cabo esta empresa.

Os pongo un ejemplo:

Imaginaros la web: nombredemiweb.com, la cual consta de tres idiomas.

Ingles que está en el principal: nombredemiweb.com

Español que está en: nombredemiweb.com/es

Y francés: nombredemiweb.com/fr

Daríamos la web principal de alta en webmaster tools, (sólo una vez, no una vez por cada idioma) y luego procedemos a crear nuestro Sitemap. Que quedaría de esta manera:

<?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://nombredemiweb.com</loc>
    <xhtml:link
                 rel="alternate"
                 hreflang="es"
                 href="http://nombredemiweb.com/es"
                 />
    <xhtml:link
                 rel="alternate"
                 hreflang="fr"
                 href="http://nombredemiweb.com/fr"
                 />
  </url>

  <url>
    <loc>http://<strong>nombredemiweb.com/es</loc>
    <xhtml:link
                 rel="alternate"
                 hreflang="en"
                 href="http://nombredemiweb.com"
                 />
    <xhtml:link
                 rel="alternate"
                 hreflang="fr"
                 href="http://nombredemiweb.com"
                 />
  </url>

  <url>
    <loc>http://nombredemiweb.com/fr</loc>
    <xhtml:link
                 rel="alternate"
                 hreflang="en"
                 href="http://nombredemiweb.com"
                 />
    <xhtml:link
                 rel="alternate"
                 hreflang="es"
                 href="http://nombredemiweb.com/es"
                 />
  </url>

</urlset>

Como veis cada página principal están dada de alta en su idioma e informamos de la versión alternativa en otro idioma. Os lo detallo más a fondo:

<url>
    <loc>http://nombredemiweb.com</loc>  <!-- versión en inglés -->
    <xhtml:link
                 rel="alternate" <!-- informamos que existe una página alternativa -->
                 hreflang="es"  <!-- que es en idioma Español -->

                 href="http://nombredemiweb.com/es"  <!-- y cuál es su dirección -->
                 />
    <xhtml:link
                 rel="alternate"  <!-- aquí informamos que existe otra versión alternativa -->
                 hreflang="fr"    <!-- que es en idioma Gabacho -->
                 href="http://nombredemiweb.com/fr"  <!-- y que su dirección es esta otra -->
                 />
  </url>

Pero bien aquí no queda todo, ahora tendemos que dar de alta cada una de la paginas de nuestra web (Ohh my good)

Ejemplo:


<url>

    <loc>http://nombredemiweb.com/company.html</loc>
    <xhtml:link
                 rel="alternate"
                 hreflang="es"
                 href="http://nombredemiweb.com/es/empresa.html"
                 />
    <xhtml:link
                 rel="alternate"
                 hreflang="fr"
                 href="http://nombredemiweb.com/fr/compagnie.html"
                 />
  </url>

  <url>

    <loc>http://nombredemiweb.com/es/empresa.html</loc>
    <xhtml:link
                 rel="alternate"
                 hreflang="en"
                 href="http://nombredemiweb.com/company.html"
                 />
    <xhtml:link
                 rel="alternate"
                 hreflang="fr"
                 href="http://nombredemiweb.com/fr/compagnie.html"
                 />
  </url>

   <url>
    <loc>http://nombredemiweb.com/fr/compagnie.html</loc>
    <xhtml:link
                 rel="alternate"
                 hreflang="en"
                 href="http://nombredemiweb.com/company.html"
                 />
    <xhtml:link
                 rel="alternate"
                 hreflang="es"
                 href="http://nombredemiweb.com/es/empresa.html"
                 />
  </url>

Como podrás ver para cada Url se debe reseñar con su versión alternativa para cada idioma. Como podéis ver en el ejemplo para la dirección http://nombredemiweb.com/company.html , existe una versión española llamada http://nombredemiweb.com/es/empresa.html y otra francesa llamada http://nombredemiweb.com/fr/compagnie.html.

Como podéis ver las la Urls son amigables para cada idioma (COSA INDISPENSABLE). No es lo mismo tener.

http://nombredemiweb.com/leather-goods-manufacturer.html

http://nombredemiweb.com/es/leather-goods-manufacturer.html

http://nombredemiweb.com/fr/leather-goods-manufacturer.html

Que esto otro:

http://nombredemiweb.com/leather-goods-manufacturer.html

http://nombredemiweb.com/es/fabricante-de-articulos-de-piel.html

http://nombredemiweb.com/fr/fabricant-d%E2%80%99articles-en-cuir-en-espagne.html

La dirección en el idioma en cuestión indexara muchísimo mejor, pero bueno esto creo que si leísteis el articulo hasta aquí, tendréis que tenerlo más que suficientemente asimilado.

 ¿Cómo puedo automatizar la creación de un Sitemap multilingüe?

Pues existe un software que si el das tu dirección lo crea de ipso facto  y adivina por arte de magia cual son las versiones en inglés y sus respectivas en otros idiomas. Como podéis adivinar esto es ironía pura. Desconozco si existe algo así y si existe tendremos que decirle a mano, cual son las correspondientes versiones en otro idiomas.

Por eso mismo y me repito. Si tienes un proyecto con muchísimas paginas lo mejor crear Dominio y Hosting por idioma. Aunque si tienes tu web en un CMS como WordPress o Prestashop existen plugins que lo realizan automáticamente.  Si no recuerdo mal la última versión de Prestashop ya lo realiza. En el caso de las tiendas es mucho más fácil que el sistema deduzca cuales son las respectivas versiones en idiomas (pensad un poco).

 ¿Algo más?

Pues algunos habréis leído que tenéis que indicar a en cada página de inicio del HTML de vuestra web, que existen versiones alternativas de idiomas de esta Guisa:

<link rel=”alternate” hreflang=”en” href=”http://nombredemiweb.com” >

<link rel=”alternate” hreflang=”es” href=”http://nombredemiweb.com/es” >

<link rel=”alternate” hreflang=”fr” href=”http://nombredemiweb.com/fr” >

Pero como podéis leer el blog de Google:

http://googlewebmastercentral.blogspot.com.es/2012/05/multilingual-and-multinational-site.html

Sólo es necesario utilizar en la actualidad uno de los métodos. El del Sitemap es en mi opinión el más eficaz y más cómodo de actualizar.

Mi opinión final

Como muchos habéis intuido esto es muy parecido a la URL canónica, al informar a Google cual es la web principal y cual su versión en otro idioma. Es decir de esta forma Google indexara contenido por buscadores y no indexara contenido de lenguaje mixto que solo sirve para aumentar sus recursos.

Se cumple mi teorema que suelo seguir siempre en el SEO:

Toda acción que provoque un menor consume de los recursos de indexación de Google, equivaldrá a una subida potencial en sus Rankings.

Teorema Seopolis

Este movimiento de Google no deja de ser un perfecto golpe maestro en todos los sentidos. Obligándonos a trabajar como siempre a nosotros para ahorrar y automatizar sus propios recursos.

Si aplicáis ingeniería inversa, toda esta información en forma de contenidos es perfecta para la mejora de su traductor y resultado de búsqueda más perfectos (de ahí a que se cumpla el teorema). Y lo mejor de todo es que se creó por fin un estándar para las web multi-idioma.

Aunque de todas formas si tenéis presupuesto, recordad: Web por idioma con dominio a ser posible del país en el que posicionar y por supuesto Hosting con ip del mismo país.

Saludos

Ahh una cosita que se me olvidaba, este tipo de Sitemaps solo son válidos por el momento para Google y no para otros buscadores. ¿Pero existes búsquedas fuera de Google?.

Compartelo si te gusta....

Publicado en: Teorías, Trucos
About Carlos Santos

Programador y Diseñador Web con más de 15 años de experiencia en la web. Combina su trabajo de diseñador y programador con la de SEO y marketing en internet.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>