Qué es hreflang, cómo se implementa y qué errores evitar

Si tu empresa tiene la web en varios idiomas o en varias versiones del mismo idioma, tarde o temprano te encontrarás con un problema: Google muestra la página en español a un usuario de París o la versión mexicana a un cliente de Madrid. La etiqueta hreflang sirve para evitarlo. En esta guía verás qué es, cuándo hace falta, cómo se escribe con cada uno de los tres métodos disponibles, qué errores la invalidan y cómo comprobar que funciona.

¿Qué es la etiqueta hreflang?

Hreflang es un atributo que indica a los buscadores qué versión de una página corresponde a cada idioma y, si hace falta, a cada país. Cuando una misma página existe en español, francés e italiano, hreflang conecta las tres y le dice a Google: estas URL son equivalentes, muestra a cada usuario la que encaja con su idioma y su ubicación.

Es importante entender lo que hace y lo que no hace. Hreflang no mejora el posicionamiento por sí mismo ni hace que una página entre en el índice. Es una señal, no una orden: Google la tiene en cuenta junto con otras, como el contenido de la página, el dominio o los enlaces. Lo que sí consigue es que la versión correcta aparezca en el lugar de la versión equivocada, y eso se nota en el porcentaje de clics y en la conversión.

¿Cuándo necesitas hreflang y cuándo no?

Necesitas hreflang en estas situaciones:

  • Tu web tiene el mismo contenido en varios idiomas, por ejemplo español, francés e italiano.
  • Tienes variantes del mismo idioma para países distintos: español para España y para México, francés para Francia y para Bélgica. Aquí hreflang es casi imprescindible, porque los textos se parecen mucho y Google puede tratarlos como duplicados.
  • Tienes la misma oferta con precios, moneda o condiciones distintas según el país.

No la necesitas si tu web solo existe en un idioma y se dirige a un único mercado. Tampoco tiene sentido en páginas que no tienen equivalente en otros idiomas: un artículo publicado solo en español no lleva hreflang hacia ninguna parte.

Un caso intermedio frecuente en empresas españolas: la web completa está en español y solo una parte, por ejemplo las fichas de producto, está traducida al francés. En ese caso, hreflang se aplica únicamente a las páginas que tienen pareja.

Sintaxis con códigos de idioma, país y x-default

El valor de hreflang se compone de un código de idioma y, opcionalmente, un código de país:

  • El idioma va en formato ISO 639-1, con dos letras: es, fr, it, de, pt, ca.
  • El país, si lo añades, va en formato ISO 3166-1 alfa-2, también con dos letras: ES, FR, IT, MX, BE, CH.

Así, es significa español para cualquier país, es-ES español para España y es-MX español para México. El orden es siempre idioma y después país. No se puede indicar solo un país: ES sin idioma no es válido.

Existe además un valor especial, x-default. Indica la página que debe mostrarse cuando ninguna versión encaja con el usuario: por ejemplo, la página de selección de idioma o la versión internacional en inglés. No es obligatoria, pero sí muy recomendable cuando tienes varias versiones por país.

Es el método más habitual. En la sección head de cada página añades una línea por cada versión, incluida la propia página. Ejemplo para la página de inicio de una empresa con versiones en español, francés e italiano:

<link rel="alternate" hreflang="es-ES" href="https://www.tuempresa.es/" />
<link rel="alternate" hreflang="fr-FR" href="https://www.tuempresa.es/fr/" />
<link rel="alternate" hreflang="it-IT" href="https://www.tuempresa.es/it/" />
<link rel="alternate" hreflang="x-default" href="https://www.tuempresa.es/" />

Ese mismo bloque, idéntico, debe aparecer en las tres páginas: en la española, en la francesa y en la italiana. Las URL tienen que ser absolutas, con protocolo y dominio completos, y deben responder con un código 200, sin redirecciones.

Ventajas: es fácil de revisar con solo mirar el código fuente y la mayoría de los CMS tienen extensiones que lo generan. Inconveniente: con muchos idiomas, el head crece y cada página tarda algo más en descargarse.

Método 2: cabeceras HTTP para PDF y otros archivos

Los PDF, las fichas técnicas descargables y otros archivos que no son HTML no tienen una sección head. Para ellos, hreflang se envía en la cabecera HTTP de la respuesta del servidor, con el campo Link:

Link: <https://www.ejemplo.com/ficha-tecnica.pdf>; rel="alternate"; hreflang="es",
<https://www.ejemplo.com/fr/fiche-technique.pdf>; rel="alternate"; hreflang="fr",
<https://www.ejemplo.com/it/scheda-tecnica.pdf>; rel="alternate"; hreflang="it"

Este método lo configura el equipo técnico en el servidor (Apache, Nginx o el CDN que uséis) y es útil sobre todo para empresas industriales que publican catálogos y documentación en varios idiomas. Si un distribuidor de Lyon busca la ficha de tu producto, la cabecera ayuda a que Google le muestre la versión francesa del PDF.

Su punto débil es la verificación: no se ve en el código de la página y hay que comprobarlo con herramientas que lean las cabeceras.

Método 3: hreflang en el sitemap XML

La tercera opción es declarar las versiones en el sitemap XML. Cada URL incluye la lista de sus alternativas:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://www.ejemplo.com/es/servicios/</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://www.ejemplo.com/es/servicios/" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.ejemplo.com/fr/services/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://www.ejemplo.com/es/servicios/" />
</url>
<url>
<loc>https://www.ejemplo.com/fr/services/</loc>
<xhtml:link rel="alternate" hreflang="es" href="https://www.ejemplo.com/es/servicios/" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.ejemplo.com/fr/services/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://www.ejemplo.com/es/servicios/" />
</url>
</urlset>

Cada versión aparece como un bloque url propio y repite la lista completa. Este método mantiene limpio el HTML y es el más práctico para sitios grandes, como un e-commerce con miles de fichas. A cambio, el sitemap tiene que generarse de forma automática y actualizarse cada vez que se publica o se retira una página.

¿Qué método elegir?

Los tres métodos tienen el mismo valor para Google. Lo importante es elegir uno solo y aplicarlo de forma completa y coherente. Combinarlos no aporta nada y multiplica el riesgo de contradicciones: si el head dice una cosa y el sitemap otra, Google puede ignorar ambas.

Una orientación práctica:

  • Web corporativa de pocas decenas de páginas por idioma: etiquetas en el head, gestionadas desde el CMS.
  • E-commerce o catálogo grande: sitemap XML generado automáticamente desde la base de datos.
  • Documentación descargable: cabeceras HTTP, como complemento para los archivos que no son HTML.

La excepción razonable es precisamente esa: usar el head para las páginas y las cabeceras para los PDF, porque cada método cubre un tipo de recurso distinto y no se solapan.

Reciprocidad y autorreferencia, las dos reglas que más se incumplen

Hreflang funciona por parejas confirmadas. Si la página española apunta a la francesa, la francesa tiene que apuntar a la española. Es la reciprocidad, también llamada enlace de retorno. Sin ella, Google descarta la relación, porque cualquiera podría declarar desde su web que es la versión francesa de la tuya.

La segunda regla es la autorreferencia: cada página se incluye a sí misma en su propia lista. La versión italiana declara su URL italiana con hreflang it-IT, además de las demás.

En la práctica, ambas reglas se cumplen solas si el bloque de hreflang es idéntico en todas las versiones de una página. Los problemas aparecen cuando alguien traduce una página nueva y se olvida de actualizar las anteriores, o cuando una versión cambia de URL y las otras siguen apuntando a la dirección antigua.

Si quieres revisar cómo está configurada tu web antes de abrir un nuevo mercado, nuestro equipo de SEO internacional hace esta comprobación de forma sistemática.

Revisar el hreflang de mi web

Español para España y para México con es-ES y es-MX

Para una empresa española que vende también en México, el caso típico es tener dos versiones casi idénticas del mismo texto. Cambian la moneda, algún término (ordenador frente a computadora, móvil frente a celular), los plazos de entrega y los datos de contacto. Sin hreflang, Google suele elegir una de las dos como principal y mostrarla en ambos países.

La solución es declarar es-ES para la versión española y es-MX para la mexicana. Si además quieres cubrir el resto de países hispanohablantes sin crear una versión para cada uno, añade una URL con es a secas: será la que Google muestre a un usuario de Colombia o de Argentina.

Un consejo: adapta de verdad los textos. Dos páginas que solo se diferencian en el símbolo de la moneda son una señal débil, y Google puede agruparlas igualmente. Cuanto más clara sea la diferencia de contenido, mejor funciona la etiqueta.

Francia y Bélgica, Italia y Suiza con fr-FR, fr-BE, it-IT e it-CH

Las empresas españolas que exportan a Francia se encuentran a menudo con clientes en la Bélgica francófona. El esquema es el mismo: fr-FR para Francia y fr-BE para Bélgica. Tiene sentido separar las dos versiones si cambian los distribuidores, las condiciones comerciales o la normativa aplicable. Si el texto y la oferta son idénticos, una sola versión con fr suele bastar.

Con el italiano ocurre algo parecido: it-IT para Italia; it-CH para la Suiza de habla italiana (el Tesino y parte de los Grisones). Allí cambian la moneda (francos suizos), los impuestos y, a menudo, la logística, porque Suiza no forma parte de la UE.

Un detalle que muchos pasan por alto: Bélgica y Suiza son países multilingües. Una versión fr-BE no cubre a los usuarios belgas que buscan en neerlandés, y una it-CH no llega a la Suiza de habla alemana. Si esos públicos te interesan, necesitarán sus propias versiones y sus propias etiquetas.

Hreflang y estructura del dominio

Hreflang funciona igual con cualquier estructura: dominios de país (tuempresa.fr, tuempresa.it), subdominios (fr.tuempresa.com) o subdirectorios (tuempresa.com/fr/). Lo que cambia es cuánto trabajo le toca a la etiqueta.

Con un ccTLD como .fr, el propio dominio ya indica el país. Con un subdirectorio dentro de un .com, el país solo se deduce del contenido y de hreflang, así que la etiqueta tiene más peso. Y si tu web principal está en un .es y creas una carpeta /fr/, Google recibe dos señales que se contradicen en parte: el dominio dice España y hreflang dice Francia.

Elegir la estructura es una decisión que va más allá de la técnica. La explicamos en detalle en el artículo sobre ccTLD, subdominio o subdirectorio.

Hreflang, canonical y traducción

Hreflang y la etiqueta canonical se complementan, pero se confunden a menudo. La regla es sencilla: cada versión de idioma es canónica de sí misma. La página francesa no debe llevar un canonical que apunte a la española, porque le estarías diciendo a Google que la francesa es una copia y que no la indexe. En ese caso, hreflang deja de funcionar.

El otro punto es la calidad de la traducción. Hreflang conecta páginas equivalentes, pero no compensa un texto traducido de forma automática y sin revisar. Si el usuario francés llega a una página que no suena francesa, se va, y esa señal sí afecta al posicionamiento. Lo tratamos en la guía sobre cómo traducir una página web sin perder tráfico.

Para el mercado francés en concreto, en web en francés explicamos cómo trabajamos los textos con redactores nativos de nuestro equipo en Lille.

Errores comunes con hreflang

  • Códigos inventados o mal escritos: es-SP en lugar de es-ES, jp en lugar de ja para el japonés, se en lugar de sv para el sueco. Google ignora los valores que no reconoce.
  • Orden invertido: ES-es o IT-it. Primero va el idioma, después el país.
  • Falta de reciprocidad: la página A apunta a B, pero B no apunta a A.
  • URL que redirigen o dan error: cada href debe responder con 200. Apuntar a una URL con redirección 301 o a una página 404 invalida esa pareja.
  • URL relativas: /fr/ en lugar de https://www.tuempresa.es/fr/.
  • Canonical cruzado entre idiomas, como hemos visto.
  • Páginas con noindex dentro del grupo de hreflang.
  • Redirecciones automáticas por IP: si el servidor manda a todos los visitantes de Francia a /fr/, el rastreador de Google, que suele salir desde Estados Unidos, puede no ver nunca algunas versiones.
  • Hreflang hacia la página de inicio desde todas las páginas internas, en lugar de hacia su equivalente real.

Cómo verificar que hreflang funciona

La comprobación tiene tres niveles:

  • Revisión del código: abre el código fuente de varias páginas de cada idioma y comprueba que el bloque está completo e idéntico. Para el método del sitemap, abre el archivo y revisa una muestra de URL.
  • Rastreo completo: herramientas como Screaming Frog o Sitebulb recorren la web y señalan enlaces de retorno ausentes, códigos no válidos, URL que no responden con 200 y conflictos con el canonical. Es la única forma fiable de revisar un sitio de cientos de páginas.
  • Resultados reales: en Google Search Console, filtra el informe de rendimiento por país y mira qué URL reciben las impresiones. Si los usuarios de Francia ven sobre todo páginas en español, algo falla. El antiguo informe de segmentación internacional ya no existe, así que este análisis por país es hoy la mejor prueba.

Lo que debes llevarte de esta guía

Hreflang es una pieza pequeña de código con un efecto muy concreto: que cada cliente vea la versión de tu web pensada para él. Para que funcione, recuerda cinco puntos:

  • idioma en ISO 639-1 y país opcional en ISO 3166-1, en ese orden;
  • un solo método, aplicado a todas las páginas con equivalente;
  • reciprocidad y autorreferencia en todas las versiones;
  • URL absolutas, canónicas de sí mismas y con respuesta 200;
  • x-default para los usuarios que no encajan en ninguna versión.

Si estás preparando la entrada en Italia o en Francia, la configuración de hreflang forma parte del trabajo técnico que hacemos antes de publicar los contenidos. Puedes ver cómo trabajamos en nuestra página de SEO internacional o escribirnos directamente.

Hablar de mi web internacional

Preguntas frecuentes

¿Qué es hreflang en SEO?

Hreflang es un atributo HTML que indica a Google qué versión de una página corresponde a cada idioma y, opcionalmente, a cada país. Sirve para que un usuario de Francia vea la versión francesa de tu web y uno de España la española, en lugar de que el buscador elija una sola versión para todos. No mejora el posicionamiento por sí mismo: ayuda a que la página correcta aparezca en el mercado correcto, lo que suele mejorar los clics y la conversión.

¿Es obligatorio usar hreflang en una web multilingüe?

No es obligatorio, pero es muy recomendable cuando tienes la misma página en varios idiomas y casi imprescindible cuando tienes variantes del mismo idioma para países distintos, como es-ES y es-MX o fr-FR y fr-BE. Sin la etiqueta, Google puede considerar esas páginas duplicadas y mostrar una sola en todos los países. Si tu web está en un único idioma y se dirige a un único mercado, no la necesitas.

¿Qué significa x-default en hreflang?

El valor x-default indica la página que Google debe mostrar cuando ninguna de las versiones declaradas encaja con el idioma o el país del usuario. Suele usarse para una página de selección de idioma o para la versión internacional principal. Por ejemplo, si tienes versiones para España, Francia e Italia, un usuario de Polonia vería la página marcada como x-default. No es obligatorio, pero evita que Google elija por su cuenta.

¿Puedo usar hreflang en el HTML y en el sitemap a la vez?

Técnicamente sí, pero no aporta ninguna ventaja y aumenta el riesgo de errores. Si las dos fuentes no coinciden exactamente, Google puede ignorar las anotaciones. Lo recomendable es elegir un único método, el head del HTML para webs corporativas o el sitemap XML para sitios grandes, y aplicarlo de forma completa. La única combinación razonable es usar cabeceras HTTP para los PDF y otro método para las páginas HTML.

¿Cómo sé si mi etiqueta hreflang funciona?

Primero revisa el código de varias páginas de cada idioma para comprobar que el bloque está completo e idéntico. Después rastrea la web con una herramienta como Screaming Frog, que detecta enlaces de retorno ausentes, códigos no válidos y URL con redirección. Por último, en Google Search Console filtra el rendimiento por país y comprueba qué URL reciben las impresiones: si en Francia aparecen tus páginas en español, la configuración tiene algún fallo.

¿Hreflang sirve también para Bing?

Bing ha explicado que da más importancia a otras señales para identificar el idioma y el país de una página, como el atributo lang del HTML, la meta content-language, el dominio y el propio contenido. Por eso conviene no depender solo de hreflang: declara bien el idioma en cada página, escribe textos realmente adaptados a cada mercado y mantén una estructura de URL clara. Google, en cambio, sí utiliza hreflang como señal principal entre versiones equivalentes.

Temas relacionados

Descubre el blog