Blog · SEO

Hreflang: cómo configurar correctamente las versiones por idioma y país

hreflang le indica a Google qué versión de una página, por idioma o país, mostrar a cada usuario. Esta guía explica las tres formas de declararlo, las reglas de códigos que Google aplica de verdad, los enlaces de retorno, x-default, cómo interactúan los canonicals y los pasos para corregir los errores que detecta un verificador de hreflang.

Searvia · 24/10/2026 · Lectura de 14 min

Dos traductores emparejando juegos de folletos idénticos con portadas lisas de distintos colores en una mesa larga

En resumen: hreflang le indica a Google qué versión de una página, por idioma o país, mostrar a cada usuario. Cada versión enumera todas las versiones, incluida ella misma, con un código de idioma ISO 639-1 y una región ISO 3166-1 alpha-2 opcional (en, de, en-GB, pt-BR), más un x-default opcional como alternativa. Los enlaces deben ser absolutos y apuntarse en ambos sentidos, o Google los ignora. Cada versión necesita un canonical autorreferenciado; un canonical que apunte a otro idioma anula toda la configuración. Google detecta el idioma de la página por su contenido, así que la traducción tiene que ser real.

Los sitios internacionales pierden tráfico de forma silenciosa. La página en inglés se posiciona en Alemania, la página en español aparece en México cuando habías creado una versión mexicana, o la tienda del Reino Unido se muestra a usuarios estadounidenses con precios en libras. Nada está roto en el sitio; simplemente Google adivinó qué versión mostrar. hreflang es la forma de que deje de adivinar.

Esta guía explica cómo funciona hreflang según la documentación de Google, las reglas de códigos que hacen tropezar a la mayoría de los sitios, cómo interactúa con los canonicals, qué comprueba nuestro verificador de hreflang gratuito y cómo corregir cada problema.

Qué hace hreflang y qué no hace

Las anotaciones hreflang describen un conjunto de páginas que son versiones unas de otras: el mismo contenido en otro idioma, o el mismo idioma adaptado a otro país. Google las usa para mostrar en sus resultados la versión que corresponde.

Lo que no hace:

Las tres formas de añadir hreflang

Google afirma que los tres métodos "son equivalentes desde la perspectiva de Google". Usa uno por página; mezclarlos solo añade lugares donde pueden aparecer errores.

1. Elementos link en HTML dentro del <head>, la opción más habitual. En https://example.com/en/pricing:

<link rel="alternate" hreflang="en" href="https://example.com/en/pricing" />
<link rel="alternate" hreflang="de" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/tarifs" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/pricing" />

Las páginas en alemán y francés llevan exactamente las mismas cuatro líneas. Google exige que las etiquetas estén "dentro de una sección <head> bien formada"; un elemento suelto que el navegador mueva al body, como una imagen o una etiqueta sin cerrar encima de los enlaces, puede cortar el head antes de tiempo.

2. Cabeceras HTTP Link, la única opción para archivos que no son HTML, como los PDF:

Link: <https://example.com/en/guide.pdf>; rel="alternate"; hreflang="en",
      <https://example.com/de/guide.pdf>; rel="alternate"; hreflang="de"

Google indica que la cabecera debe ser idéntica en todas las versiones.

3. Sitemap XML, cómodo para sitios grandes porque no requiere cambiar plantillas:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://example.com/en/pricing</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/pricing"/>
    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/preise"/>
  </url>
  <url>
    <loc>https://example.com/de/preise</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/pricing"/>
    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/preise"/>
  </url>
</urlset>

Cada <url> enumera todas las versiones, incluida ella misma.

Las reglas que Google aplica

Enlaces de retorno y autorreferencia

"Si dos páginas no se apuntan mutuamente, las etiquetas se ignorarán." Esta es la regla detrás de la mayoría de las configuraciones rotas. Si la página en inglés enumera la alemana pero la alemana no enumera la inglesa, Google descarta el par. Google también indica que "cada versión de idioma debe enumerarse a sí misma".

Códigos de idioma y región

"Solo se admiten los códigos de idioma de ISO 639-1 y los códigos de región de ISO 3166-1 Alpha 2." Primero va el idioma; la región es opcional. Google también admite subetiquetas de escritura para idiomas que se escriben con más de un sistema, como zh-Hant y zh-Hans, y combinaciones como zh-Hans-US.

Código¿Válido?Motivo
enSíInglés, cualquier región
en-GBSíInglés para el Reino Unido
pt-BRSíPortugués para Brasil
zh-HantSíChino, escritura tradicional
es-419No para GoogleLa región debe ser un código ISO 3166-1 alpha-2; 419 (Latinoamérica) no lo es
en-UKSin efectoEl código ISO es GB; Google indica que UK, EU y UN no tienen efecto
beSignifica bielorrusoUn código de país solo no es válido; be es el idioma bielorruso, no Bélgica
en_USNoUsa guion, no guion bajo
engNo para GoogleLos códigos ISO 639-2 de tres letras no se admiten; usa en

Para el español en toda Latinoamérica, usa es para una única versión compartida, o enumera los países concretos a los que te diriges (es-MX, es-AR, es-CO) apuntando a la misma URL.

x-default

"El valor reservado x-default se usa cuando ningún otro idioma o región coincide con la configuración del navegador del usuario." Apúntalo a un selector de idioma o a tu versión internacional principal. Es opcional pero útil: sin él, un usuario con un idioma que no ofreces recibe la versión que Google elija.

URL absolutas

"Las URL alternativas deben ser completas, incluido el protocolo de transporte." https://example.com/de/ funciona; /de/ y //example.com/de/ no.

hreflang y etiquetas canonical

Ambos deben coincidir. Cada versión debe tener un canonical que apunte a sí misma, no a la versión en inglés o principal. La guía de canonicalización de Google dice que hay que "especificar una página canónica en el mismo idioma", o "el mejor idioma sustituto posible si no existe una página canónica para el mismo idioma", y señala que los grupos hreflang influyen en la elección del canonical, favoreciendo las URL que se enlazan entre sí de forma recíproca.

El error clásico: todas las versiones de idioma llevan <link rel="canonical" href="https://example.com/en/...">. Eso le dice a Google que las demás versiones son duplicados de la página en inglés, y salen del índice junto con sus anotaciones hreflang.

Otros dos conflictos que evitar: URL en hreflang que redirigen (indica la URL final) y URL en hreflang con noindex (una versión que Google no puede indexar no puede mostrarse).

Estructura del sitio y redirecciones automáticas

La guía multirregional de Google compara las estructuras de URL:

EstructuraEjemploNotas de Google
Dominio de paísexample.deGeolocalización clara; caro, un país por dominio
Subdominiode.example.comFácil de configurar; los usuarios pueden no reconocer la segmentación por la URL
Subdirectorioexample.com/de/Poco mantenimiento, mismo host
Parámetro de URLexample.com?loc=deNo recomendado

Elijas la que elijas, no redirijas automáticamente a los visitantes por IP o idioma del navegador. Google dice que esto "podría impedir que los usuarios (y los buscadores) vean todas las versiones de tu sitio" y que Googlebot "suele originarse en EE. UU.". Muestra en su lugar un banner con una sugerencia y deja que hreflang se encargue de los resultados de búsqueda.

Cómo funciona el verificador de hreflang de Searvia

El verificador de hreflang usa el mismo motor que nuestro verificador SEO de sitios web: introduces un dominio o la dirección de una página, audita esa página (tu página de inicio si solo pones el dominio) y los archivos del sitio que la rodean con 38 comprobaciones en unos 20 segundos, y coloca primero las tres comprobaciones de esta herramienta. Esto es exactamente lo que evalúan.

Versiones de idioma, hreflang (prioridad baja). El verificador lee cada elemento <link rel="alternate" hreflang="..." href="..."> en el HTML de esa página, tras seguir las redirecciones hasta su dirección final.

Idioma de la página (prioridad baja). Pasa cuando el elemento <html> tiene un atributo lang y muestra su idioma; avisa cuando falta.

URL canónica (prioridad media). Pasa cuando la etiqueta canonical apunta a la propia página; avisa cuando falta o apunta a otra dirección, mostrando esa dirección.

Lo que no comprueba

Cómo leer el resultado

MensajeSignificadoSolución
No se declaran versiones de idioma (correcto para un sitio de un solo idioma).No hay enlaces hreflang en la páginaNada para sitios de un solo idioma; si no, ve al paso 1
N versiones de idioma están declaradas correctamente.Códigos válidos y autorreferencia presente; el mensaje lo indica si falta la alternativa x-default (opcional)Comprueba igualmente a mano los enlaces de retorno
Las versiones de idioma no incluyen esta propia página.La página enumera otras pero no a sí mismaPaso 2
Algunos códigos de idioma no son válidos.Al menos una fila tiene una cruz rojaPaso 3
La página no declara su idioma.No hay lang en <html>Paso 4
La URL canónica apunta a otra dirección.El canonical nombra una página distintaPaso 5

La nota global de A+ a F abarca las 38 comprobaciones, ponderadas por prioridad (alta 10, media 5, baja 2; las advertencias suman la mitad), con una lista "Corrige esto primero" y un informe compartible.

Cómo corregir cada problema de hreflang

1. No se declaran versiones de idioma, pero las tienes

2. Las versiones de idioma no incluyen esta propia página

Añade una línea para la página actual con su propio código. En una plantilla, esto suele significar que el bucle sobre los idiomas omite el idioma actual; elimina esa condición. Asegúrate de que la URL de autorreferencia sea la URL canónica, con el mismo protocolo, host y criterio de barra final.

3. Algunos códigos de idioma no son válidos

4. La página no declara su idioma

Añade el idioma al elemento raíz, por ejemplo <html lang="en"> o <html lang="pt-BR">. Google no lo usa para detectar el idioma, pero sí los navegadores, las herramientas de traducción y los lectores de pantalla, como describe MDN.

5. El canonical apunta a otra dirección

En un sitio multilingüe suele ser el problema del canonical entre idiomas. Cambia el canonical de cada versión a su propia URL. Si el canonical apunta a la misma página en otra forma (http en lugar de https, o sin www), haz que coincida exactamente con tu dirección final.

6. Faltan enlaces de retorno (el verificador no lo comprueba)

Abre dos versiones una al lado de la otra y compara sus listas hreflang: deben ser conjuntos idénticos. Si difieren, la causa casi siempre es la plantilla o el plugin que las genera, así que corregir el generador una vez arregla todas las páginas.

Ejemplo práctico (hipotético)

Lo siguiente es un ejemplo hipotético, no datos reales. Kestrel Gear, una marca de exterior inventada, tiene example.com en inglés con versiones /de/, /fr/ y /es/. Los usuarios alemanes siguen llegando a páginas en inglés. El verificador de hreflang informa:

FilaURLOK
en-UKhttps://example.com/No (→ en-GB)
de-DEhttps://example.com/de/Sí
frhttps://example.com/fr/Sí
es_EShttps://example.com/es/No

Canonical: "La URL canónica apunta a la propia página." Idioma de la página: en.

La cruz en es_ES es un error de formato. La cruz en en-UK viene con la nota "→ en-GB": Google no acepta UK como región, así que la página en inglés no tenía una anotación utilizable. Al ver el código fuente de la página alemana aparece un tercer problema: su canonical apunta a la página de inicio en inglés, por lo que Google trató /de/ como un duplicado. Las soluciones:

Una lista de comprobación de hreflang en 20 minutos

Cómo ayuda Searvia

El verificador de hreflang gratuito valida los enlaces hreflang, el idioma de la página y el canonical de la página que introduzcas en un único informe compartible, junto con las demás comprobaciones del verificador SEO de sitios web. En una cuenta de Searvia, conecta Search Console para ver clics y posiciones por país de cada versión de idioma, y ejecuta la auditoría del sitio cada semana para detectar canonicals que apuntan a otro lugar, títulos duplicados entre versiones de idioma y páginas rotas. Si publicas apps además de sitios web, nuestra guía de localización en App Store trata el mismo problema en el lado de las tiendas. Para la lista técnica completa, consulta la guía de auditoría SEO técnica.

Preguntas frecuentes

¿Qué es hreflang?
hreflang es una anotación que informa a Google sobre las versiones de una página por idioma y país, para que pueda mostrar la versión adecuada a cada usuario. Se escribe como enlaces rel="alternate" con un atributo hreflang, en el head del HTML, en una cabecera HTTP Link o en un sitemap XML. Cada versión enumera todas las versiones, incluida ella misma, con un código como en, de o en-GB, y opcionalmente una alternativa x-default.
¿Ayuda hreflang al posicionamiento?
hreflang no hace que una página se posicione mejor. Ayuda a Google a elegir qué versión de una página mostrar en un idioma o región determinados, de modo que un usuario alemán vea la página en alemán y no la inglesa. Sin él, Google puede igualmente deducir la versión correcta, pero los errores, como mostrar el idioma equivocado en los resultados, son más probables cuando las versiones se parecen.
¿Qué es x-default en hreflang?
x-default es un valor reservado de hreflang para la página que se muestra cuando ningún otro idioma o región del conjunto coincide con la configuración del navegador del usuario. Suele ser una página selectora de idioma o la versión internacional principal. Google lo recomienda para la página alternativa, pero no lo exige.
¿Es en-UK un código hreflang válido?
No. Los códigos de región de hreflang deben ser códigos de país ISO 3166-1 alpha-2, y el código del Reino Unido es GB, así que usa en-GB. Google indica que usar UK, EU o UN en las anotaciones hreflang no tiene efecto en la Búsqueda de Google. Un código de país por sí solo tampoco es válido: hreflang debe empezar con un código de idioma ISO 639-1.
¿Necesito hreflang si uso el atributo lang?
Sí, si tienes varias versiones por idioma o país. Google indica que no usa el atributo lang de HTML ni hreflang para detectar el idioma de una página; lee el contenido visible. El atributo lang ayuda a los navegadores y lectores de pantalla, mientras que hreflang le dice a Google cómo se relacionan tus versiones. Configura ambos.

Fuentes

  1. Tell Google about localized versions of your page – Google Search Central
  2. Managing multi-regional and multilingual sites – Google Search Central
  3. How to specify a canonical URL – Google Search Central
  4. Redirects and Google Search – Google Search Central
  5. HTML lang global attribute – MDN Web Docs
  6. ISO 639 language codes – Library of Congress

Sigue leyendo