Por qué los errores de Hreflang son tan costosos
Los errores en las etiquetas hreflang son particularmente dañinos porque a menudo fallan de forma silenciosa. A diferencia de un enlace roto que muestra un error 404 visible, una etiqueta hreflang mal configurada simplemente es ignorada por los motores de búsqueda sin ninguna advertencia en la propia página. El resultado: tu estrategia de SEO internacional parece correcta sobre el papel pero no aporta ningún beneficio en la práctica. Los motores de búsqueda muestran las versiones de idioma incorrectas a los usuarios, el contenido duplicado diluye tu posicionamiento y pierdes tráfico orgánico en mercados en los que invertiste específicamente.
Los siguientes diez errores representan los fallos de implementación de hreflang más comunes que encontramos en miles de sitios web multilingües. Cada uno incluye una explicación clara de qué sale mal, por qué importa y cómo solucionarlo.
Error 1: Etiquetas recíprocas ausentes
El problema: La página A incluye una etiqueta hreflang que apunta a la página B, pero la página B no incluye una etiqueta hreflang que apunte de vuelta a la página A.
Hreflang requiere confirmación bidireccional. Si tu página en inglés dice "mi equivalente en español está en /es/page/", la página en español en /es/page/ también debe decir "mi equivalente en inglés está en /en/page/". Esta confirmación mutua es la forma en que los motores de búsqueda verifican que la relación es intencional y no un error o intento de manipulación.
Qué sucede: Google ignora el hreflang por completo para el par que carece de reciprocidad. Incluso si tienes 20 páginas localizadas correctamente enlazadas, un solo enlace de retorno faltante rompe la cadena para ese par específico.
Cómo solucionarlo: Asegúrate de que cada página del conjunto hreflang incluya el conjunto completo de enlaces alternos, incluyendo una etiqueta autorreferencial. Si tu página en inglés lista 6 enlaces hreflang, cada página de ese conjunto debe listar los mismos 6 enlaces. Nuestro Generador de etiquetas Hreflang produce automáticamente etiquetas recíprocas para todas las páginas de un conjunto.
Error 2: Hreflang autorreferencial ausente
El problema: Una página incluye etiquetas hreflang apuntando a todas sus variantes de idioma excepto a sí misma.
La documentación de Google establece explícitamente que cada página debe incluir una etiqueta hreflang que apunte a sí misma. Esta autorreferencia no es redundante -- forma parte del mecanismo de validación que los motores de búsqueda usan para confirmar que el conjunto hreflang está completo.
Ejemplo del error:
<!-- En la página en inglés -- falta la autorreferencia -->
<link rel="alternate" hreflang="es" href="https://example.com/es/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
<!-- ¿Dónde está hreflang="en" apuntando a esta página? -->
Cómo solucionarlo: Siempre incluye la página actual en su propio conjunto hreflang:
<!-- Correcto: incluye autorreferencia -->
<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/" />
Error 3: Códigos de idioma o región incorrectos
El problema: Uso de códigos ISO de idioma y región inválidos o incorrectos en los valores hreflang.
Los errores de código más comunes incluyen:
- Usar
ukpara el Reino Unido (el código correcto esen-GB;ukes el código ISO 639-1 para ucraniano) - Usar
jppara japonés (el código de idioma correcto esja;JPes el código de país para Japón) - Usar
brpara portugués brasileño (el código correcto espt-BR;brsolo es el código ISO 639-1 para bretón) - Usar códigos de tres letras como
engodeu(hreflang requiere códigos de dos letras ISO 639-1) - Usar solo un código de país sin prefijo de idioma (por ejemplo,
hreflang="US"es inválido) - Usar guiones bajos en lugar de guiones (por ejemplo,
en_USen vez deen-US)
Cómo solucionarlo: Valida cada valor hreflang contra la lista de códigos de idioma ISO 639-1 y la lista de códigos de país ISO 3166-1 Alpha-2. El formato es siempre {idioma} o {idioma}-{REGIÓN}, con el idioma en minúsculas y la región en mayúsculas, separados por un guion.
Error 4: Discrepancia HTTP vs HTTPS
El problema: Tu sitio sirve páginas a través de HTTPS, pero tus etiquetas hreflang hacen referencia a URLs HTTP (o viceversa).
<!-- El sitio está en HTTPS, pero hreflang usa HTTP -->
<link rel="alternate" hreflang="en" href="http://example.com/en/page/" />
Los motores de búsqueda tratan http://example.com/en/page/ y https://example.com/en/page/ como dos URLs diferentes. Si tu página se sirve en la dirección HTTPS pero el hreflang apunta a la dirección HTTP, Google ve una discrepancia -- el hreflang apunta a una URL que o no existe (si HTTP redirige a HTTPS) o a una página completamente diferente.
Cómo solucionarlo: Audita todas las URLs hreflang para asegurar que el protocolo coincida con el protocolo real de servicio. Si tu sitio funciona con HTTPS (y debería), cada URL en cada etiqueta hreflang debe comenzar con https://. Esto también aplica a las etiquetas canonical, las URLs del sitemap y cualquier otra referencia a tus páginas.
Error 5: Uso de URLs relativas
El problema: Las etiquetas hreflang usan URLs relativas en lugar de URLs absolutas.
<!-- INCORRECTO: URL relativa -->
<link rel="alternate" hreflang="es" href="/es/page/" />
<!-- CORRECTO: URL absoluta -->
<link rel="alternate" hreflang="es" href="https://example.com/es/page/" />
La especificación de hreflang requiere URLs absolutas. Las URLs relativas son ignoradas silenciosamente por los motores de búsqueda. Tu hreflang simplemente no tendrá efecto, y puede que no te des cuenta durante meses porque no hay mensaje de error.
Cómo solucionarlo: Siempre usa URLs totalmente cualificadas que comiencen con https:// (o http:// si tu sitio genuinamente no soporta HTTPS). Esto incluye el protocolo, dominio y ruta completa. Nunca uses URLs con protocolo relativo (//example.com/page/) tampoco -- siempre especifica el protocolo explícitamente.
Error 6: Falta de x-default
El problema: Tu conjunto hreflang no incluye una entrada x-default.
Aunque técnicamente es opcional, omitir x-default significa que los motores de búsqueda no tienen orientación sobre qué mostrar a los usuarios cuyo idioma o región no está cubierto por tu conjunto hreflang. Si tienes versiones en inglés, español y alemán, ¿qué debería ver un usuario japonés?
Sin x-default, Google adivina. A veces muestra la versión en inglés (lo cual podría ser aceptable), pero a veces no muestra nada de tu sitio porque no puede determinar con confianza la coincidencia correcta.
Cómo solucionarlo: Añade una entrada hreflang x-default a cada conjunto de páginas. Apúntala a la página que ofrezca la mejor experiencia de respaldo, típicamente tu versión en inglés o una página con un selector de idioma.
<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/" />
Error 7: Códigos de idioma duplicados en el mismo conjunto
El problema: Incluir múltiples entradas hreflang con el mismo código de idioma-región en el conjunto de etiquetas de una misma página.
<!-- INCORRECTO: dos entradas para "en" -->
<link rel="alternate" hreflang="en" href="https://example.com/en/page-v1/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page-v2/" />
Cuando Google encuentra códigos de idioma duplicados, no puede determinar cuál URL es la correcta para ese idioma. El resultado es impredecible -- Google puede elegir una, alternar entre ellas o ignorar ambas.
Cómo solucionarlo: Cada código idioma-región debe aparecer exactamente una vez por conjunto hreflang. Si tienes dos páginas en inglés que sirven propósitos diferentes, no deberían estar en el mismo conjunto hreflang. Hreflang conecta contenido equivalente entre idiomas, no páginas diferentes dentro del mismo idioma.
Error 8: Etiqueta Canonical apuntando a un idioma diferente
El problema: La etiqueta canonical en una página localizada apunta a la página equivalente en un idioma diferente en lugar de a sí misma.
<!-- En la página en alemán -- INCORRECTO -->
<link rel="canonical" href="https://example.com/en/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
Esto le dice a Google: "La página en alemán es una copia de la página en inglés; por favor, indexa solo la versión en inglés." Google obedece el canonical, desindexara la página en alemán y tu hreflang se ignora. Pierdes tu presencia de búsqueda en alemán por completo.
Este es un error tan crítico y generalizado que hemos escrito una guía dedicada: Hreflang vs Canonical: Cómo trabajan juntos.
Cómo solucionarlo: Cada página localizada debe tener un canonical autorreferencial. El canonical de la página en alemán debe apuntar a la URL en alemán. El canonical de la página en español debe apuntar a la URL en español. Nunca hagas referencias cruzadas de canonicals entre idiomas.
Error 9: Formato incorrecto del sitemap XML para Hreflang
El problema: Implementar hreflang en el sitemap XML pero usando un formato de marcado incorrecto.
Los errores comunes de formato en el sitemap incluyen:
- Olvidar la declaración del namespace
xmlns:xhtmlen el elemento<urlset> - Usar
<link>en lugar de<xhtml:link>dentro de las entradas<url> - Colocar las anotaciones hreflang fuera de los bloques
<url> - No incluir todas las URLs de cada idioma dentro de cada bloque
<url>(cada entrada de URL debe contener el conjunto hreflang completo)
Formato correcto:
<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="x-default"
href="https://example.com/en/page/" />
</url>
</urlset>
Cómo solucionarlo: Valida el XML de tu sitemap contra el esquema antes de enviarlo. Asegúrate de que el namespace xhtml esté declarado, usa <xhtml:link> (no <link>) e incluye el conjunto hreflang recíproco completo dentro de cada bloque <url>.
Error 10: No validar después de la implementación
El problema: Implementar las etiquetas hreflang una vez y nunca comprobar si están funcionando correctamente.
Las implementaciones de hreflang se deterioran con el tiempo. Las páginas se mueven, las URLs cambian, se añaden nuevos idiomas, las plantillas del CMS se actualizan y los desarrolladores hacen cambios sin darse cuenta del impacto en las etiquetas hreflang. Una configuración hreflang que era correcta en el lanzamiento puede estar completamente rota seis meses después.
Las causas comunes de deterioro post-lanzamiento incluyen:
- Cambios de estructura de URL durante un rediseño del sitio que actualizan las URLs de las páginas pero no las referencias hreflang
- Nuevas páginas de idioma añadidas sin actualizar el conjunto hreflang en todas las páginas de idiomas existentes
- Actualizaciones de plugins del CMS que cambian cómo se generan las etiquetas hreflang
- Cambios de configuración del CDN o servidor que alteran el comportamiento de las URLs
- Migraciones de dominio (por ejemplo, pasar de una estructura de subdirectorios a subdominios) sin actualizar las URLs hreflang
Cómo solucionarlo: Establece una rutina de validación regular:
- Usa el informe de Segmentación internacional de Google Search Console para comprobar errores hreflang señalados por Google
- Ejecuta rastreos periódicos con una herramienta que extraiga y cruce las etiquetas hreflang en todo tu sitio
- Valida la reciprocidad -- para cada página, confirma que cada URL que referencia también la referencia de vuelta
- Comprueba después de cada despliegue -- integra la validación hreflang en tu pipeline CI/CD para que las etiquetas rotas se detecten antes de llegar a producción
- Monitoriza el rendimiento de búsqueda por idioma -- una caída repentina de tráfico desde un mercado específico a menudo indica hreflang roto para ese idioma
Resumen
Estos diez errores representan la gran mayoría de los fallos de implementación de hreflang. La buena noticia es que todos son prevenibles con una implementación cuidadosa y validación regular:
- Etiquetas recíprocas ausentes -- cada página debe enlazar a todas las demás páginas del conjunto, y viceversa
- Hreflang autorreferencial ausente -- cada página debe incluirse a sí misma en su propio conjunto hreflang
- Códigos de idioma incorrectos -- usa códigos de idioma ISO 639-1 y códigos de región ISO 3166-1 Alpha-2
- Discrepancia HTTP/HTTPS -- el protocolo debe coincidir con el protocolo real de servicio
- URLs relativas -- siempre usa URLs absolutas que comiencen con
https:// - Falta de x-default -- incluye un respaldo para usuarios en regiones no cubiertas
- Códigos de idioma duplicados -- cada código aparece exactamente una vez por conjunto
- Canonicals entre idiomas -- cada página localizada tiene canonical hacia sí misma, nunca hacia otro idioma
- Formato incorrecto del sitemap -- usa
<xhtml:link>con el namespace correcto - No validar -- comprueba regularmente, automatiza donde sea posible
Usa nuestro Generador de etiquetas Hreflang para producir conjuntos de etiquetas que eviten automáticamente los errores 1 a 7. Para una validación continua, establece una rutina que detecte los problemas antes de que impacten tu visibilidad en buscadores.