¿Qué es Hreflang?
Hreflang es un atributo HTML que indica a los motores de búsqueda qué versión de idioma y región de una página debe mostrarse a los usuarios en ubicaciones específicas. Introducido por Google en 2011, el atributo hreflang se coloca dentro de elementos <link> y crea una señal que ayuda a los motores de búsqueda a comprender la relación entre páginas que comparten el mismo contenido pero se dirigen a diferentes idiomas o regiones.
El atributo sigue un formato sencillo: hreflang="en" para inglés, hreflang="es" para español, o hreflang="en-GB" para inglés dirigido específicamente a usuarios del Reino Unido. Cuando se implementa correctamente, hreflang garantiza que un usuario hispanohablante en México vea la versión es-MX de tu página en los resultados de búsqueda en lugar de la versión en inglés o la versión dirigida a España.
Sin hreflang, los motores de búsqueda deben adivinar qué versión de tu contenido mostrar a cada audiencia. Esa suposición conduce a que aparezcan las páginas incorrectas en los resultados de búsqueda, señales de contenido duplicado que diluyen tu posicionamiento y usuarios frustrados que aterrizan en contenido en un idioma que no comprenden.
Por qué Hreflang es importante para el SEO internacional
El SEO internacional es la práctica de optimizar tu sitio web para que los motores de búsqueda puedan identificar a qué países e idiomas se dirige tu contenido. Hreflang es el mecanismo principal para comunicar esta segmentación a Google y Yandex. Bing utiliza un enfoque diferente (la meta etiqueta content-language), pero hreflang sigue siendo el estándar dominante.
Existen tres razones clave por las que hreflang es esencial para cualquier sitio web multilingüe o multirregional:
-
Prevención de problemas de contenido duplicado. Cuando tienes el mismo contenido en varios idiomas, los motores de búsqueda pueden tratar esas páginas como duplicadas. Hreflang les indica que estas páginas son variantes lingüísticas intencionales, no copias. Esto preserva la autoridad de posicionamiento de cada versión.
-
Mostrar la página correcta a la audiencia adecuada. Hreflang influye directamente en qué URL aparece en los resultados de búsqueda para usuarios en diferentes regiones. Un usuario que busca desde Alemania verá la versión en alemán, mientras que un usuario que busca desde Brasil verá la versión en portugués. Esto aumenta las tasas de clics porque los usuarios ven resultados en su idioma.
-
Consolidación de señales de posicionamiento entre idiomas. En lugar de tratar tus páginas en inglés, español y alemán como competidoras, hreflang indica a los motores de búsqueda que forman parte de una única entidad multilingüe. La autoridad y los enlaces obtenidos por cualquier versión pueden beneficiar al conjunto completo.
Códigos de idioma vs códigos de región
Los valores de hreflang siguen el estándar ISO 639-1 para códigos de idioma y el estándar opcional ISO 3166-1 Alpha-2 para códigos de región.
Códigos solo de idioma se dirigen a hablantes de un idioma independientemente de su ubicación:
en-- Hablantes de inglés en todo el mundoes-- Hablantes de español en todo el mundode-- Hablantes de alemán en todo el mundofr-- Hablantes de francés en todo el mundo
Códigos de idioma-región se dirigen a hablantes de un idioma en un país específico:
en-US-- Hablantes de inglés en Estados Unidosen-GB-- Hablantes de inglés en el Reino Unidoes-MX-- Hablantes de español en Méxicopt-BR-- Hablantes de portugués en Brasilfr-CA-- Hablantes de francés en Canadázh-TW-- Hablantes de chino en Taiwán
El código de región es siempre opcional. Si solo tienes una versión en inglés, usa en. Si tienes versiones separadas para EE.UU. y Reino Unido, usa en-US y en-GB. Nunca uses un código de región solo sin un prefijo de idioma: hreflang="US" no es válido y será ignorado por los motores de búsqueda.
Un error frecuente es usar códigos incorrectos. Por ejemplo, uk es el código ISO 639-1 para ucraniano, no para el Reino Unido. El código correcto para inglés británico es en-GB. De igual manera, jp no es válido; el código de idioma correcto para japonés es ja, y el código de país para Japón es JP, resultando en el código combinado ja-JP.
Entendiendo x-default
El valor x-default es un atributo especial de hreflang que designa una página de respaldo. Cuando un motor de búsqueda no puede hacer coincidir el idioma o la región de un usuario con ninguno de los valores hreflang disponibles, sirve la página x-default en su lugar.
<link rel="alternate" hreflang="x-default" href="https://example.com/en/" />
Deberías configurar x-default para la página que proporcione la mejor experiencia a los usuarios cuyo idioma no está cubierto explícitamente. Normalmente es tu versión en inglés o una página con selector de idioma. Las reglas clave para x-default son:
- Cada conjunto de hreflang debe incluir exactamente una entrada
x-default - La URL de
x-defaulttambién debe aparecer como una de las entradas regulares de hreflang (por ejemplo, si tu página en inglés es x-default, también debe tenerhreflang="en") - No uses
x-defaultcomo comodín para múltiples páginas: apunta a una sola URL
Sin un x-default, los motores de búsqueda no tienen orientación sobre qué mostrar a los usuarios de regiones no compatibles. Esto puede resultar en un comportamiento impredecible donde Google elige la versión que considera más relevante, que puede no ser la experiencia que pretendes ofrecer.
Cómo los motores de búsqueda utilizan Hreflang
Google procesa hreflang como una señal, no como una directiva. Esta distinción es importante: a diferencia de noindex (que Google generalmente obedece), hreflang es una sugerencia que Google pondera junto con otras señales como la ubicación del usuario, la configuración de idioma de búsqueda, el idioma real del contenido de la página y los patrones de enlaces internos.
Esto es lo que hace Google cuando encuentra hreflang:
- Rastrea y descubre todas las páginas listadas en el conjunto de hreflang
- Valida la reciprocidad -- verifica que la página A que apunta a la página B también tiene la página B apuntando de regreso a la página A
- Comprueba la accesibilidad de las URLs -- confirma que todas las URLs enlazadas son rastreables y devuelven códigos de estado 200
- Evalúa la coherencia -- compara las señales de hreflang con las etiquetas canonical, las entradas del sitemap y el contenido de la página
- Aplica la señal en el momento de la consulta para cambiar los resultados de búsqueda a la localización más relevante para el usuario
Si alguno de estos pasos de validación falla, Google puede ignorar el hreflang por completo para las páginas afectadas. Por eso la implementación correcta es tan importante: un solo enlace roto en la cadena puede invalidar todo el conjunto.
Yandex sigue un proceso similar pero está menos documentado. Bing no soporta oficialmente hreflang, confiando en su lugar en la meta etiqueta content-language y el atributo lang en el elemento <html>, aunque informes sugieren que Bing sí procesa parcialmente las señales de hreflang.
Métodos de implementación
Existen tres formas de implementar hreflang. Debes usar solo un método por página para evitar señales contradictorias. Si usas múltiples métodos y no coinciden, los motores de búsqueda no sabrán en cuál confiar.
Método 1: Elementos link HTML en el head
Coloca etiquetas <link rel="alternate"> en la sección <head> de cada página del conjunto.
<head>
<link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
<link rel="alternate" hreflang="es" href="https://example.com/es/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/page/" />
</head>
Cuándo usar este método: Ideal para sitios con un número pequeño a mediano de páginas (menos de unos cientos) donde tienes control directo sobre el head HTML. Es el enfoque más común y el más fácil de depurar porque las etiquetas son visibles en el código fuente de la página.
Ventaja: Sencillo de implementar, fácil de inspeccionar, funciona con cualquier configuración de hosting.
Desventaja: Aumenta el peso de la página. Un sitio con 20 versiones de idioma añade 21 etiquetas <link> (20 idiomas + x-default) a cada página, lo cual puede ser significativo para páginas sensibles al rendimiento.
Método 2: Cabeceras HTTP
Usa cabeceras Link en la respuesta HTTP. Esto es particularmente útil para recursos no HTML como PDFs.
Link: <https://example.com/en/page/>; rel="alternate"; hreflang="en",
<https://example.com/es/page/>; rel="alternate"; hreflang="es",
<https://example.com/de/page/>; rel="alternate"; hreflang="de",
<https://example.com/en/page/>; rel="alternate"; hreflang="x-default"
Cuándo usar este método: Necesario para documentos no HTML (PDFs, imágenes) que tienen variantes de idioma. También útil cuando no puedes modificar el head HTML (por ejemplo, en algunas configuraciones de CMS).
Ventaja: Funciona para cualquier tipo de contenido, no solo HTML.
Desventaja: Más difícil de auditar porque las cabeceras no son visibles en el código fuente renderizado de la página. Requiere configuración a nivel de servidor.
Método 3: Sitemap XML
Añade anotaciones hreflang dentro de tu sitemap XML usando el elemento xhtml:link dentro de cada entrada <url>.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/en/page/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
<xhtml:link rel="alternate" hreflang="es" href="https://example.com/es/page/" />
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/page/" />
</url>
<url>
<loc>https://example.com/es/page/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
<xhtml:link rel="alternate" hreflang="es" href="https://example.com/es/page/" />
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/page/" />
</url>
</urlset>
Cuándo usar este método: Ideal para sitios grandes con miles de páginas. Los datos de hreflang residen en el sitemap en lugar de en cada página, lo que facilita la gestión programática y mantiene el peso de la página al mínimo.
Ventaja: Escala bien, mantiene el HTML limpio, puede ser generado por herramientas de compilación o plugins de CMS.
Desventaja: Google debe rastrear y procesar el sitemap antes de que el hreflang surta efecto. Los cambios pueden tardar más en propagarse que las etiquetas en la página.
¿Cuándo deberías usar Hreflang?
Necesitas hreflang cuando tu sitio tiene alguna de las siguientes características:
- Múltiples versiones de idioma del mismo contenido (por ejemplo, versiones en inglés y español de una página de producto)
- Variaciones regionales del mismo idioma (por ejemplo, inglés británico y americano, o portugués europeo y brasileño)
- Un selector de idioma o geo-redirección que sirve contenido diferente según la ubicación del usuario
- Tiendas específicas por país con diferentes precios, monedas o disponibilidad de productos pero contenido sustancialmente similar
No necesitas hreflang cuando:
- Tu sitio existe en un solo idioma sin variantes regionales
- Usas un widget de traducción automática (como una barra de traducción del navegador) en lugar de mantener páginas traducidas por separado
- Tu contenido es completamente diferente entre regiones (por ejemplo, tu sitio en EE.UU. y en el Reino Unido no comparten contenido)
Conceptos erróneos comunes sobre Hreflang
Concepto erróneo: Hreflang mejora directamente el posicionamiento. Realidad: Hreflang no aumenta tu posicionamiento. Indica a los motores de búsqueda qué versión mostrar en cada mercado. Tu posicionamiento sigue dependiendo de la calidad del contenido, los backlinks y otras señales SEO tradicionales.
Concepto erróneo: Solo necesitas hreflang en la página de inicio.
Realidad: Hreflang debe implementarse en cada página que tenga un equivalente en otro idioma o región. Si tu página /en/about/ tiene una versión en español en /es/about/, ambas páginas necesitan etiquetas hreflang apuntando entre sí y a sí mismas.
Concepto erróneo: Google lo resolverá sin hreflang.
Realidad: Aunque Google usa señales como el atributo lang y el idioma del contenido de la página para detectar el idioma, estas son señales más débiles. Sin hreflang explícito, Google frecuentemente muestra la versión de idioma incorrecta en los resultados de búsqueda, especialmente para sitios con estructuras de URL similares entre idiomas.
Concepto erróneo: Hreflang reemplaza la etiqueta canonical. Realidad: Hreflang y canonical tienen propósitos diferentes y deben usarse juntos. La etiqueta canonical indica a los motores de búsqueda cuál URL es la copia maestra para fines de indexación. Hreflang indica alternativas de idioma y región. Cada versión localizada debe tener un canonical autorreferencial que apunte a sí misma, no a otra versión. Consulta nuestra guía sobre hreflang vs canonical para una explicación detallada.
Concepto erróneo: Puedes usar hreflang con URLs relativas.
Realidad: Todas las URLs en atributos hreflang deben ser absolutas (comenzando con https://). Las URLs relativas son ignoradas silenciosamente por los motores de búsqueda, lo que significa que tu implementación de hreflang simplemente no funcionará.
Próximos pasos
Ahora que entiendes qué es hreflang y cómo funciona, puedes:
- Usar nuestro Generador de etiquetas Hreflang para construir etiquetas hreflang correctas para tus páginas
- Leer sobre los errores comunes de hreflang para evitar fallos de implementación
- Aprender cómo interactúan hreflang y las etiquetas canonical para prevenir conflictos entre ambas