La etiqueta hreflang: guía completa del SEO multilingüe

La etiqueta hreflang le dice a Google qué versión de tu página mostrar según el idioma y el país de cada usuario. Si tienes contenido en español de España, español de México e inglés, este atributo evita que las versiones compitan entre sí y que Google las trate como contenido duplicado. En esta guía te explico qué es, cómo funcionan los códigos de idioma y región, los tres métodos para implementarla y los errores que veo una y otra vez. Al final te doy mi recomendación según tu caso y respondo las dudas más habituales. Vamos al grano.

Qué es hreflang y para qué sirve

El atributo hreflang es una señal que indica a los buscadores el idioma y, si quieres, la región a la que va dirigida cada versión de una página. Google lo usa para servir la versión correcta a cada persona según su configuración de idioma y su ubicación.

Imagina que tienes la misma página en español de España y en español de México. El texto es casi idéntico, cambian precios, moneda o algún matiz. Sin hreflang, Google puede mostrar la versión mexicana a un usuario de Madrid, o interpretar que dos URLs con el mismo contenido son contenido duplicado. Con hreflang le dices: esta es para España, esta otra para México, muestra la que toque.

Ten clara una cosa: hreflang no consolida autoridad ni sustituye a la etiqueta canonical. No sirve para elegir una URL preferida, sino para relacionar versiones equivalentes en distintos idiomas o regiones. Son mecanismos distintos que a veces conviven, y ahí es donde mucha gente se equivoca.

Sintaxis y códigos de idioma y región

El valor de hreflang se compone de dos partes. La primera es obligatoria: el idioma, en formato ISO 639-1 (dos letras en minúscula). La segunda es opcional: la región, en formato ISO 3166-1 alpha-2 (dos letras en mayúscula). Se unen con un guion.

ValorSignificado
esEspañol (cualquier región)
es-ESEspañol de España
es-MXEspañol de México
en-USInglés de Estados Unidos
x-defaultVersión por defecto o de reserva

Mi consejo: usa solo el idioma (es, en) si no segmentas por país. Añade la región únicamente cuando tengas contenido diferenciado por mercado. No pongas es-MX si tu página es la misma para todo el mundo hispanohablante, porque estarás cerrando puertas sin necesidad.

El código de región es de país, nunca de idioma. Un error clásico es escribir en-UK: el código correcto de Reino Unido es GB, así que sería en-GB. Revisa siempre la lista oficial antes de dar por bueno un código.

Los 3 métodos de implementación

Existen tres formas de declarar hreflang. Google las trata por igual, así que elige la que mejor encaje con tu web. Eso sí, no mezcles varias para las mismas URLs: elige una y sé consistente.

1. Etiquetas link en el head

Es el método más habitual. Añades una etiqueta <link> por cada versión dentro del <head> del HTML. Funciona bien en sitios pequeños o medianos donde controlas la plantilla.

<link rel="alternate" hreflang="es-ES" href="https://ejemplo.com/es/" />
<link rel="alternate" hreflang="es-MX" href="https://ejemplo.com/mx/" />
<link rel="alternate" hreflang="en-US" href="https://ejemplo.com/en/" />
<link rel="alternate" hreflang="x-default" href="https://ejemplo.com/" />

Su desventaja: añade peso al head si tienes decenas de idiomas. Con muchas versiones, cada página carga un bloque largo de enlaces.

2. En el sitemap XML

La opción más limpia para sitios grandes. Declaras las relaciones en el sitemap, sin tocar el HTML de cada página. Cada bloque <url> lista todas sus versiones mediante xhtml:link.

<url>
  <loc>https://ejemplo.com/es/</loc>
  <xhtml:link rel="alternate" hreflang="es-ES" href="https://ejemplo.com/es/"/>
  <xhtml:link rel="alternate" hreflang="es-MX" href="https://ejemplo.com/mx/"/>
  <xhtml:link rel="alternate" hreflang="en-US" href="https://ejemplo.com/en/"/>
  <xhtml:link rel="alternate" hreflang="x-default" href="https://ejemplo.com/"/>
</url>

Necesitas declarar el espacio de nombres xhtml en la etiqueta de apertura del sitemap. Y ojo: cada URL del grupo debe repetir el bloque completo de alternativas, incluida ella misma.

3. Cabeceras HTTP

Este método es para archivos que no son HTML, como PDF o imágenes, donde no puedes añadir etiquetas en el head. La declaración viaja en la respuesta del servidor.

Link: <https://ejemplo.com/es/manual.pdf>; rel="alternate"; hreflang="es-ES",
      <https://ejemplo.com/en/manual.pdf>; rel="alternate"; hreflang="en-US"

Se configura en el servidor (por ejemplo, en el archivo de configuración de Apache o Nginx). Es el menos cómodo de mantener, así que resérvalo para documentos no HTML.

x-default y autorreferencia

El valor x-default señala la versión que se muestra cuando ningún idioma o región del usuario coincide con tus versiones. Es tu página de reserva: suele ser un selector de idioma o la versión principal, por ejemplo la internacional en inglés. No es obligatorio, pero te recomiendo incluirlo siempre.

La autorreferencia es otra regla que no puedes saltarte. Cada página debe incluirse a sí misma en su listado de hreflang. Si la versión española lista México e inglés pero se olvida de enlazarse a sí misma, Google ignora todo el conjunto. Suena absurdo, pero es la causa número uno de que hreflang no funcione.

La regla de reciprocidad

Los enlaces hreflang tienen que ser bidireccionales. Si la página A apunta a la página B, la página B debe apuntar de vuelta a la A. Google lo llama confirmación mutua: sin ella, descarta la relación por considerarla poco fiable.

Piénsalo como un apretón de manos. Las dos partes tienen que reconocerse. Si tienes cinco versiones, las cinco deben enlazar a las otras cuatro y a sí mismas. Un solo enlace roto en una dirección puede tumbar todo el grupo, así que revisa la reciprocidad con cada nueva versión que publiques.

Errores comunes que debes evitar

  • Códigos mal escritos: usar un código de idioma inexistente o confundir idioma con país (en-UK en lugar de en-GB).
  • Guion bajo en vez de guion: se escribe es-MX, nunca es_MX. El guion bajo invalida la etiqueta.
  • Falta de reciprocidad: versiones que no se enlazan de vuelta. Google ignora el grupo entero.
  • Olvidar la autorreferencia: una página que no se incluye a sí misma.
  • Mezclar mal con canonical: apuntar el canonical de la versión mexicana a la española. Cada versión debe tener su canonical hacia sí misma.
  • URLs con redirecciones o bloqueadas: hreflang debe apuntar a URLs finales, indexables y con estado 200.

El error de mezclar hreflang con canonical es el más dañino. Si señalas México como versión y a la vez su canonical apunta a España, le mandas señales contradictorias a Google y acabará ignorando una de las dos.

Herramientas de validación

No confíes en que lo has hecho bien: valídalo. Estas son las herramientas que uso para comprobar hreflang.

  • Google Search Console: el informe internacional (cuando está disponible) señala errores de reciprocidad y códigos incorrectos con datos reales de tu web.
  • Validadores de hreflang online: pegas una URL y te muestran las etiquetas detectadas y los fallos. Van bien para comprobaciones puntuales.
  • Screaming Frog: rastrea todo el sitio y tiene una pestaña de hreflang que detecta enlaces no recíprocos, autorreferencias ausentes y códigos inválidos a escala.
  • Ahrefs: su auditoría de sitio marca problemas de hreflang junto al resto de incidencias técnicas.

Si gestionas varios idiomas, un rastreador como Screaming Frog te ahorra horas. Revisar la reciprocidad a mano en un sitio grande es inviable. Si aún no dominas la consola de Google, te dejo mi guía de Google Search Console para sacarle partido.

Mi recomendación

No hay un método mejor en abstracto: depende de tu web. Así es como decido yo:

  • Web pequeña o mediana en HTML: usa etiquetas <link> en el head. Es rápido de implementar y fácil de revisar. Si trabajas con WordPress, un plugin de SEO multilingüe las genera solas.
  • Sitio grande con muchos idiomas: ve al sitemap XML. Mantienes el HTML ligero y centralizas la gestión en un único archivo.
  • Documentos PDF o archivos no HTML: cabeceras HTTP, no tienes otra opción.

Elijas lo que elijas, sé consistente y no dupliques la declaración por dos vías distintas. Y ten presente que hreflang es solo una pieza del SEO internacional: la estructura de URLs, la velocidad y el diseño web orientado a SEO también cuentan. Si estás traduciendo, cuida el contenido multilingüe de verdad, no con traducción automática sin revisar.

Para profundizar en la fuente oficial, consulta la documentación de Google Search Central sobre versiones localizadas.

Preguntas frecuentes

¿Hreflang es obligatorio para el SEO?

No. Solo lo necesitas si tienes el mismo contenido en varios idiomas o versiones regionales. Si tu web está en un único idioma sin variantes de país, no hace falta.

¿Puedo usar hreflang y canonical a la vez?

Sí, y a menudo debes. Cada versión lleva su canonical apuntando a sí misma y su bloque hreflang con todas las alternativas. El fallo es apuntar el canonical de una versión a otra distinta.

¿Qué pasa si me olvido de la autorreferencia?

Google ignora todo el conjunto de etiquetas de esa página. Cada versión debe incluirse a sí misma en el listado, sin excepción.

¿Necesito siempre el código de región?

No. El idioma es obligatorio y la región es opcional. Añádela solo si tienes contenido diferenciado por país, como precios o moneda distintos.

¿Cuánto tarda hreflang en surtir efecto?

Google necesita rastrear y procesar todas las versiones. Suele tardar de unos días a varias semanas, según la frecuencia de rastreo de tu sitio.

En resumen

Hreflang no es difícil: es cuestión de ser meticuloso. Declara bien los códigos, cierra la reciprocidad, incluye la autorreferencia y valida con una herramienta antes de darlo por hecho. Empieza por una versión, compruébala y ve ampliando. Si te ha servido, échale un ojo a mis herramientas SEO gratis para seguir mejorando tu posicionamiento.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio