Hreflang explicado, sin misticismos

«¿Por qué Google le muestra mi página en inglés a alguien que busca en francés?» es casi siempre un problema de hreflang — y casi siempre pequeño y silencioso. Hreflang es una idea sencilla que falla en silencio: te equivocas un poco y nada da error, nada te avisa, los buscadores simplemente dejan de respetarlo. Esto es lo que hace, las pocas formas en que se rompe, y cómo comprobar el tuyo a mano.

Marketing y CRM en el panel de Olmira

Qué hace realmente hreflang

Una anotación hreflang es una pista en una página que dice, en esencia: «esta URL y esa otra URL son el mismo contenido, en idiomas distintos (opcionalmente para regiones distintas); cuando alguien busque en ese idioma, plantéate servirle esa otra URL». Se implementa como un conjunto de etiquetas (en el de la página, o de forma equivalente en un sitemap XML), una por cada variante de idioma o región, todas apuntándose entre sí.

Los fallos que hay detrás de casi todas las quejas de «idioma equivocado»

Los errores de hreflang comparten un rasgo: ninguno provoca un error en ninguna parte. La página sigue cargando. Las etiquetas siguen ahí. Simplemente están mal de una forma que solo detecta un buscador — o una revisión humana cuidadosa.

Etiquetas no recíprocas Si la página A declara una alternativa que apunta a la página B, pero la página B no declara ninguna que apunte de vuelta a A, el par está roto — y el comportamiento documentado de los principales buscadores es desconfiar de las anotaciones no recíprocas o ignorarlas, en lugar de respetarlas parcialmente. Este es el fallo de hreflang más habitual en la práctica, porque es fácil añadir una página en un idioma nuevo y olvidarse de actualizar el conjunto de etiquetas de todos los demás idiomas para que la referencien.

Etiquetas que apuntan a una URL no canónica, que redirige o que devuelve un 404 Una alternativa tiene que apuntar a la versión real, activa y canónica de la página de ese idioma — no a una URL antigua que ahora redirige, ni a una URL que exige iniciar sesión o que devuelve un error a un rastreador.

Cobertura parcial dentro de un clúster Un hreflang bien puesto en algunas páginas de una sección traducida pero ausente en otras produce una señal incoherente en todo el clúster, lo que tiende a erosionar la confianza en las etiquetas que son correctas.

Etiquetas duplicadas o contradictorias procedentes de varias fuentes En sitios donde más de un fragmento de código puede inyectar etiquetas en la cabecera — un script a nivel de página y una plantilla global, por ejemplo — una carrera entre ambos puede dejar etiquetas hreflang duplicadas o contradictorias en el marcado final. Es una clase de fallo real y sutil precisamente porque resulta invisible en una comprobación visual rápida de la página renderizada; solo aparece leyendo con atención el código fuente del .

Hreflang sin la entrada correspondiente en el sitemap Los buscadores usan el sitemap como señal de prioridad de rastreo; una URL declarada como alternativa de idioma pero que nunca aparece en el sitemap puede sencillamente rastrearse más tarde, o con menos frecuencia, que las páginas que de verdad intentas posicionar.

Cómo revisar tu propia web a mano

No hace falta ninguna herramienta especial para una primera pasada. Mira el código fuente de la página — el fuente real, no solo el DOM renderizado — y busca cada etiqueta . Para dos o tres pares de idiomas, confirma que cada una apunta de vuelta: si /page declara hreflang="es" apuntando a /es/page, abre /es/page y confirma que declara una etiqueta que apunta de vuelta a /page. Luego confirma que existe exactamente un x-default y que resuelve a una página que funciona, y que cada URL del conjunto carga directamente — sin redirección, sin 404 — y coincide con la canónica de esa propia página. En un sitio pequeño, esta pasada manual detecta la mayoría de los errores reales.

Cómo es una configuración de hreflang correcta

1

Cada variante, recíproca

Cada versión de idioma de una página enumera todas las demás versiones de idioma —incluida ella misma— como alternativas, de modo que el conjunto es plenamente recíproco y no una suposición en una sola dirección.

2

Un único x-default, siempre resoluble

Exactamente una alternativa está marcada como x-default, y apunta a una página real y funcional, normalmente la versión en tu idioma predeterminado.

3

Canónica propia en cada idioma

La etiqueta canonical de cada versión lingüística apunta a sí misma, no a la versión en el idioma predeterminado: una página no debería declararse a la vez alternativa y duplicado canónico de otra URL.

4

Generado, no mantenido a mano

En cualquier sitio con más de un puñado de páginas, escribir a mano conjuntos de etiquetas recíprocas para cada par de idiomas es exactamente el tipo de tarea que se desvía en silencio. Generar el conjunto desde una única fuente de verdad (la lista de idiomas declarada de la página) mantiene coherentes las etiquetas de todas las páginas por construcción.

El editor web en el panel de Olmira

Cómo lo resuelve Olmira

Las alternativas hreflang y x-default de un sitio de Olmira se generan a partir de una sola fuente — la lista de idiomas declarada de la página — en cuanto hay dos o más idiomas activos. La reciprocidad es un subproducto de cómo se construyen las etiquetas, no algo redactado página a página, y las etiquetas se emiten una vez, de forma centralizada, para cada ruta — precisamente para evitar el modo de fallo de etiquetas duplicadas y en carrera de arriba.

x-default resuelve siempre a la propia URL sin prefijo del idioma predeterminado del sitio, y cada versión de idioma lleva su propia canónica autorreferenciada. Qué idiomas mantener, y qué tan completo debe estar cada uno antes de publicarlo, sigue siendo tu criterio — esa es la guía de estructura multilingüe; la mecánica de las etiquetas se gestiona igual en cada página de el creador de sitios web.

Deja que las etiquetas se gestionen solas

Cada idioma que añades recibe automáticamente un hreflang correcto y recíproco: sin listas de etiquetas mantenidas a mano.