Qué es hreflang: guía completa con ejemplos de errores

En este artículo: qué es hreflang en términos sencillos, cómo implementarlo para diferentes estructuras de URL, tabla de códigos de idiomas y regiones, diferencias para Google y Yandex, errores comunes, lista de verificación y respuestas a preguntas frecuentes.
Hreflang es un atributo HTML que informa a los motores de búsqueda qué páginas de un sitio web son traducciones entre sí y para qué idioma o región está destinada cada versión. En pocas palabras: es una forma de decirle a Google y Yandex «esta página está en ruso para Rusia, y esta otra está en alemán para Alemania, no las muestres una en lugar de la otra».
Sin hreflang, un sitio web multilingüe deja la elección de la versión al motor de búsqueda. Si las páginas en diferentes idiomas contienen la misma estructura y significado, el motor de búsqueda puede considerarlas duplicadas y dejar solo una en los resultados, generalmente no la que necesita un usuario específico. Un hreflang correctamente configurado elimina esta incertidumbre y separa las versiones por segmentos de idioma y región en los resultados.

Qué es hreflang y por qué es necesario

hreflang es un atributo de enlace rel="alternate" que indica al motor de búsqueda qué URL son variantes lingüísticas o regionales de la página actual.
Sin hreflang, el motor de búsqueda puede:
  • Mostrar la versión rusa a usuarios de Alemania
  • Considerar las traducciones como contenido duplicado y fusionarlas en un solo documento
  • No mostrar versiones regionales en los resultados de búsqueda locales correspondientes
Con hreflang, el motor de búsqueda sabe: esta es la página en alemán para Alemania, esta en francés para Francia, esta en inglés para todos los demás. Con él, se pueden establecer diferentes versiones para un mismo idioma, pero para diferentes regiones, así como especificar varios idiomas para un mismo país, por ejemplo, inglés y francés para Canadá (en-CA y fr-CA). Esto es importante para la localización: en Canadá, incluso en francés, los precios se indican en dólares canadienses, y en Francia, en euros.

Cómo se ve hreflang

El atributo se añade a la sección <head> de cada página:
<link rel="alternate" hreflang="ru" href="https://mysite.com/ru/about/" />
<link rel="alternate" hreflang="en" href="https://mysite.com/en/about/" />
<link rel="alternate" hreflang="de" href="https://mysite.com/de/about/" />
<link rel="alternate" hreflang="x-default" href="https://mysite.com/en/about/" />
Partes clave:
  • rel="alternate" — indica que esta es una versión alternativa de la página
  • hreflang="ru" — código de idioma según ISO 639-1
  • href — la URL absoluta completa de la versión (con protocolo y dominio)
  • hreflang="x-default" — la versión predeterminada si ninguna otra es adecuada

Tabla: códigos de idioma y región frecuentes

Formato del atributo: idioma o idioma-PAÍS. Aquí están los códigos con los que más a menudo se cometen errores:
Código
Valor
ru
ruso (cualquier región)
ru-RU
ruso, Rusia
en
inglés (cualquier región)
en-US
inglés, EE. UU.
en-GB
inglés, Reino Unido
de
alemán
fr
francés
fr-CA
francés, Canadá
kk
kazajo (no kz — es un código de país, no de idioma)
hy
armenio (no am — también es un código de región)
uz
uzbeko
x-default
versión predeterminada
El código de país solo se añade si el contenido para un idioma difiere en distintas regiones.
  • Solo idioma — hreflang="en" — para todos los usuarios de habla inglesa, independientemente del país
  • Idioma + país — hreflang="en-US" para EE. UU., hreflang="en-GB" para el Reino Unido — por ejemplo, precios en dólares frente a libras
  • Si el contenido es el mismo para todos los hablantes de un idioma, basta con el código de idioma sin el país

Reciprocidad: la regla que más se incumple

Cada página debe contener hreflang para todas las versiones de idioma, incluida ella misma (autorreferencia). Esta es una regla crítica: si tienes tres idiomas, cada versión debe enlazar a las tres, incluyéndose a sí misma. Esto crea un conjunto cerrado de enlaces, a través del cual el motor de búsqueda entiende la relación entre las versiones.
Correcto: la página en ruso tiene enlaces a la alemana, la inglesa y a sí misma. La alemana, a la rusa, la inglesa y a sí misma. La inglesa, a la rusa, la alemana y a sí misma.
Incorrecto: las versiones en ruso y alemán tienen enlaces a la versión en inglés, pero la versión en inglés no tiene enlaces de retorno. El motor de búsqueda considera esta implementación incorrecta y puede ignorar todo el conjunto.
<!-- Ejemplo de un conjunto correcto de hreflang -->
<link rel="alternate" hreflang="de" href="https://mysite.com/de/about/" />
<link rel="alternate" hreflang="ru" href="https://mysite.com/ru/about/" />
<link rel="alternate" hreflang="en" href="https://mysite.com/en/about/" />
<link rel="alternate" hreflang="x-default" href="https://mysite.com/en/about/" />

x-default: versión para el resto

hreflang="x-default" — un valor especial para la página que se muestra cuando ninguna otra versión es adecuada para el usuario. Por lo general, esta es la versión en el idioma principal del sitio (más a menudo ruso o inglés).
Si tienes versiones rusa y kazaja sin una versión en inglés, x-default se puede especificar para una de ellas, o no usarse en absoluto. Este no es un atributo obligatorio, pero Google lo recomienda.

Opciones de implementación

Además de las etiquetas en <head>, hreflang se puede especificar:
A través de encabezados HTTP. Para PDF y otros recursos no HTML, esta es la única opción.
A través del mapa del sitio. En lugar de atributos en cada página, un solo mapa del sitio en el que cada enlace enumera las variantes de esa misma página en otros idiomas. Conveniente para sitios grandes del lado de Google.
Todas las variantes son equivalentes para Google; elija la que sea más fácil de mantener. Por cierto, Multify añade automáticamente las metaetiquetas necesarias tanto al código HTML de las páginas como al mapa del sitio.

Una diferencia importante: Google y Yandex procesan hreflang de manera diferente

La mayoría de las guías de hreflang en ruso están escritas solo con Google en mente, y para los sitios orientados a Runet y la CEI, esto es solo la mitad del panorama.
  • Google admite los tres métodos de marcado: etiquetas HTML en <head>, encabezados HTTP y hreflang en el Sitemap XML.
  • Yandex ha dejado de admitir hreflang a través de XML Sitemap. La única forma fiable de especificar versiones de idioma y región para Yandex es mediante etiquetas HTML <link rel="alternate" hreflang="..."> directamente en el <head> de cada página.
Conclusión práctica: si tienes una audiencia en Yandex (Rusia, Kazajistán, Bielorrusia), no confíes en la implementación del sitemap; funcionará para Google, pero no tendrá efecto en Yandex. La etiqueta en <head> es la única opción que funciona igual en ambos sistemas.

¿No quieres escribir hreflang manualmente?

Multify genera hreflang automáticamente para todas las páginas al añadir cualquier idioma, tanto en HTML como en el mapa del sitio.

Errores comunes

Según un estudio de Ahrefs (374.756 dominios), el 67% de los sitios web que utilizan hreflang tienen al menos un error de implementación.

Error 1: No hay enlaces recíprocos

El error más común. Comprueba: ¿cada página de cada versión contiene hreflang para todas las demás versiones? Si no, los motores de búsqueda pueden interpretar incorrectamente la estructura del sitio y no tener en cuenta el marcado en absoluto.

Error 2: URL incorrecta o relativa

hreflang requiere una URL absoluta con protocolo: https://mysite.com/en/about/, no /en/about/. Las rutas relativas no funcionan. También es importante la coherencia: si la URL canónica tiene una barra al final (/about/), también debe tenerla en hreflang, y viceversa.

Error 3: hreflang apunta a una URL no canónica

Si la página de destino está marcada con rel="canonical" a otra URL, el motor de búsqueda puede ignorarla como versión alternativa. hreflang debe apuntar estrictamente a la dirección canónica de cada versión, y no a un duplicado o una URL parametrizada.

Error 4: Versión inexistente

En hreflang se especifica un enlace a una página que no existe, por ejemplo, no todos los productos están traducidos, pero los atributos están escritos para todos. El motor de búsqueda detectará un 404 e ignorará el bloque no coincidente. Si una página no tiene traducción, no especifique hreflang para ella en absoluto.

Error 5: Duplicación en una misma página

Dos atributos con el mismo hreflang en una misma página, por ejemplo, debido a un conflicto de plugins o a una edición manual del marcado. Google toma el primero, ignora el segundo; el resultado es impredecible.

Error 6: Código de idioma incorrecto

hreflang="kk" es el código correcto para el idioma kazajo (según la lista ISO 639-1). No se puede usar kz, ya que es un código de país, no de idioma. El mismo error ocurre con el armenio: hy es el código de idioma, am es el código de región.

Error 7: hreflang en una redirección o página bloqueada

Si una página con hreflang devuelve una redirección 301, el motor de búsqueda la sigue y pierde el atributo; hreflang debe estar en la página final, no en una intermedia. Lo mismo ocurre con las URL bloqueadas en robots.txt o las páginas no indexables (noindex): hreflang no se tiene en cuenta en ellas.

Cómo verificar hreflang

Hreflang Testing Tool. Muestra errores: atributos incorrectos, enlaces de retorno faltantes. El inconveniente es que las páginas deben cargarse manualmente.
Screaming Frog o Ahrefs. Escaneo de todo el sitio. Screaming Frog escanea gratuitamente hasta 500 URL y muestra todos los atributos hreflang con verificación de reciprocidad.
Google Search Console en la sección "Orientación internacional" (para dominios confirmados como propiedad de dominio) muestra algunos errores de hreflang, pero no reemplaza un rastreador completo.

Lista de verificación antes de publicar hreflang

  • Cada versión se enlaza a sí misma y a todas las demás versiones (reciprocidad)
  • Todas las URL son absolutas, con protocolo y barras consistentes
  • hreflang apunta a una URL canónica, indexable y que devuelve 200
  • Los códigos de idioma corresponden a ISO 639-1, los códigos de país a ISO 3166-1 (no confundir kk/kz, hy/am)
  • Existe x-default para usuarios fuera de los idiomas/regiones definidos
  • Para Yandex, el marcado se duplica con etiquetas en <head>, no solo en el sitemap

hreflang y Tilda

Tilda no añade hreflang por sí solo. Las opciones son, de hecho, limitadas:
Manualmente a través de un bloque HTML. Añadir etiquetas <link> en el bloque de código. Si la estructura del sitio cambia, actualizarlas manualmente. No es adecuado para páginas dinámicas de catálogo o blog. Para sitios pequeños, es aceptable.
A través de Multify. El proxy genera hreflang automáticamente para todas las páginas de todas las versiones de idiomas, incluyendo productos y artículos de blog. Al añadir un idioma, los atributos aparecen inmediatamente en todas partes, la reciprocidad se mantiene automáticamente, y el marcado funciona correctamente tanto para Google como para Yandex.
Con el soporte manual de hreflang en un sitio web con 50 páginas y 3 idiomas, esto significa 150 conjuntos de atributos. Cada adición de una página o idioma requiere una actualización en todas las versiones. La automatización lo cubre por completo.

Añadir hreflang sin trabajo manual

Pruebe Multify con generación automática de hreflang para cualquier cambio en el sitio web, con soporte tanto para Google como para Yandex.

¿Listo para configurar hreflang correctamente desde el primer intento?

Multify establece automáticamente el hreflang correcto para todas las versiones de idioma del sitio en Tilda, con soporte para Google y Yandex, sin marcado manual y sin riesgo de errores de la lista de verificación anterior.

Preguntas frecuentes

¿Es hreflang lo mismo que la traducción de un sitio web?
No. Hreflang no traduce el contenido ni crea versiones de idioma; solo le dice al motor de búsqueda qué páginas existentes están relacionadas como versiones entre sí. Primero necesita contenido traducido en URL separadas, luego hreflang que las vincule.
¿Es necesario hreflang si el sitio web solo tiene un idioma?
No, siempre y cuando el contenido y la audiencia coincidan completamente. Hreflang se vuelve necesario tan pronto como aparece una segunda versión de idioma o regional de la misma página.
¿Se puede usar hreflang sin x-default?
Sí, es un atributo opcional. Pero sin él, los usuarios cuyo idioma no coincida con ninguna versión recibirán la versión predeterminada elegida por el motor de búsqueda, y no la que usted elegiría.
¿Cómo verificar que hreflang funciona en Yandex?
En Yandex.Webmaster, la sección de indexación muestra qué versiones de idioma de las páginas han sido indexadas. Si hreflang solo está marcado en el sitemap y no con etiquetas en el código fuente de la página, Yandex no lo tendrá en cuenta.
¿Cómo configurar hreflang en un sitio de Tilda?
Tilda no tiene un mecanismo hreflang incorporado entre proyectos individuales o bloques de idioma. Las etiquetas se pueden escribir manualmente en la configuración de cada página o a través de un proxy, donde hreflang para todas las versiones se genera automáticamente. Cómo funciona esto se muestra en la página principal de Multify.

Conectaremos Multify a su sitio web

Las respuestas a sus preguntas nos ayudarán a entender cómo conectar mejor su sitio web

Tipo de sitio web
Número de páginas
Tráfico mensual del sitio web
Método de contacto preferido *