Notificar a Google versiones localizadas de tu página

Si tienes varias versiones de una página en diferentes idiomas o dirigidas a regiones concretas, háznoslo saber. De este modo, la Búsqueda de Google puede mostrar a los usuarios la versión más adecuada de tu página según su idioma o región.

Es posible que encontremos versiones de tus páginas en otros idiomas aunque no nos las comuniques; no obstante, te recomendamos que nos facilites las versiones en otros idiomas o dirigidas a regiones concretas.

A continuación, describimos algunas situaciones en las que recomendamos indicar páginas alternativas:

  • El contenido principal está en un solo idioma y solo se traduce la plantilla, como el área de navegación y el pie de página. Esta situación suele darse en páginas con contenido generado por usuarios, como los foros.
  • El contenido está en un solo idioma, pero incluye pequeñas variaciones regionales con contenido similar. Por ejemplo, páginas con contenido en español dirigido a Argentina, España y México.
  • El contenido está completamente traducido a varios idiomas. Por ejemplo, páginas con una versión en inglés y otra en español.

Las versiones localizadas de una página solo se consideran duplicadas si su contenido principal no está traducido.

Métodos para indicar páginas alternativas

Puedes indicarnos que una página tiene versiones en otros idiomas o dirigidas a regiones determinadas de tres maneras distintas:

Directrices sobre todos los métodos

  • En cada versión de idioma de una página, deben incluirse las versiones en todos los demás idiomas, además de la suya propia.
  • Las URLs alternativas deben ser URLs cualificadas, por lo que también deben incluir el método de transporte (http/https). Es decir:
    https://example.com/foo, no //example.com/foo ni /foo
  • No es necesario que las URLs alternativas estén en el mismo dominio.
  • Si tienes varias URLs alternativas dirigidas a usuarios del mismo idioma, pero con distintas configuraciones regionales, es buena idea proporcionar una URL genérica a la que dirigir a los usuarios del idioma que no estén en ninguna ubicación geográfica indicada. Por ejemplo, aunque tengas URLs específicas a las que llevar a los usuarios de inglés de Australia (en-au), Canadá (en-ca) e Irlanda (en-ie), también deberías ofrecer una página en inglés genérico (en) para mostrar a los usuarios de EE. UU., Reino Unido y el resto de los lugares de habla inglesa. Si quieres, puede ser una de las páginas específicas.
  • Si dos páginas no se apuntan entre sí, las etiquetas se ignorarán. De este modo, se evita que un webmaster de otro sitio cree una etiqueta de manera arbitraria para marcar una de sus páginas como versión alternativa de una de las tuyas.
  • Si resulta difícil incluir los enlaces de todos los idiomas en todas las páginas, puedes omitir algunos en algunas páginas; aunque lo hagas, procesaremos los que se apunten entre sí. Sin embargo, es importante incluir enlaces a los idiomas originales o dominantes en las páginas de idiomas que se hayan añadido recientemente, y viceversa. Por ejemplo, supongamos que el idioma original de tu sitio es el francés (termina en .fr) y hace poco has creado una versión en español de México (.mx) y otra en español de España (.es). En este caso, es importante que enlaces la versión en francés (.fr), que tiene más presencia, con las dos versiones en español (.mx y .es), y viceversa. No es tan necesario que enlaces entre sí las dos versiones en español.
  • Quizá te interese incluir una página de respaldo para que se muestre a los usuarios de idiomas que no ofreces, sobre todo en los selectores de idioma y país o en las páginas principales a las que se redirige automáticamente. Usa el valor x-default:
    <link rel="alternate" href="http://example.com/" hreflang="x-default" />

Etiquetas HTML

Añade elementos <link rel="alternate" hreflang="lang_code"... > al encabezado de una página para informarnos de todas sus variantes de idioma y región. Este método resulta útil si no tienes ningún sitemap ni puedes especificar encabezados de respuesta HTTP en tu sitio.

Todas las versiones de una página deben incluir un conjunto de elementos <link> en el elemento <head>; concretamente, un enlace por cada variante de la página, incluido el suyo propio. Este conjunto de enlaces debe ser el mismo en todas las variantes de una página. Consulta las directrices adicionales.

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

<link rel="alternate" hreflang="lang_code" href="url_of_page" />
Sintaxis
lang_code Código de idioma o de región admitidos al que se dirige esta versión de la página. Con x-default, indicas que esta versión debe mostrarse a los usuarios de idiomas que no se incluyen en las etiquetas hreflang de la página.
url_of_page URL cualificada de la versión de esta página del idioma o la región indicados.

Ejemplo

Supongamos que Widgets, Inc tiene un sitio web que se muestra a usuarios de EE. UU., Reino Unido y Alemania. Las URLs siguientes tienen prácticamente el mismo contenido, pero incluyen variaciones regionales:

URLs con variaciones regionales
http://en.example.com/page.html Página principal genérica en inglés que incluye información sobre las tarifas de envíos internacionales desde Estados Unidos.
http://en-gb.example.com/page.html Página principal del Reino Unido que muestra los precios en libras esterlinas.
http://en-us.example.com/page.html Página principal de Estados Unidos muestra los precios en dólares estadounidenses.
http://de.example.com/page.html Página principal en alemán.
http://www.example.com/ Página predeterminada que no está dirigida a ningún idioma ni configuración regional. Tiene selectores para que los usuarios puedan elegir su idioma y región.

No determinamos la audiencia objetivo de las páginas a partir de los subdominios de idioma (como en, en-gb, en-us y de), sino que debes asignarla explícitamente.

A continuación, incluimos el fragmento de código HTML que debe pegarse en la sección <head> de todas las páginas anteriores. Con este fragmento, se dirige a los usuarios que hablan inglés (estén en EE. UU., Reino Unido o cualquier otro lugar) y a los que hablan alemán a las páginas localizadas correspondientes. El resto de los usuarios verá una página principal genérica. La Búsqueda de Google devuelve el resultado adecuado en función de la configuración del navegador de los usuarios.

<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 devolver encabezados HTTP con las respuestas GET de tus páginas para informarnos de todas sus variantes de idioma y región. Este método es útil con archivos que no son HTML, como los PDF.

El encabezado debe tener este formato:

Link: <url1>; rel="alternate"; hreflang="lang_code_1", <url2>; rel="alternate"; hreflang="lang_code_2", ...
Sintaxis
<url_x> URL cualificada de la página alternativa correspondiente al código de configuración regional asignado al atributo hreflang asociado. La URL debe estar entre estos símbolos: < >. Ejemplo: <https://www.google.com>
lang_code_x Código de idioma o región admitidos al que se dirige esta versión de la página. Con x-default, indicas que esta versión debe mostrarse a los usuarios de idiomas que no se mencionan en las etiquetas hreflang de la página.

Debes especificar tantos conjuntos de valores <url>, rel="alternate" y hreflang como versiones tenga la página, incluida la versión solicitada. Esos conjuntos tienen que separarse con comas, tal como se muestra en el ejemplo que aparece más abajo. Con cada versión de la página se devuelve el mismo encabezado Link:. Consultas las directrices adicionales.

Ejemplo

A continuación, se muestra un ejemplo de encabezado Link: devuelto por un sitio que tiene tres versiones de un archivo PDF: una para los usuarios que hablan inglés, otra dirigida a los hablantes de alemán de Suiza y una tercera que se muestra a todos los demás visitantes que hablen 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"

Sitemap

Puedes informarnos de las variantes de idioma y región de todas tus URLs mediante un sitemap. Para hacerlo, añade un elemento <loc> que incluya una única URL y tenga entradas secundarias <xhtml:link> para especificar todas las variantes de idioma y región de la página, incluida la del propio elemento. Es decir, si tienes tres versiones de una página, tu sitemap tiene que incluir tres entradas, cada una con tres entradas secundarias idénticas.

Reglas de sitemaps:

  • Especifica el espacio de nombres xhtml de este modo:
    xmlns:xhtml="http://www.w3.org/1999/xhtml"
  • Crea un elemento <url> distinto 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"> con todas las variantes de la página, incluida la del propio elemento. El orden de estos elementos secundarios <xhtml:link> no es importante, pero te recomendamos que uses siempre el mismo para que te resulte más fácil comprobar si hay errores.
  • Consulta las directrices adicionales.

Ejemplo

Supongamos que tienes una página en inglés dirigida a personas que hablan inglés de todo el mundo y que tienes versiones equivalentes de esta página para usuarios de habla alemana de cualquier parte del mundo y para usuarios que hablan alemán de Suiza. A continuación, se muestran todas las URLs de esta página presentes en el sitio:

  • www.example.com/english/page.html dirigida a personas que hablan inglés.
  • www.example.com/deutsch/page.html dirigida a personas que hablan alemán.
  • www.example.com/schweiz-deutsch/page.html dirigida a personas que hablan alemán de Suiza.

El sitemap de estas tres páginas sería este:

<?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>

Códigos de idioma y región admitidos

El valor del atributo hreflang indica el idioma (en formato ISO 639-1) y, en ocasiones, la región (en formato ISO 3166-1 Alpha 2) de una URL alternativa. Si solo se indica un código, Google lo considera un código de idioma. No hace falta que el idioma esté relacionado con la región. Por ejemplo:

  • de: contenido en alemán, independientemente de la región
  • en-GB: contenido en inglés dirigido a usuarios británicos
  • de-ES: contenido en alemán para usuarios de España

En los idiomas con variaciones en su alfabeto, el alfabeto adecuado se detecta a partir del país. Por ejemplo, si usas zh-TW para dirigir contenido a usuarios taiwaneses, el alfabeto correcto se infiere de automáticamente (en este caso, chino tradicional). También puedes especificar el alfabeto de forma explícita con el código ISO 15924, tal como se indica a continuación:

  • zh-Hant: chino tradicional
  • zh-Hans: chino simplificado

También puedes especificar una combinación de alfabeto y región. Por ejemplo, con zh-Hans-TW, se mostrará el chino simplificado a usuarios taiwaneses.

Incluir la etiqueta x-default para mostrar una versión concreta a los usuarios de idiomas no indicados

hreflang="x-default" es un valor reservado que se utiliza cuando la configuración del navegador de los usuarios no coincide con ningún idioma ni región que ofreces. Este valor es opcional, pero recomendamos incluirlo para controlar qué versión se muestra a los usuarios de idiomas que no has especificado. Te recomendamos que los dirijas a la página principal de tu sitio donde haya un mapa en el que puedan seleccionar su país.

No es necesario especificar un código de idioma en el valor x-default. la página está dirigida a usuarios cuya configuración de idioma no coincide con la de tu sitio, por lo que el idioma de la página es irrelevante.

Solucionar problemas

Errores habituales

A continuación, se indican los errores más habituales que se producen al usar hreflang:

  • Faltan enlaces recíprocos: si en una página X se incluye un enlace a una página Y, en esta página Y tiene que haber un enlace a la página X. Si no se cumple esta condición en todas las páginas que usan anotaciones hreflang, es posible que estas anotaciones se ignoren o no se interpreten correctamente.
  • Códigos de idioma incorrectos: asegúrate de que los códigos de idioma que usas identifiquen el idioma en formato ISO 639-1 y, opcionalmente, la región en formato ISO 3166-1 Alpha 2 de las URLs alternativas. No se puede especificar únicamente la región.

Depurar errores de hreflang

Con el informe "Segmentación internacional", puedes depurar los problemas más habituales. Asegúrate de que hayamos tenido tiempo de rastrear tus páginas y, a continuación, visita la pestaña Idioma del informe para ver si se ha detectado algún error.

También hay muchas herramientas de terceros disponibles, que en Google no mantenemos ni revisamos. A continuación, incluimos algunas muy utilizadas: