Saltar al contenido
SEOAudit
← Volver al blog
SEO técnico

Errores de hreflang en sitios multilingües: cómo detectarlos y corregirlos

SEOAudit8 min de lectura

La mayoría de los errores de hreflang nacen de detalles pequeños: ua en lugar de uk, falta del enlace a la propia página, ausencia de la respuesta desde la otra versión de idioma. Cuando ocurre, Google puede ignorar todo el grupo de anotaciones y quien busca acaba en un idioma que no es el suyo. Aquí verás qué debe contener cada etiqueta, cuáles son los errores de hreflang más habituales y cómo revisar un sitio en pocos minutos.

El atributo indica a un buscador que una página tiene versiones en otros idiomas o para otras regiones. No mejora el posicionamiento: es una pista sobre qué versión mostrar a cada usuario. Por eso un fallo no penaliza el sitio, simplemente anula el beneficio. Los ejemplos salen de este sitio, que se publica en ucraniano (idioma por defecto, sin prefijo en la URL), inglés (/en) y español (/es).

Qué hace hreflang y qué no hace

Cuando existen varias versiones de una página en distintos idiomas, Google debe decidir cuál mostrar. Hreflang ayuda a decidir: enumeras todas las versiones de forma explícita y el buscador elige la que encaja con el idioma o la región del usuario. Google describe el mecanismo en su documentación sobre versiones localizadas.

Conviene conocer los límites. Hreflang no sube una página en los resultados, no sustituye a una traducción real y no une las señales de idiomas distintos. Es una pista de selección, y Google la trata como pista, no como orden. Si dos versiones son casi idénticas, por ejemplo inglés para Estados Unidos y para Reino Unido con el mismo texto, el atributo ayuda a separarlas por región.

Además solo funciona si cada versión se puede rastrear. Si una página de idioma está bloqueada en robots.txt, redirige a otro sitio o lleva noindex, el buscador no puede usarla y la anotación se convierte en una referencia rota. Por eso revisar hreflang empieza siempre por comprobar que todas las direcciones del grupo responden 200 y se pueden indexar.

El tema está pegado a la elección de la dirección principal de cada página, así que merece la pena leer también sobre la etiqueta canonical: ambos mecanismos tienen que coincidir.

Cómo es un conjunto de etiquetas correcto

El método más habitual son los elementos link en el head de cada página. Cada versión lleva la lista completa de versiones, incluida ella misma, más una entrada x-default. Este es el conjunto de este artículo en este sitio:

<link rel="alternate" hreflang="uk" href="https://seoaudit.com.ua/blog/hreflang-guide">
<link rel="alternate" hreflang="en" href="https://seoaudit.com.ua/en/blog/hreflang-guide">
<link rel="alternate" hreflang="es" href="https://seoaudit.com.ua/es/blog/hreflang-guide">
<link rel="alternate" hreflang="x-default" href="https://seoaudit.com.ua/blog/hreflang-guide">

Las mismas cuatro líneas aparecen sin cambios en las versiones en ucraniano, inglés y español. La dirección en ucraniano actúa como uk y como x-default porque es el idioma por defecto. El valor x-default está pensado para usuarios cuyo idioma no figura entre las versiones, o para una página de selección de idioma.

Si una página no tiene traducción en un idioma, ese idioma simplemente se omite del conjunto. No apuntes a otro idioma «por si acaso» ni envíes a la gente a la página de inicio. El conjunto debe describir solo páginas que existen de verdad.

Fíjate también en el atributo lang del elemento html: debe coincidir con el idioma de la página, por ejemplo <html lang="es">. Es una señal distinta, útil para navegadores, tecnologías de asistencia y buscadores, y no sustituye a hreflang.

Códigos de idioma y de región

Un valor de hreflang es un código de idioma ISO 639-1, seguido opcionalmente de un código de región ISO 3166-1 alpha-2. No se permite una región sin idioma. Estos son los casos que aparecen en la práctica:

  • uk para ucraniano. El código ua corresponde al país Ucrania, no al idioma, así que es incorrecto. Los escáneres, incluido el de este sitio, rechazan ua a favor de uk.
  • en para inglés en general, en-GB para Reino Unido, en-US para Estados Unidos. El valor en-UK es incorrecto porque el código ISO 3166-1 del Reino Unido es GB.
  • es para español en general, es-MX para México, es-ES para España.
  • x-default no es un idioma, sino un valor especial para la versión de reserva.

Las variantes regionales solo tienen sentido cuando los textos de verdad cambian: moneda, condiciones legales, vocabulario. Si tienes una única traducción al español para todos los países, basta con es. Añadir regiones «para completar» solo crea más sitios donde equivocarse.

Tampoco des dos valores distintos al mismo idioma en una misma página. Dos entradas en que apuntan a direcciones diferentes generan un conflicto, y Google elegirá una de ellas.

Tres formas de declarar hreflang

Google admite tres métodos y su documentación aconseja elegir uno.

Elementos link en el head

La opción más sencilla para sitios y blogs corrientes. Las etiquetas forman parte del HTML de cada página y se ven con «ver código fuente». El inconveniente es que con muchos idiomas el head crece.

Cabecera HTTP

Sirve para archivos que no son HTML, como los PDF. El valor viaja en la cabecera Link de la respuesta del servidor. En páginas normales se usa poco, porque es más difícil de notar al revisar.

Mapa del sitio XML

En el sitemap, cada url recibe elementos xhtml:link con todas las versiones. Resulta cómodo en sitios grandes porque el marcado está en un solo lugar. El formato se explica en la guía de sitemap.xml.

El consejo principal es no combinar métodos sin motivo. Si el HTML dice una cosa y el sitemap otra, el resultado es difícil de predecir. Elige un método, mantén una sola fuente de verdad y genera todas las versiones a partir de los mismos datos.

Los errores de hreflang más comunes

Estos son los problemas que se repiten en sitios multilingües y lo que provoca cada uno.

ErrorQué ocurre
Código incorrecto como ua o en-UKEl valor no se reconoce y la entrada se ignora
Falta el enlace a la propia páginaEl grupo queda incompleto y es más difícil de interpretar
Falta el enlace de retornoSi A apunta a B y B no apunta a A, las anotaciones pueden ignorarse
La dirección redirige o devuelve 404El buscador no puede usar esa versión
La dirección no es la canonicalLas señales se contradicen
hreflang en una página noindexLa página no se indexará, así que la anotación no sirve
Direcciones relativas como /en/pageSe necesitan URL absolutas con https y dominio
Métodos mezclados o conjuntos distintos en HTML y sitemapLas fuentes entran en conflicto
Conjunto parcial al que le falta un idiomaAlgunas versiones quedan fuera del grupo
Título traducido pero cuerpo en el idioma originalLa versión no corresponde al idioma que declara

El último error es traicionero. Técnicamente todo está bien, pero quien abre la página «en inglés» ve texto en ucraniano. Hreflang no arregla problemas de contenido, así que anota solo versiones completamente traducidas.

Otra trampa es la redirección automática según la IP o la cabecera Accept-Language. Si el servidor obliga a visitantes y rastreadores a pasar al idioma «correcto», el buscador puede no ver nunca las demás versiones. Ofrece un selector de idioma con enlaces en vez de imponer la elección.

Cómo interactúa hreflang con canonical, noindex y redirecciones

Tres mecanismos chocan a menudo, así que conviene mirarlos juntos.

Canonical. Cada versión de idioma debe apuntar su canonical a sí misma. Si la página en inglés declara rel="canonical" hacia la de ucraniano, le dices a Google que la inglesa no es una versión independiente, y una entrada hreflang para ella lo contradice. Nunca canonicalices un idioma hacia otro. La guía de la etiqueta canonical explica cómo elegir la dirección correcta.

Noindex. Una página con noindex queda fuera del índice, así que mencionarla en hreflang no tiene sentido. Si una traducción aún no está lista y se mantiene fuera del índice, quítala del conjunto hasta que se publique.

Redirecciones. Una dirección en hreflang debe responder 200 directamente. Si /en/page redirige a /en/page/, la dirección final es la que va en el conjunto. Es fácil pasarlo por alto tras cambiar la estructura de URL.

Robots.txt. Una página bloqueada para el rastreo no se puede comprobar, de modo que el enlace de retorno que contiene nunca se leerá. Asegúrate de que ninguna versión de idioma caiga bajo una regla de robots.txt.

El principio general es simple: toda dirección del grupo es accesible, indexable, autocanónica y responde 200. La mayoría de los demás errores se derivan de romper esa regla.

Cómo comprobar hreflang a mano

Para un sitio pequeño bastan un navegador y una terminal.

  1. Abre cada versión de idioma y mira el código fuente. Localiza todos los hreflang del head y compara los conjuntos: deben ser idénticos en todas las versiones.
  2. Extrae las etiquetas rápidamente desde la terminal:
curl -s https://example.com/en/page | grep -i hreflang
  1. Para cada dirección del conjunto, comprueba el código de respuesta y que no haya redirección, por ejemplo con curl -sI.
  2. Revisa rel="canonical" y la metaetiqueta robots en cada versión.
  3. Si hreflang está en el sitemap, ábrelo y confirma que cada url enumera todas las versiones, ella misma incluida.
  4. En Google Search Console usa la inspección de URL: muestra qué página eligió Google como canónica y si la versión está indexada.

En un sitio con decenas de idiomas o miles de páginas la revisión manual no escala, así que genera el conjunto desde una sola fuente de datos y pruébalo de forma automática. La lista completa de comprobaciones técnicas está en la lista de verificación de SEO técnico.

Qué comprueba el escáner de SEOAudit

El escáner de SEOAudit es pasivo: lee la dirección que le indicas y unos pocos recursos públicos de apoyo. No es un rastreo de todo el sitio ni una medición de posiciones. En hreflang comprueba lo siguiente:

  • la sintaxis de los valores, donde el código ua se rechaza a favor de uk;
  • la referencia a la propia página;
  • las entradas duplicadas para un mismo idioma;
  • el conflicto entre hreflang y canonical;
  • la reciprocidad: el escáner descarga como máximo tres alternativas declaradas por la página y comprueba que enlazan de vuelta, así que en un conjunto grande solo se verifica una muestra;
  • la recomendación de añadir x-default.

Si una página no tiene hreflang, la comprobación se marca como no aplicable, no como superada. El escáner tampoco prueba hreflang en sitemaps o cabeceras HTTP más allá de lo que declara la propia página, y no rastrea todo el sitio.

Para ver el resultado en tu propia página, ejecuta el escáner gratuito. Una visión más amplia de las comprobaciones técnicas está en la página de auditoría SEO, las comprobaciones relacionadas de HTTPS y cabeceras se describen en la página de comprobación de seguridad, y la preparación para la búsqueda con IA se trata en visibilidad en IA.

Hreflang funciona cuando cada versión de idioma existe, es accesible y aparece listada de forma idéntica en todas las páginas del grupo. Empieza revisando códigos y enlaces de retorno, y luego ejecuta el escáner gratuito en tu página para ver lo que ve un buscador.

Preguntas frecuentes

¿Afecta hreflang al posicionamiento?

No, hreflang no mejora el posicionamiento. Solo sugiere a Google qué versión de idioma o región mostrar a cada usuario. Los errores no penalizan el sitio, pero reducen la probabilidad de que una persona llegue a la página en su propio idioma.

¿Debo usar uk o ua para ucraniano?

Usa uk, el código de idioma ISO 639-1. El código ua corresponde al país Ucrania, así que en hreflang es incorrecto. Se puede añadir una región tras el idioma, como uk-UA, pero normalmente basta con uk.

¿Necesito x-default si solo tengo dos idiomas?

No es obligatorio, pero se recomienda. La entrada x-default indica la versión de reserva para usuarios cuyo idioma no admites, o una página de selección de idioma. Suele ser la versión en el idioma por defecto.

¿Qué hago si una traducción aún no está lista?

Déjala fuera del conjunto hreflang y no publiques una página vacía de relleno. Mantén solo las versiones que existen. Cuando la traducción se publique, añádela a todas las páginas del grupo a la vez para que los enlaces de retorno coincidan.

  • SEO técnico

    8 min de lectura

    Checklist SEO técnico: qué revisar en una auditoría SEO web

    Una auditoría técnica rinde más si sigue un orden: ¿se puede rastrear, indexar, entender, cargar rápido y abrir con seguridad? Este checklist explica cada paso y qué puede y qué no puede decirte un análisis pasivo.

    Leer artículo

  • SEO técnico

    7 min de lectura

    Sitemap XML: qué incluir, errores frecuentes y cómo comprobarlo

    Un sitemap es la lista de URL que quieres que los buscadores encuentren. Es sencillo hasta que incluye redirecciones, páginas noindex o el host equivocado. Qué necesita el archivo, qué lo rompe y cómo verificarlo.

    Leer artículo

¿Necesita una auditoría de seguridad?

Nuestros expertos están a su disposición. Auditoría web, infraestructura, cumplimiento de NIS2...