Hreflang: guía práctica de SEO multilingüe
Buscas una marca en Vietnam y Google abre la página en inglés. Un visitante de Estados Unidos aterriza a veces en el contenido en vietnamita. Las dos páginas están indexadas y sus canonical parecen correctos. ¿Dónde está la discrepancia?
Ahí es cuando hreflang merece atención. No traduce el contenido ni hace que una página se posicione por sí misma. Ayuda a Google a entender qué URL son equivalentes por idioma o región para que la versión más adecuada aparezca ante cada persona que busca.
¿Qué es hreflang?
hreflang es una anotación que conecta las versiones localizadas de un mismo contenido. Un artículo en vietnamita y en inglés podría usar:
<link rel="alternate" hreflang="vi"
href="https://example.com/blog/huong-dan-seo">
<link rel="alternate" hreflang="en"
href="https://example.com/en/blog/seo-guide">
<link rel="alternate" hreflang="x-default"
href="https://example.com/blog/huong-dan-seo">
Importan tres distinciones:
- hreflang no es canonicalización;
- Google no se basa solo en hreflang para detectar el idioma de la página;
- una carpeta
/en/no establece por sí sola la relación.
¿Cuándo necesita un sitio hreflang?
Es útil cuando:
- un mismo tema tiene traducciones completas;
- el contenido usa un idioma pero difiere por región, como
en-USyen-GB; - el contenido principal sigue siendo similar mientras la navegación o el soporte difieren según el mercado;
- en un ecommerce los precios, la moneda, el envío o el inventario varían según el país.
Un sitio de un solo idioma no gana nada añadiendo hreflang como adorno. Las páginas que tratan temas completamente distintos pueden ser independientes en lugar de alternativas.
Tres métodos de implementación
Método 1: etiquetas HTML en el head
Es fácil de inspeccionar en sitios HTML. Cada versión se lista a sí misma y a todas las demás.
En la página en vietnamita:
<link rel="alternate" hreflang="vi" href="https://example.com/bai-viet">
<link rel="alternate" hreflang="en" href="https://example.com/en/article">
La página en inglés necesita el mismo conjunto. Si EN apunta a VI pero VI no apunta de vuelta, falta la relación de retorno.
Método 2: cabeceras HTTP
Las cabeceras sirven para PDF y otros documentos sin head HTML:
Link: <https://example.com/guide.pdf>; rel="alternate"; hreflang="vi",
<https://example.com/en/guide.pdf>; rel="alternate"; hreflang="en"
Método 3: sitemaps XML
Cada URL contiene elementos xhtml:link hijos para cada versión, incluida ella misma. Escala a miles de páginas, aunque los archivos resultan más difíciles de inspeccionar a mano.
Google trata los tres métodos como equivalentes. Usarlos todos no da ninguna ventaja de posicionamiento y crea más oportunidades de desacuerdo. Elige la fuente que tu equipo pueda mantener con fiabilidad.
Códigos de idioma y de región
El idioma usa ISO 639-1; la región opcional usa ISO 3166-1 Alpha 2:
vi: vietnamita sin restricción regional;en: inglés genérico;en-US: inglés para Estados Unidos;en-GB: inglés para el Reino Unido;fr-CA: francés para Canadá.
No uses un código de país como US por sí solo. El primer componente es siempre un idioma. Las mayúsculas y minúsculas no suelen ser el problema de fondo, pero escribir el idioma en minúsculas y la región en mayúsculas hace que la configuración sea más fácil de leer.
¿Para qué sirve x-default?
x-default indica una página de reserva cuando ningún idioma o región coincide con el visitante. Es especialmente útil para:
- selectores de país;
- páginas de inicio que piden al visitante que elija un idioma;
- una versión global predeterminada.
Con solo VI y EN, el idioma principal puede ser x-default. No uses x-default en lugar de una anotación de idioma real; complementa a vi o a en.
Cómo trabajan juntos el canonical y hreflang
Cada página localizada debe tener un canonical hacia sí misma o hacia un canonical del mismo idioma.
Una configuración coherente:
/bai-vietapunta con canonical a/bai-viet;/en/articleapunta con canonical a/en/article;- ambas páginas se conectan mediante hreflang.
Una configuración contradictoria:
/en/articleapunta con canonical a/bai-viet;- y las dos se declaran además como alternativas de idioma.
El canonical le pide a Google que consolide EN en VI, mientras que hreflang le pide que conserve ambas para la segmentación por idioma.
Siete fallos habituales de hreflang
1. Faltan los enlaces de retorno
A apunta a B pero B no apunta de vuelta. Genera las anotaciones a partir de una única fuente de datos de traducción en lugar de escribirlas a mano en cada plantilla.
2. Las URL alternativas redirigen o devuelven 404
Hreflang debe nombrar la URL final válida. Tras una migración, actualiza a la vez las rutas, los canonical y las alternativas.
3. Solo se traduce la navegación
Si el cuerpo permanece en el idioma original, Google puede tratar las páginas como duplicadas y no como traducciones genuinas. Traduce los títulos, los encabezados, el texto principal, el texto alternativo y los datos importantes.
4. Cada versión tiene un conjunto distinto
La página VI lista VI/EN/JP mientras que EN solo lista VI/EN. Todos los miembros de un mismo grupo necesitan el mismo conjunto de relaciones.
5. URL relativas
Usa URL absolutas con protocolo y nombre de host. Esto evita ambigüedades entre dominios y subdominios.
6. Las alternativas apuntan a páginas con noindex
Una página con noindex, bloqueada o con un canonical hacia otro sitio no es una alternativa útil. Incluye solo URL indexables.
7. Todas las páginas en inglés se asocian con la página de inicio en vietnamita
Las alternativas deben ser equivalentes. Un producto en inglés se asocia con el producto equivalente en vietnamita, no con una página de inicio ni con una categoría aproximada.
Diseña los datos para que hreflang se mantenga correcto
No deduzcas las traducciones sustituyendo /en/ en una URL cuando los slugs pueden diferir. Guarda un grupo de traducción:
| translation_group | locale | slug |
|---|---|---|
| article_104 | vi | hreflang-la-gi |
| article_104 | en | what-is-hreflang |
En el momento de renderizar, consulta todos los registros del grupo. La misma fuente puede alimentar el selector de idioma, las anotaciones del sitemap y los informes de traducciones que faltan.
Si no existe una traducción, no apuntes a la página de inicio. Emite solo locales reales e indexables.
Verificación previa a la publicación
Inspecciona el HTML de origen
Usa Ver código fuente o el Meta Tag Checker, no solo el DOM renderizado con JavaScript. Confirma el canonical, lang y todas las alternativas.
Verifica ambos sentidos
Abre cada URL del grupo. Cada página debe listarse a sí misma y a todas las demás. Con tres idiomas, las tres páginas contienen las mismas tres alternativas, más x-default cuando se usa.
Comprueba el estado y la indexabilidad
Cada URL devuelve 200, no tiene noindex, es rastreable y nombra un canonical del mismo idioma. Usa el Redirect Chain Checker después de una migración de URL.
Confirma que el contenido está realmente localizado
El título, el H1, el cuerpo, los CTA y las FAQ deben usar el idioma de destino. Una plantilla traducida que rodea un artículo sin traducir no es una experiencia multilingüe.
Monitoriza Search Console
Tras el lanzamiento, revisa la inspección de URL y el rendimiento por país y por página. Hreflang ayuda a la selección, pero Google aún puede elegir de otra forma cuando el contenido o las señales de canonical entran en conflicto.
¿Mejora hreflang el posicionamiento?
No en el sentido de que añadir etiquetas produzca un impulso de posición. Su valor está en evitar las llegadas en el idioma equivocado, alinear las señales de cada versión y mejorar la experiencia de búsqueda.
Una página en inglés pobre no gana autoridad solo por estar emparejada con un buen artículo en vietnamita. Cada versión sigue necesitando contenido útil, enlaces internos y metadatos únicos.
Cómo desplegar hreflang sin provocar un incidente en todo el sitio
Trata hreflang como una migración de datos, no como una decoración de plantilla. Empieza con un grupo de contenido en el que todas las traducciones estén completas y revisadas editorialmente. Valida que las claves del grupo de traducción se resuelvan en las URL previstas y publica esa cohorte antes de ampliar.
Un despliegue seguro tiene cuatro etapas:
- Inventario: lista todas las URL indexables, la locale, el canonical, el estado y la clave del grupo de traducción.
- Completitud: señala los grupos que carecen de una traducción o que contienen registros de locale duplicados.
- Piloto: publica las anotaciones de una sección estable y rastrea a todos sus miembros.
- Ampliación: añade secciones solo cuando los enlaces de retorno y el comportamiento en Search Console sigan limpios.
Crea comprobaciones automáticas en torno a la fuente de datos. Un despliegue debería fallar cuando un grupo contenga dos URL en inglés, una alternativa devuelva una redirección o una página localizada tenga un canonical hacia otro idioma. Esto es más fiable que encontrar los errores cuando Google ya los ha rastreado.
Planifica también el ciclo de vida del contenido. Cuando se actualiza el artículo en vietnamita pero la traducción al inglés está pendiente, decide si ambas versiones siguen siendo útiles. Hreflang no exige una identidad palabra por palabra, pero las páginas deben seguir siendo respuestas equivalentes. Si una versión queda obsoleta, elimínala de todos los miembros del grupo y devuelve un estado o una redirección adecuados.
Los selectores de idioma deben usar el mismo mapeo. Si el selector lleva a los usuarios a una URL mientras hreflang lleva a los rastreadores a otra, el modelo de datos ya se ha dividido. Una única fuente de traducción para el selector, las etiquetas del head y la salida del sitemap reduce esa deriva.
Por último, monitoriza por cohortes. Compara las impresiones, las llegadas en el idioma equivocado y los canonical seleccionados en la sección piloto. Unas semanas de comportamiento estable son una prueba más sólida que un validador de sintaxis por sí solo.
Respeta la elección de idioma del visitante
Hreflang ayuda a los buscadores a elegir una página de destino, pero el sitio web sigue necesitando un selector de idioma utilizable. No obligues a todos los visitantes a entrar en una locale basándote solo en la dirección IP. Un hablante de vietnamita que viaja al extranjero puede seguir prefiriendo el vietnamita; un cliente angloparlante en Vietnam puede querer el inglés.
Si se usa la detección automática, ofrece una sugerencia en lugar de una redirección irreversible. Mantén cada URL localizada accesible directamente, evita los bucles de redirección entre la lógica de país y la de idioma y recuerda la elección explícita del usuario con una cookie razonable.
El selector debe enlazar con la página equivalente, no solo con la página de inicio localizada. Cuando no exista traducción, indícalo u ofrece una alternativa clara en lugar de fingir que la página de inicio es el mismo recurso. Esto protege la confianza del usuario y mantiene honesto el mapeo de hreflang.
Pruebe las URL de idioma en una sesión nueva y revise las redirecciones, canonical y hreflang reales. Una comprobación pública de Cloudflare no simula cookies ni variantes de Accept-Language.
Antes de entrar en otro mercado: ejecuta una auditoría SEO gratuita para revisar los canonical, la indexabilidad y los metadatos de las rutas VI/EN.
Conclusión
Hreflang funciona cuando las traducciones se agrupan en los datos, cada URL se autorreferencia, las páginas se devuelven enlaces entre sí y los canonical no entran en conflicto. Una configuración correcta es casi invisible, pero evita un fallo muy visible: que el contenido adecuado llegue a la audiencia equivocada.
Referencia: Google Search Central – Localized versions.
Preguntas frecuentes
¿Hay que implementar hreflang tanto en el HTML como en los sitemaps?
¿Debe una página en inglés tener un canonical hacia su traducción en vietnamita?
¿Es obligatorio el hreflang x-default?
Comprueba tu sitio web de forma gratuita
Ejecuta una auditoría SEO o verifica la calidad de tu tráfico ahora: no se requiere registro.