Glosario Daimatics · SEO técnico

Hreflang: que Google muestre a cada uno su idioma

Elhreflang es una anotación que le dice a Google qué páginas son la misma en otro idioma o para otro país, para que muestre a cada persona su versión. No traduce ni redirige nada, y solo cuenta si las versiones se enlazan entre sí. En un sitio en catalán y castellano, es lo que ayuda a que quien busca en castellano llegue a la página castellana.

Para quien tiene el sitio en varios idiomas o países y ve en Google la versión que no toca.

Un clúster de hreflangNuestra web
CA/ca/ · la versión catalanaCatalán
es-ES/ · la versión castellanaEspaña
x-default/ · para quien no encajaPor defecto

Las tres líneas, idénticas en las dos páginas

El concepto

Qué hace el hreflang y qué no hace

Google lo usa para entender que varias direcciones son variantes localizadas del mismo contenido.

Hace
Agrupa las versiones: dice que /ca/serveis/ y /servicios/ son la misma página, traducida.
Orienta la elección: ayuda a Google a mostrar la versión del idioma o la región de quien busca.
Pesa en el canonical: Google prefiere como canónicas las direcciones que forman parte de un clúster de hreflang.
No hace
No detecta el idioma. Google lo deduce del contenido visible; no usa el atributo lang ni la dirección.
No redirige a nadie. Quien llega a la versión que no toca necesita un enlace para cambiar de idioma.
No funciona en una sola dirección. Si la página B no vuelve a la A, Google ignora la pareja.
Por sí solo no resuelve duplicados del mismo idioma. Para eso está el canonical.

Una traducción no es contenido duplicado: Google solo lo considera así si el contenido principal queda sin traducir. Traducir solo el menú y el pie es un problema de contenido, no de hreflang.

Los códigos

Idioma, región y x-default

Idioma

Obligatorio, en ISO 639-1

Dos letras: ca, es, en. Va siempre primero; el país solo no vale: «be» es el bielorruso, no Bélgica.

Región

Opcional, en ISO 3166-1

Dos letras detrás del idioma: es-ES, en-GB. Google no admite es-419 e ignora códigos reservados como EU, UN o UK.

Por defecto

x-default

La página para quien no encaja en ningún idioma declarado. Pensada para los selectores de idioma, vale para cualquier página.

Mayúsculas

Indiferentes

Google acepta es-es y es-ES. La convención es escribir la región en mayúsculas.

Así lo declara la portada de nuestra web, con el castellano en la raíz y el catalán en /ca/. Las dos versiones llevan estas tres líneas:

<link rel="alternate" hreflang="ca" href="https://daimatics.agency/ca/">
<link rel="alternate" hreflang="es-es" href="https://daimatics.agency/">
<link rel="alternate" hreflang="x-default" href="https://daimatics.agency/">

Nuestro criterio: pon la región solo si el contenido cambia por país: precios, envíos o normativa. Si no, el código de idioma solo ya vale para todos los países.

Cómo se declara

Tres maneras, y tienes que elegir una

Para Google son equivalentes. Usarlas a la vez no aporta nada y es más difícil de mantener.

01

En el código HTML

Una etiqueta link por versión dentro del head, incluida la propia página. El conjunto es idéntico en todas las versiones.

02

En la cabecera HTTP

Una línea Link en la respuesta del servidor. Es la vía para los archivos sin HTML, como los PDF.

03

En el sitemap

Cada dirección lleva tantos xhtml:link como versiones, ella incluida. No cuentan para el límite de direcciones del sitemap.

<url>
  <loc>https://example.com/ca/serveis/</loc>
  <xhtml:link rel="alternate" hreflang="ca" href="https://example.com/ca/serveis/"/>
  <xhtml:link rel="alternate" hreflang="es" href="https://example.com/servicios/"/>
</url>

Para todas: direcciones completas con https, cada versión se incluye a sí misma y, en HTML, las etiquetas van dentro de un head bien formado.

Hreflang y canonical

Dos etiquetas que no se deben contradecir

Las dos viven en el head, con las demás meta tags. El canonical dice qué dirección es la original de un grupo de duplicados; el hreflang, cuáles son traducciones.

Cómo se combinan
Cada versión, con el canonical a sí misma. Google lo pide del mismo idioma.
El mismo idioma para dos países, con poca diferencia: elige una preferida con el canonical y añádele el hreflang.
La catalana con el canonical a la castellana. Dices que es un duplicado y, a la vez, que es una traducción.
Un rel canonical con el atributo hreflang. Google no lo usa para elegir la canónica: las traducciones van con rel alternate.

Nuestro criterio: cada dirección del hreflang tiene que ser la canónica de su versión y responder sin redirección ni noindex.

Errores habituales

Por qué Google muestra la versión que no toca

Lo más común

Falta la vuelta

Si la página X apunta a la Y y la Y no vuelve a la X, Google puede ignorar las etiquetas. Pasa a menudo al añadir un idioma.

Direcciones

Relativas o con http

Google pide direcciones completas, con el protocolo, y avisa de no poner la versión http cuando la buena es la https.

Redirecciones

Por idioma o por IP

Googlebot rastrea sobre todo desde Estados Unidos y sin cabecera de idioma: si rediriges, puede no ver nunca las otras versiones.

Cambios

Un slug cambiado a medias

Cambias el permalink de una versión y las otras siguen apuntando al antiguo.

Cómo comprobarlo

Dos miradas a Search Console y una al código

Una parte de la revisión de SEO técnico que se puede hacer sin herramientas de pago.

01

La canónica que elige Google

La inspección de URLs de Search Console te dice qué canónica ha elegido Google para cada versión.

02

Las consultas de cada versión

En el informe de rendimiento, filtra por página y por país. Si las búsquedas en castellano caen en la versión catalana, revísalo.

03

El código de cada versión

Pega las etiquetas de cada versión en el revisor de aquí abajo.

La herramienta

Revisor de hreflang: pega dos o tres versiones

Pon la dirección de cada versión y pega en ella las etiquetas link de su head, o el código fuente entero. Trae un ejemplo ilustrativo con un error: cámbialo por tus etiquetas.

Versión 1
Versión 2
Versión 3 opcional

El resultado

Versiones revisadas0
Etiquetas hreflang leídas0
Errores encontrados0

Rellena como mínimo dos versiones, con la dirección y las etiquetas.

Criterio propio de Daimatics sobre la documentación de Google. Todo pasa en tu navegador: lo que pegas no se envía a ningún sitio.

Cuándo necesitas ayuda

Cuando el idioma ya te hace perder visitas

  • Google muestra la página catalana a quien busca en castellano, o al revés.
  • Search Console elige como canónica la versión de otro idioma.
  • Añades un idioma o un país y las páginas nuevas no salen.
  • Preparas una migración o un cambio de direcciones en un sitio con varios idiomas.

Antes de tocar nada, revisamos el sitio, Search Console y cómo genera las etiquetas tu gestor de contenidos.

Preguntas frecuentes

Dudas sobre el hreflang

La regla

Si la página B no vuelve a la A, para Google es como si la etiqueta no estuviera.

¿Qué es el hreflang y para qué sirve?
Es un atributo que le dice a Google qué direcciones son la misma página en otro idioma o para otro país. Sirve para que la Búsqueda muestre a cada persona la versión de su idioma o de su región. Se declara en el código HTML, en una cabecera HTTP o en el sitemap, y cada versión incluye su dirección y la de las demás.
¿Qué es hreflang x-default y cuándo hay que ponerlo?
Es el valor reservado para la página que tiene que ver quien no encaja en ninguno de los idiomas o regiones declarados. Google lo recomienda, sobre todo en los selectores de idioma y en las portadas que redirigen automáticamente, pero no es obligatorio. Puede apuntar a un selector o a la versión que quieras por defecto, y va en el conjunto de todas las versiones.
¿Cómo se combinan el hreflang y el canonical?
Cada versión lleva el canonical a sí misma, o a una página del mismo idioma, y el hreflang enlaza las traducciones entre ellas. Si la versión catalana tiene el canonical hacia la castellana, le estás diciendo a Google que es un duplicado y a la vez una traducción. Además, Google no usa para elegir la canónica un rel canonical que lleve el atributo hreflang.
¿Qué código hreflang pongo para el catalán y el castellano?
Para el catalán, ca, y para el castellano, es, o es-ES si esa versión es específica para España. El primer código es siempre el idioma en ISO 639-1; la región, en ISO 3166-1, es opcional. Si el castellano también se dirige a Latinoamérica, el código es sin región ya la cubre. Códigos como es-419 no los admite Google.
¿Por qué Google muestra la versión en otro idioma si tengo hreflang?
El hreflang es una indicación que ayuda a Google a elegir la versión. Cuando falla, suele ser por vueltas que faltan, códigos mal escritos, direcciones relativas, un canonical hacia la otra versión o contenido principal que ha quedado sin traducir. Google deduce el idioma del contenido visible, no del atributo lang ni de la dirección.
¿Cómo compruebo si el hreflang está bien puesto?
Mira el código de cada versión y comprueba que todas llevan el mismo conjunto, con direcciones completas y códigos válidos, y que cada una se incluye a sí misma. Después, en Search Console, la inspección de URLs te dice qué canónica ha elegido Google para cada versión. Para dos o tres versiones, el revisor de esta página marca las vueltas que faltan, la autorreferencia y el x-default.
Escrito por David Nogués, fundador y CEO de Daimatics, con más de 20 años de trayectoria profesional en el ámbito digital. Actualizado el

Fuentes oficiales

Google Search Central

Ayuda de Search Console