Por ejemplo, errores en el formato del código de idioma o rutas de enlace incompletas pueden impedir que los motores de búsqueda identifiquen correctamente el idioma o la región de la página, e incluso provocar que las páginas multilingües compitan entre sí por el tráfico, perdiendo a la audiencia objetivo.
Este artículo resume, desde un punto de vista técnico y práctico, los 7 errores más comunes en la configuración de hreflang. Se recomienda usar herramientas para verificarlo periódicamente, evitando que pequeños errores afecten el rendimiento global del SEO.

Errores en el formato del código de idioma o región
Por ejemplo, usar mayúsculas (como EN-US
) o cometer errores ortográficos (como escribir zh-CN
como zh-CH
) puede hacer que los motores de búsqueda no puedan interpretar correctamente la región objetivo de la página, e incluso considerar la etiqueta como inválida.
Incluso si el código parece correcto (como usar es-ES
en lugar de es
), la información redundante puede afectar la lógica de correspondencia.
El impacto puede ser significativo; por ejemplo, el tráfico de búsqueda de usuarios en España podría asignarse erróneamente a la página en portugués.
Reglas de los códigos según las normas ISO
- Código de idioma: debe usarse en minúsculas según la norma ISO 639-1 (por ejemplo,
en
, es
, zh
), solo se permiten dos letras. - Código de región: opcional, debe usarse en mayúsculas según la norma ISO 3166-1 (por ejemplo,
US
, GB
, CN
), solo se aceptan abreviaturas de países/regiones. - Formato combinado: el idioma y la región se separan con un guion, por ejemplo,
en-US
(inglés estadounidense), zh-CN
(chino simplificado).
Casos excepcionales:
- Cuando solo se incluye el código de idioma (por ejemplo,
fr
), indica que la página está dirigida a todos los usuarios que hablan ese idioma, sin restricción regional. - Para el chino tradicional, se debe usar
zh-Hant
(chino tradicional) o zh-Hant-TW
(chino tradicional de Taiwán), en lugar de zh-TW
para evitar confusión con el chino simplificado de Taiwán.
Errores comunes y sus consecuencias
Error 1: Mezcla incorrecta de mayúsculas y minúsculas
- Ejemplos de errores:
EN-us
(idioma en mayúsculas + región en minúsculas), Zh-cn
(primera letra en mayúscula). - Consecuencia: los motores de búsqueda podrían ignorar por completo la etiqueta, lo que provocaría que la página no coincida con la audiencia objetivo.
Error 2: Errores ortográficos o códigos inventados
- Ejemplos de errores:
pt-BZ
(el código correcto para Brasil es BR
), eu
(aunque es el código del idioma vasco, algunos motores de búsqueda pueden no reconocer idiomas poco comunes). - Consecuencia: el uso de idiomas poco frecuentes o códigos incorrectos puede hacer que la página no se indexe correctamente, perdiendo tráfico hacia la página predeterminada.
Error 3: Códigos redundantes o combinaciones incorrectas
- Ejemplos de errores:
es-ES
(español + España, en muchos casos basta con es
), en-US-UK
(combinación inválida de varias regiones). - Consecuencia: la información redundante puede confundir a los motores de búsqueda, que podrían preferir páginas competidoras más simples.
Herramientas recomendadas y métodos de verificación
- Herramienta de prueba de hreflang de Google: ingresa la URL para verificar si el código es reconocido (requiere Search Console).
- Screaming Frog: escanea el sitio web, filtra las etiquetas hreflang y exporta los errores en masa (requiere versión de pago).
- Hreflang Validator (herramienta de terceros): verificación gratuita en línea que detecta errores de formato y conflictos de enlaces.
Pasos prácticos para la corrección
Revisa los códigos existentes: en sitios de WordPress, puedes usar plugins (como Yoast SEO) o revisar el código fuente de la página directamente para localizar la etiqueta <link rel="alternate" hreflang="..." />
.
Sustitución masiva de códigos incorrectos:
- Si utilizas un plugin multilingüe (como WPML), modifica directamente el formato del “código de idioma” en la configuración de idioma.
- Al modificar manualmente, asegúrate de que todas las páginas tengan un formato unificado (por ejemplo, reemplazar globalmente
EN
por en
).
Agregar código regional (opcional):
- Solo añádelo cuando sea necesario segmentar regiones (como
en-GB
para usuarios del Reino Unido), de lo contrario conserva solo el código de idioma (como fr
).
Revalidación:Usa herramientas para comprobar nuevamente, asegurándote de que las páginas corregidas devuelvan un código 200 y no tengan errores de rastreo.
No usar URLs absolutas completas
Muchos administradores de sitios piensan erróneamente que las rutas relativas (como /de/page
) o la omisión del protocolo (como example.com/de
) simplifican la configuración, pero en realidad pueden causar problemas graves.
Por ejemplo, si una página existe en versiones http
y https
, no especificar el protocolo puede hacer que el motor lo interprete como dos páginas independientes, dispersando la autoridad.
Además, en sitios con subdominios o estructuras de subdirectorios, no usar URLs completas puede causar ambigüedad en las rutas y que las etiquetas no funcionen correctamente (por ejemplo, mezclar URLs de móvil y escritorio).
Definición y necesidad de URLs absolutas
URL absoluta debe incluir protocolo (http://
o https://
), dominio completo y ruta (como https://www.example.com/de/page
).
Necesidad:
- Los motores de búsqueda necesitan distinguir claramente entre diferentes páginas. Las rutas relativas (como
/de/page
) pueden interpretarse como cualquier versión del dominio (http o https), causando contenido duplicado. - En subdominios o subdirectorios, no usar URLs absolutas puede hacer que los motores confundan la pertenencia de la página (por ejemplo,
de.example.com/page
y www.example.com/de/page
pueden considerarse páginas diferentes).
Escenarios típicos de problemas:
- Una página existe en versiones http y https, pero hreflang no incluye el protocolo, dispersando autoridad.
- Contenido compartido entre móvil y escritorio con estructuras de URL diferentes (como
m.example.com/de
y example.com/de
) sin usar URLs absolutas para enlazarlas.
Errores comunes y consecuencias
Error 1: rutas relativas o falta de protocolo
Ejemplos incorrectos:
<link hreflang="de" href="/de/page" />
(ruta relativa)<link hreflang="es" href="www.example.com/es/page" />
(sin https://
)
Consecuencias:
- Los motores pueden interpretar
/de/page
como http://example.com/de/page
, pero la página real está en https, causando fallo en la etiqueta. - Las versiones http y https se consideran entidades separadas, causando contenido duplicado y dispersión de autoridad.
Error 2: no unificar subdominios
- Ejemplo incorrecto: el sitio principal usa
https://example.com/fr/page
, pero el subdominio francés usa otro URL.
https://fr.example.com/page
y las etiquetas hreflang no apuntan a URLs absolutas mutuamente.Consecuencia: Los motores de búsqueda no pueden relacionar el subdominio con las páginas del sitio principal, por lo que los usuarios francófonos pueden ser dirigidos a la página del idioma predeterminado.Error 3: Parámetros dinámicos no estandarizados
- Ejemplo de error:
<link hreflang="ja" href="https://example.com/page?lang=ja" />
(con parámetros de seguimiento) - Consecuencia: Los motores pueden considerar estas URLs como páginas diferentes (por ejemplo,
?lang=ja
y ?lang=ja&utm=ads
), causando una cobertura incompleta de las etiquetas hreflang.
Métodos de detección con herramientas
- Google Search Console:
Revise en el informe de cobertura errores por “páginas duplicadas” o “hreflang no marcado” para identificar URLs incompletas. - Screaming Frog:
Después de rastrear el sitio, filtre las etiquetas hreflang
y verifique que todos los atributos href
sean URLs absolutas (filtros: //example.com
o /path
). - Sitebulb:
En el informe de auditoría SEO internacional, indica directamente “URLs hreflang incompletas” con sugerencias para corregirlas.
Soluciones y pasos prácticos
Sistemas CMS (como WordPress):
Configuración del plugin:
Si utiliza plugins como Yoast SEO, active la opción “generar URLs absolutas” en la configuración multilingüe (normalmente debe desactivar “rutas relativas”).
Reemplazo masivo en base de datos:
Mediante comandos SQL o plugins (como Better Search Replace), reemplace href="/
por href="https://www.example.com/
.
Corrección manual de código:
En el HTML o en la lógica del servidor, asegúrese de que todos los enlaces hreflang sean URLs completas, por ejemplo:
Configuración del servidor:
- Forzar protocolo unificado: mediante
.htaccess
o configuración de Nginx, redirija automáticamente http
a https
para evitar contenido mixto. - URL canónica: agregue redirecciones 301 para diferentes rutas que apuntan al mismo contenido (como
/de
y /de/
) para asegurar una única URL absoluta.
Falta la etiqueta hreflang de autorreferencia
Por ejemplo, si una página en francés solo tiene enlaces a versiones en inglés o español, pero no declara hreflang="fr"
que apunta a sí misma,
los motores de búsqueda pueden no reconocer correctamente el idioma de la página, lo que provoca que no se clasifique adecuadamente para usuarios francófonos.
Función y necesidad de la etiqueta hreflang autorreferencial
La etiqueta autorreferencial es una declaración hreflang dentro de la página que apunta a sí misma (por ejemplo, la página en francés debe incluir <link rel="alternate" hreflang="fr" href="URL de la página"/>
).
Funciones principales:
- Define claramente a los motores de búsqueda el idioma y región a la que pertenece la página, evitando errores de clasificación.
- Forma un enlace cerrado entre las versiones en diferentes idiomas para asegurar la correcta transmisión de autoridad entre las páginas.
Consecuencias de la falta:
- Los motores de búsqueda pueden considerar la página como “sin idioma declarado” y asignarla por defecto al directorio principal del idioma, lo que provoca pérdida de tráfico de usuarios objetivo.
- En escenarios de competencia multilingüe (por ejemplo, páginas en inglés y español sin autoreferencia), podría desencadenar problemas de contenido duplicado interno.
Escenarios comunes de error y análisis de casos
Error 1: Uso incorrecto de hreflang en sitios de un solo idioma
- Escenario: Página con una sola versión de idioma, pero se agrega hreflang que apunta a versiones en otros idiomas inexistentes.
- Ejemplo de consecuencias: Una página de un sitio solo en inglés añade
hreflang="en"
apuntando a sí misma, pero también enlaza erróneamente a una página con hreflang="es"
que no existe, causando confusión en los motores de búsqueda.
Error 2: Omisión en la configuración del plugin multilingüe
- Ejemplo de escenario: Al usar el plugin WPML, no se selecciona la opción “Generar hreflang autorreferencial automáticamente”.
- Consecuencia: Las etiquetas generadas solo incluyen enlaces a otras versiones de idiomas, faltando la declaración de la página actual.
Error 3: Página dinámica sin carga completa de etiquetas
- Ejemplo de escenario: En páginas basadas en JavaScript (como React/Vue), la etiqueta hreflang no se inyecta correctamente en el
<head>
. - Consecuencia: Los rastreadores de motores de búsqueda pueden no reconocer la etiqueta autorreferencial generada dinámicamente.
Herramientas y métodos de detección
Paso 1: Revisión manual del código fuente
- Presione
Ctrl+U
para ver el código fuente, busque hreflang="xx"
para confirmar si existe una etiqueta que apunte a la URL actual (nota: xx
es el código de idioma actual).
Paso 2: Validación con Google Search Console
- En la herramienta “Inspección de URL”, ingrese la URL de la página y consulte el informe de “Orientación internacional”. Si muestra “No se detectó etiqueta hreflang autorreferencial”, existe el problema.
Paso 3: Herramienta Hreflang Validator
- Ingrese la URL de la página, la herramienta listará todos los enlaces hreflang relacionados y marcará en rojo la falta de etiquetas autorreferenciales.
Soluciones y pasos prácticos
Corrección en CMS (ejemplo con WordPress):
Configuración del plugin:
- Si usa Yoast SEO: active “Agregar hreflang autorreferencial” en la configuración avanzada.
- Si usa WPML: vaya a “Configuración de idioma” → “Opciones SEO” y marque “Incluir enlace propio”.
Corrección manual (sitios estáticos o código personalizado):
Agregue el siguiente código dentro del <head>
(ejemplo para página en francés):
Corrección de páginas renderizadas dinámicamente (como React):
En la lógica de renderizado del lado del servidor (SSR), se genera dinámicamente la etiqueta de auto-referencia según el idioma actual de la página:
Principio y necesidad del enlace cerrado
La regla principal de hreflang es que todas las páginas vinculadas deben apuntarse mutuamente, formando un circuito cerrado completo. Por ejemplo:
- La página en alemán (
de
) debe apuntar a la versión en inglés (en
), francés (fr
) y otros idiomas; - Las páginas en inglés y francés también deben apuntar de vuelta a la alemana.
Necesidad:
- Transmisión de autoridad: El enlace cerrado ayuda a los motores de búsqueda a entender que las páginas multilingües son equivalentes, evitando dispersión de autoridad.
- Prevención de contenido duplicado: Si solo hay enlaces unidireccionales (por ejemplo, la página en inglés apunta a la alemana, pero la alemana no apunta a la inglesa), los motores pueden considerar las páginas como contenido independiente y penalizar por contenido duplicado.
Excepciones:
- Las páginas en un solo idioma (por ejemplo, solo en inglés) no necesitan un enlace cerrado, pero sí una auto-referencia.
- Las variantes regionales (como
en-US
y en-GB
) deben apuntarse entre sí, pero no es obligatorio enlazar con otros idiomas.
Escenarios comunes de enlaces rotos y consecuencias
Escenario 1: Añadir una versión de idioma nueva sin actualizar las páginas antiguas
- Ejemplo: Un sitio de noticias añadió una página en japonés (
ja
), pero las páginas originales en inglés y chino no añadieron enlaces hreflang a la página japonesa. - Consecuencia: La página japonesa queda “aislada” y los motores de búsqueda solo indexan las otras páginas vinculadas.
Escenario 2: Defecto en la lógica de plugins del CMS
- Ejemplo: Plugins multilingües en WordPress (como Polylang) al generar páginas en lote no agregan automáticamente enlaces a nuevos idiomas en contenido antiguo.
- Consecuencia: Algunas páginas pierden la vinculación y los usuarios no pueden cambiar a la nueva versión lingüística desde contenido antiguo.
Escenario 3: Parámetros dinámicos causan fallos en el enlace
- Ejemplo: La URL de la página en español incluye parámetros (como
?lang=es
), pero otras páginas no incluyen este parámetro en hreflang. - Consecuencia: Los motores ven la página con parámetro
es
como contenido no relacionado con las otras versiones de idioma.
Herramientas de detección y métodos de inspección
Herramienta 1: Screaming Frog
- En los resultados del rastreo, entra en la pestaña “Hreflang” y filtra por “Missing Reciprocal Links” (enlaces recíprocos faltantes).
- Acción: Exporta la lista de errores para localizar grupos de URL sin enlace cerrado.
Herramienta 2: Sitebulb
- En el informe “Auditoría SEO Internacional”, revisa la alerta “Unreciprocated hreflang links” que muestra páginas rotas y los idiomas faltantes.
Herramienta 3: DeepCrawl
- Configura reglas personalizadas para monitorear la vinculación entre páginas multilingües y recibir reportes automáticos semanales sobre problemas de enlaces rotos.
Soluciones y pasos prácticos
Solución 1: Corrección masiva mediante plugin CMS (ejemplo Shopify)
En la configuración del plugin multilingüe (como Langify), activa la opción “Asociar automáticamente todas las versiones de idioma”.
En la sección de “Configuración de la plantilla”, asegúrese de que la lógica de la etiqueta hreflang incluya un bucle que recorra todas las versiones de idioma:
Solución 2: Corrección manual del código (sitio estático)
Cree una lista de asociaciones para cada versión de idioma (por ejemplo, un archivo Excel) que enumere todos los grupos de URL que necesitan enlazarse entre sí.
Agregue las etiquetas en la página según la lista, por ejemplo:
También sincronice las etiquetas hreflang en las páginas en alemán y francés para incluir enlaces a la página en inglés.
Solución 3: Automatización del lado del servidor (por ejemplo, Nginx)
Genere dinámicamente las etiquetas hreflang mediante un proxy inverso y reglas de mapeo:
Conflictos con las etiquetas Canonical
Por ejemplo, si la página de un producto en alemán tiene una etiqueta Canonical que apunta a la página principal en inglés, los motores de búsqueda considerarán que la página en alemán es una copia de la página en inglés y no la mostrarán a los usuarios de habla alemana.
Un problema más común es que muchos sistemas CMS configuran por defecto todas las versiones de idioma para apuntar con Canonical a la página principal del idioma principal (por ejemplo, x-default
), lo que impide que otras páginas de idiomas se indexen de forma independiente.
Principio de conflicto y reglas de prioridad
Orden de prioridad que siguen los motores de búsqueda para procesar las etiquetas hreflang y Canonical:
Canonical tiene prioridad: si la página A tiene un Canonical que apunta a la página B, los motores de búsqueda considerarán A como una copia de B, incluso si A tiene una declaración hreflang, esta será ignorada.
Escenarios en los que hreflang no funciona:
- La página en francés tiene un Canonical que apunta a la página en inglés → la página en francés no se mostrará a los usuarios franceses.
- Las páginas multilingües tienen un Canonical unificado que apunta a la página principal → todas las versiones de idioma se consideran contenido duplicado.
Regla de excepción:
- Si la etiqueta Canonical apunta a sí misma (es decir,
<link rel="canonical" href="URL de la página actual"/>
), hreflang funcionará correctamente.
Escenarios típicos de errores y consecuencias
Error 1: Conflicto en la configuración predeterminada de plugins multilingües
- Ejemplo: El plugin Yoast SEO de WordPress por defecto hace que la etiqueta Canonical de las páginas multilingües apunte a la página del idioma principal. Por ejemplo, la página en alemán tiene el Canonical:
<link rel="canonical" href="https://example.com/en/page"/>
. - Consecuencia: La página en alemán es considerada una copia de la página en inglés y no aparece en los resultados de búsqueda en alemán, causando una pérdida de tráfico superior al 50%.
Error 2: Interferencia de parámetros dinámicos
- Ejemplo: URLs con parámetros (como
example.com/page?lang=de
) tienen el Canonical apuntando a la versión sin parámetros (example.com/page
), pero esta última no está configurada con hreflang. - Consecuencia: La página en alemán con parámetros no se indexa, y los usuarios solo ven la página en el idioma predeterminado al buscar.
Error 3: Variantes regionales no declaradas independientemente
- Ejemplo: La página
en-US
tiene el Canonical apuntando a la página de inglés general (en
), haciendo que los motores consideren que la página en inglés americano no tiene valor independiente. - Consecuencia: Los usuarios en EE. UU. pueden ser dirigidos a la página
en
(por ejemplo, inglés británico), reduciendo la experiencia de localización.
Herramientas de detección y métodos de inspección
Herramienta 1: Google Search Console
- Accede al informe de “Cobertura”, filtra en la pestaña “Excluidos” por “Páginas duplicadas” o “Enviadas pero no indexadas” y verifica si hay fallos en hreflang causados por conflictos de Canonical.
Herramienta 2: Screaming Frog
- Tras rastrear el sitio, filtra páginas que tengan tanto etiquetas hreflang como Canonical, y revisa si el Canonical apunta a otra página (no a sí misma).
- Exporta los datos y filtra con la condición:
Canonical != Self-URL
.
Herramienta 3: DeepCrawl
- Configura reglas de alerta personalizadas que se activen cuando hreflang y el objetivo Canonical no coincidan.
Plan de corrección y pasos prácticos
Plan 1: Corrección mediante plugins CMS (ejemplo Yoast SEO)
- En la configuración multilingüe, desactiva la opción “Canonical unificado apuntando al idioma principal”.
- En “Configuración avanzada”, activa “Generar etiquetas Canonical independientes para cada versión de idioma”.
Plan 2: Corrección manual de código
En la sección <head>
, asegúrate de que la etiqueta Canonical apunte a la URL propia, por ejemplo:
Plan 3: Configuración del servidor (ejemplo Nginx)
Generar dinámicamente la etiqueta Canonical que coincida con la versión del idioma actual:
Por ejemplo, páginas generadas dinámicamente que no cargan el HTML completo por timeout del servidor, causando ausencia de etiquetas hreflang en <head>
;
O páginas móviles que retornan redirección temporal 302 en lugar de código 200, lo que puede hacer que los motores de búsqueda ignoren la marca;
Algunas reglas de CDN o firewall bloquean solicitudes de crawlers, lo que impide que páginas de idiomas regionales sean accesibles.
Por ejemplo, una página en español puede generar múltiples URLs con diferentes parámetros (como /es/page?ref=facebook
y /es/page?ref=email
), que los motores consideran páginas independientes, causando duplicación de contenido.