Cómo informarle a Google que hay versiones localizadas de tu página

Si tienes múltiples versiones de una página para distintos idiomas o regiones, infórmale a Google acerca de las diferentes variantes. De esa manera, la Búsqueda de Google podrá dirigir a los usuarios a la versión más adecuada de tu página según el idioma o la región.

Ten en cuenta que, incluso si no lo haces, es posible que Google igual encuentre versiones de tu página en otros idiomas. Sin embargo, lo mejor es que indiques de manera explícita las páginas específicas según el idioma o la región.

A continuación, se detallan algunas situaciones de ejemplo en las que se recomienda indicar las páginas alternativas:

  • Si el contenido principal está en un solo idioma y solo se traduce la plantilla, como la barra de navegación y el pie de página. Las páginas que incluyen contenido generado por usuarios, como los foros, suelen hacer eso.
  • Si el contenido incluye pequeñas variantes regionales con contenido similar en un solo idioma. Por ejemplo, puedes tener contenido en inglés orientado a EE.UU., Irlanda y el Reino Unido.
  • Si el contenido de tu sitio está traducido por completo a varios idiomas. Por ejemplo, si cuentas con versiones en inglés y alemán de cada página.

Las versiones localizadas de una página solo se consideran versiones duplicadas cuando el contenido principal de la página está sin traducir.

Métodos para indicar páginas alternativas

Existen tres maneras de indicarle a Google que hay múltiples versiones de una página según el idioma o la región:

Etiquetas HTML

Agrega elementos <link rel="alternate" hreflang="lang_code"... > al encabezado de tu página para indicarle a Google todas las variantes de idioma y región de una página. Eso es útil si no tienes un mapa del sitio ni la capacidad para especificar los encabezados de respuesta HTTP de tu sitio.

Cada variación de la página debe incluir un conjunto de elementos <link> en el elemento <head>, un vínculo para cada variante de la página, incluida la página misma. El conjunto de vínculos es idéntico para todas las versiones de la página. Consulta los lineamientos adicionales.

A continuación, se detalla la sintaxis de cada elemento:

<link rel="alternate" hreflang="lang_code" href="url_of_page" />

lang_code
Es un código de idioma o región compatible al que se orienta esta versión de la página. También se puede usar x-default para que coincida con cualquier idioma que no esté detallado de manera explícita por una etiqueta hreflang en la página.
url_of_page
Es la URL completa de la versión de esta página correspondiente a la región o el idioma especificados.
Coloca las etiquetas <link> cerca de la parte superior del elemento <head>. Como mínimo, las etiquetas <link> deben estar dentro de una sección <head> bien formada o antes de cualquier elemento que pueda hacer que <head> se cierre antes de tiempo, como <p> o un píxel de seguimiento. En caso de duda, pega el código de tu página procesada en un validador de HTML para garantizar que los vínculos estén dentro del elemento <head>.

Ejemplo

Example Widgets, Inc tiene un sitio web para usuarios de EE.UU., el Reino Unido y Alemania. Las siguientes URL incluyen básicamente el mismo contenido, pero con variaciones regionales:

  • http://en.example.com/page.html: Es la página principal en inglés genérico, que incluye información sobre tarifas de envíos internacionales desde EE.UU.
  • http://en-gb.example.com/page.html: Es la página principal para el Reino Unido, que muestra precios en libras esterlinas.
  • http://en-us.example.com/page.html: Es la página principal que muestra precios en dólares estadounidenses.
  • http://de.example.com/page.html: Es la página principal en idioma alemán.
  • http://www.example.com/: Es la página predeterminada que no está orientada a ningún idioma ni región. Incluye selectores para que los usuarios puedan elegir estas opciones.

Ten en cuenta que Google no usa subdominios de idiomas específicos en esas URL (en, en-gb, en-us o de) para determinar el público objetivo de la página. Por ese motivo, debes asignarlo de manera explícita.

A continuación, se detalla la URL que debería pegarse en la sección <head> de todas las páginas detalladas arriba. De esa forma, se dirige a los hablantes de inglés genérico, inglés de EE.UU., inglés del Reino Unido y alemán a las páginas localizadas, y el resto verá una página principal genérica. La Búsqueda de Google muestra el resultado adecuado para el usuario según la configuración de su navegador.

<head>
 <title>Widgets, Inc</title>
  <link rel="alternate" hreflang="en-gb"
       href="http://en-gb.example.com/page.html" />
  <link rel="alternate" hreflang="en-us"
       href="http://en-us.example.com/page.html" />
  <link rel="alternate" hreflang="en"
       href="http://en.example.com/page.html" />
  <link rel="alternate" hreflang="de"
       href="http://de.example.com/page.html" />
 <link rel="alternate" hreflang="x-default"
       href="http://www.example.com/" />
</head>

Encabezados HTTP

Puedes mostrar un encabezado HTTP con la respuesta GET de tu página para informarle a Google todas las variantes de idioma y región de una página. Eso es útil para archivos que no son HTML (por ejemplo, PDF).

A continuación, se detalla el formato del encabezado:

Link: <url1>; rel="alternate"; hreflang="lang_code_1", <url2>; rel="alternate"; hreflang="lang_code_2", ...

<url_x>
Es la URL completa de la página alternativa correspondiente a la string de configuración regional asignada al atributo hreflang asociado. La URL debe incluir "<" y ">", las marcas de apertura y cierre. Ejemplo: <https://www.google.com>
lang_code_x
Es un código de idioma o región compatible al que se orienta esta versión de la página. También se puede usar x-default para que coincida con cualquier idioma que no esté detallado de manera explícita por una etiqueta hreflang en la página.

Debes especificar un conjunto de valores <url>, rel="alternate" y hreflang para cada versión de la página, incluida la versión solicitada. Las versiones se separan con comas, como en el ejemplo que se muestra a continuación. El encabezado "Link:" que se muestra para cada versión de una página es idéntico. Consulta los lineamientos adicionales.

Ejemplo

A continuación, se incluye un encabezado Link: mostrado por un sitio que tiene tres versiones de un archivo PDF: una para hablantes de inglés, otra para hablantes de alemán de Suiza y una última para el resto de los hablantes de alemán.

Link: <http://example.com/file.pdf>; rel="alternate"; hreflang="en",
      <http://de-ch.example.com/file.pdf>; rel="alternate"; hreflang="de-ch",
      <http://de.example.com/file.pdf>; rel="alternate"; hreflang="de"

Mapa del sitio

Puedes usar un mapa del sitio para indicarle a Google todas las variantes de idioma y región de cada URL. Para hacerlo, agrega un elemento <loc> que especifique una única URL con entradas secundarias de <xhtml:link> que detallen cada variante de idioma o región de la página, incluida la página misma. Por lo tanto, si tienes 3 versiones de una página, tu mapa del sitio tendrá 3 entradas, cada una con 3 entradas secundarias idénticas.

Reglas de los mapas del sitio:

  • Especifica el espacio de nombres "xhtml" de la siguiente forma:
    xmlns:xhtml="http://www.w3.org/1999/xhtml"
  • Crea un elemento <url> separado para cada URL.
  • Cada elemento <url> debe incluir un elemento secundario <loc> que indique la URL de la página.
  • Cada elemento <url> debe tener un elemento secundario <xhtml:link rel="alternate" hreflang="supported_language-code"> que enumere todas las versiones alternativas de la página, incluida la página misma. No importa el orden de los elementos secundarios <xhtml:link>. Sin embargo, te recomendamos que los mantengas en el mismo orden para que te sea más fácil detectar errores.
  • Consulta los lineamientos adicionales.

Ejemplo

A continuación, se detalla una página en idioma inglés orientada a hablantes de inglés de todo el mundo, que cuenta con versiones equivalentes de la página orientadas a hablantes de alemán de todo el mundo y a hablantes de alemán que viven en Suiza. Estas son todas las URL presentes en tu sitio:

  • www.example.com/english/page.html, orientada a hablantes de inglés.
  • www.example.com/deutsch/page.html, orientada a hablantes de alemán.
  • www.example.com/schweiz-deutsch/page.html, orientada a hablantes de alemán (Suiza).

Este es el mapa del sitio de esas tres páginas:

<?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/english/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
  <url>
    <loc>http://www.example.com/deutsch/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
  <url>
    <loc>http://www.example.com/schweiz-deutsch/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
</urlset>

Lineamientos para todos los métodos

  • Cada versión de idioma también debe incluirse en el detalle, además de todas las otras versiones.
  • Las URL alternativas deben estar completas, incluido el método de transporte ("http" o "https"), por lo tanto:
    https://example.com/foo, no //example.com/foo or /foo
  • No es necesario que las URL alternativas estén en el mismo dominio.
  • Si tienes varias URL alternativas orientadas a usuarios con el mismo idioma, pero en distintas regiones, se recomienda proporcionar una URL genérica para los usuarios de ese idioma sin especificaciones geográficas. Por ejemplo, puedes tener URL específicas para hablantes de inglés en Irlanda (en-ie), Canadá (en-ca) y Australia (en-au). Sin embargo, también debes proporcionar una página en inglés (en) genérica para las personas que viven en EE.UU., el Reino Unido y el resto de los territorios en los que se habla inglés. Si lo deseas, puede ser una de las páginas específicas.
  • Si dos páginas no se dirigen la una a la otra, se ignorarán las etiquetas. De esa forma, una persona de otro sitio no podrá crear de manera arbitraria una etiqueta para nombrarse a sí mismo como una versión alternativa de una de tus páginas.
  • Si se te complica mantener un conjunto completo de vínculos bidireccionales para cada idioma, puedes omitir algunos idiomas en ciertas páginas. Google procesará de todas formas las que se dirijan entre sí. Sin embargo, es importante vincular de manera bidireccional las páginas de idiomas ampliadas hace poco al idioma original o dominante. Por ejemplo, si tu sitio se creó originalmente en francés con URL en .fr, es más importante vincular de manera bidireccional páginas más nuevas en español mexicano (.mx) o de España (.es) a la presencia sólida de .fr, en lugar de vincularlas entre sí de manera bidireccional.
  • Considera agregar una página de reserva para idiomas sin coincidencias, especialmente en selectores de idioma o país, o en páginas principales con redireccionamiento automático. Usa el valor x-default:
    <link rel="alternate" href="http://example.com/" hreflang="x-default" />

Códigos de idioma o región compatibles

El valor del atributo hreflang identifica el idioma (en formato ISO 639-1) y, de manera opcional, una región (en formato ISO 3166-1 Alpha 2) de una URL alternativa. No es necesario que el idioma esté relacionado con la región. Por ejemplo:

  • de: Contenido en idioma alemán, independientemente de la región
  • en-GB: Contenido en idioma inglés para usuarios del Reino Unido
  • de-ES: Contenido en idioma alemán para usuarios de España

No especifiques un código de país por sí mismo. Google no deriva automáticamente el idioma del código de país. Puedes especificar un código de idioma por sí mismo si quieres simplificar el etiquetado. Al agregar el código de país después del idioma, se restringe la página a una región específica. Ejemplos:

  • be: Idioma bielorruso, independiente de la región (no francés para Bélgica)
  • nl-be: Holandés para Bélgica
  • fr-be: Francés para Bélgica

Para las variantes de la secuencia de comando de idioma, la secuencia adecuada deriva del país. Por ejemplo, cuando usas zh-TW para usuarios de Taiwán, se deriva automáticamente la secuencia de comandos del idioma (en este ejemplo, chino tradicional). También puedes especificar la secuencia de comandos de manera explícita mediante ISO 15924, tal como se describe a continuación:

  • zh-Hant: Chino (tradicional)
  • zh-Hans: Chino (simplificado)

Otra opción es que especifiques una combinación de la secuencia de comandos y la región. Por ejemplo, usa zh-Hans-TW a fin de especificar chino (simplificado) para usuarios taiwaneses.

Usa la etiqueta "x-default" para idiomas sin coincidencia

El valor reservado hreflang="x-default" se usa cuando no hay ningún idioma o región que coincida con la configuración de navegador del usuario. El valor es opcional, pero se recomienda como una forma de controlar la página cuando no coincide ningún idioma. Un uso útil es para orientar la página principal de tu sitio, donde hay un mapa en el que se puede hacer clic para elegir el país desde el que se accede.

Solución de problemas

Errores comunes

Los siguientes son los errores más comunes en el uso de hreflang:

  • Falta el vínculo que se mostrará: Si la página X se vincula con Y, esta última debe incluir un vínculo para volver a la página X. De lo contrario, en todas las páginas que incluyan anotaciones hreflang, es posible que se ignoren esas anotaciones o que se interpreten de manera incorrecta.
  • Códigos de idioma incorrectos: Asegúrate de que todos los códigos que uses identifiquen el idioma correcto (en formato ISO 639-1) y, de manera opcional, la región (en formato ISO 3166-1 Alpha 2) de una URL alternativa. No es válido especificar solo la región.

Cómo depurar errores de hreflang

Puedes usar el informe Orientación internacional para depurar los problemas más comunes. Asegúrate de que Google haya tenido tiempo de rastrear tus páginas y, luego, visita la pestaña Idioma en el informe para consultar si se detectaron errores.

También hay muchas herramientas de terceros disponibles. A continuación, se detallan algunas de las más populares. (Google no mantiene ni verifica esos recursos).