Etiqueta alternate hreflang y gestión de idiomas

Cuando hablamos de sitios web multi idioma tendemos a pensar en grandes sitios web o empresas multinacionales y muchos SEOs obvian muchas de las actualizaciones referentes a la gestión de los contenidos multi lenguaje pensando que seguramente nunca tengan que enfrentarse a proyectos de tal envergadura.Nada más lejos de la realidad, muchísimos sitios web deberían optimizar sus orientaciones multi lenguaje y sin embargo no lo hacen del todo bien, y para muestra un botón: Las plataformas ecommerce como Magento o Prestashop que implementan varios idiomas. Aquí os una forma de solucionarlo.

Existen varias opciones para administrar o indicar a los bots de los buscadores la página o contenido que debe indexar según el idioma o territorio (que no es lo mismo).
Una de esas opciones es la etiqueta rel="alternate" que con su parámetro hreflang señala a los buscadores donde está alojado ese contenido para en el idioma y territorio correspondiente.

Vamos a ver un ejemplo para una web que tiene 3 idiomas sin distinción de territorio, que serían español, inglés y francés. Las etiquetas que deberían añadirse serían:

<link rel="alternate" hreflang="x-default" href="http://www.example.com/" />
<link rel="alternate" hreflang="en" href="http://www..example.com/en/page.html" />
<link rel="alternate" hreflang="es" href="http://www.example.com/es/page.html" />
<link rel="alternate" hreflang="fr" href="http://www.example.com/fr/page.html" />

He indicado una etiqueta alternate hreflang con el valor x-default, que sería una página por defecto si no se encuentran otra versión mejor con un idioma/territorio asignado.

No olvides que la etiqueta rel="alternate" funciona a nivel de página y no de sitio, así que deberías añadirla en todas las páginas que tengan versiones diferentes según el idioma/territorio.
Además ten en cuenta que no debes incluir la etiqueta del idioma/territorio que corresponda a la página en la que ya está el usuario, es decir, que si el usuario está en la versión en inglés, no debes añadir en esa página la etiqueta correspondiente al idioma en inglés.

Pero ¿Cuál es la diferencia entre idioma y territorio?
La diferencia entre idioma y territorio radica en que se puede diferenciar, y por lo tanto generar contenido específico, para usuarios que hablen el mismo idioma como puede ser el español, pero sin embargo residan en países diferentes con todo lo que eso supone, como por ejemplo usuarios de España y Argentina.

En caso de que tuviésemos un sitio web con contenido dirigido a usuarios en España y otro contenido a usuarios en Argentina, como puede darse el caso de un ecommerce que muestra un contenido diferente sobre precios en los gastos de envío dependiendo el país de destino, las etiquetas rel="alternate" serían así:

<link rel="alternate" hreflang="es-ES" href="http://www.example.com/es/page.html" /> (para España)
<link rel="alternate" hreflang="es-AR" href="http:/www.example.com/es-ar/page.html" /> (para Argentina)

Te resultará de ayuda echar un vistazo a los diferentes códigos de países ISO 3166-1 y a sus subdivisiones territoriales.

Soy Consultor SEO

Puedo ayudar a su proyecto online a conseguir la visibilidad que necesita