Guía de hreflang: implementación, errores reales y cómo auditarlo ahora que GSC ya no te ayuda

Publicado

Autor

La mayoría de guías de hreflang te explican qué es y te dejan justo donde empiezan los problemas. A mí me ha tocado pelearme con el hreflang en sitios reales, romperlo sin querer y volver a arreglarlo, el de mi propia web incluido. De ahí sale esta guía: de lo que falla en producción y de cómo detectarlo ahora que Google te ha quitado la herramienta que antes te avisaba.

Va a tener código, errores con su corrección al lado, y una checklist al final que puedes guardar. Lo básico lo despacho rápido, que es lo que ya encuentras en cualquier sitio.

Qué es hreflang (y qué no hace)

El atributo hreflang es una anotación HTML que le indica a Google qué versión de idioma o región de una página debe mostrar a cada usuario. Si tienes una página en español para España, otra en inglés y otra en catalán, hreflang es lo que evita que Google le enseñe la catalana a alguien que busca en castellano.

guia-hreflang-diagrama

Ahora el matiz que casi ninguna guía aclara, y que te ahorra disgustos: hreflang no mejora tu posicionamiento. No es una señal de ranking. No vas a subir posiciones por implementarlo. Lo único que hace, y no es poco, es desambiguar: le dice a Google cuál de tus versiones casi idénticas mostrar a cada quién, y de paso te protege de que esas versiones se canibalicen entre ellas como contenido duplicado. Quien te venda hreflang como palanca de tráfico te está vendiendo otra cosa.

La teoría es simple. Donde todo se rompe es en la implementación.

Cómo se implementa: los tres sitios donde puede vivir

Google admite hreflang en tres ubicaciones, y eliges una según tu caso:

En el <head> del HTML. La más común, porque muchos plugins lo hacen así por defecto. Cada página incluye un bloque que lista todas sus versiones, incluida ella misma. Es cómoda en sitios pequeños y se vuelve pesada a medida que creces, porque cada página nueva arrastra todo el bloque.

En el sitemap XML. Mantienes todas las relaciones en un solo archivo en lugar de inflar cada página. Para un sitio grande con muchas versiones es la opción sensata: un único sitio donde gestionarlo y menos código en cada plantilla. A cambio, el sitemap se vuelve más complejo de generar.

En la cabecera HTTP. La que se usa para contenido que no es HTML, típicamente PDF. Es la menos frecuente y la reservas para esos casos.

Así se ve un bloque correcto en el <head>. Este es el de mi propia web, con español, catalán e inglés, más el x-default:

<link rel="alternate" hreflang="es" href="https://dcp.bio/" />
<link rel="alternate" hreflang="ca" href="https://dcp.bio/ca/" />
<link rel="alternate" hreflang="en" href="https://dcp.bio/en/" />
<link rel="alternate" hreflang="x-default" href="https://dcp.bio/" />

La regla de oro: cada una de esas URLs tiene que devolver este mismo bloque completo, incluida su propia autorreferencia. Si la página en inglés no se menciona a sí misma y no menciona a las otras dos, el grupo está roto.

Hasta aquí los manuales. Ahora lo que de verdad falla en producción.

Los errores que veo en producción

Estos son los cuatro que más me encuentro, con el código incorrecto y su corrección al lado.

1. Falta de autorreferencia y de enlaces de vuelta. Es el error número uno. Para que Google acepte el grupo, cada página debe enlazar a todas las versiones y a sí misma, y el enlace tiene que ser recíproco. Si A apunta a B pero B no apunta a A, Google ignora la anotación entera.

<!-- INCORRECTO: la página /en/ apunta a /es/ pero se olvida de sí misma -->
<link rel="alternate" hreflang="es" href="https://dcp.bio/" />

<!-- CORRECTO: incluye todas las versiones y su autorreferencia -->
<link rel="alternate" hreflang="es" href="https://dcp.bio/" />
<link rel="alternate" hreflang="en" href="https://dcp.bio/en/" />
<link rel="alternate" hreflang="x-default" href="https://dcp.bio/" />

2. Códigos de idioma y región mal escritos. El idioma va en formato ISO 639-1 y la región, si la pones, en ISO 3166-1 Alpha 2. Dos fallos clásicos: inventarse combinaciones que no existen (escribir es-UK, cuando UK no habla español como variante oficial) y usar el código de un idioma donde querías uno de país. Si solo tienes una versión en español para todo el mundo hispanohablante, basta con es; no necesitas es-ES salvo que tengas una página distinta para cada país.

<!-- INCORRECTO -->
<link rel="alternate" hreflang="es-UK" href="https://ejemplo.com/es/" />

<!-- CORRECTO: una sola versión en español para todos -->
<link rel="alternate" hreflang="es" href="https://ejemplo.com/es/" />

3. x-default ausente. El x-default le dice a Google qué mostrar al usuario cuyo idioma o región no coincide con ninguna de tus versiones. Sin él, Google decide por su cuenta a quién enseñar qué cuando llega alguien de fuera de tu mapa de idiomas. No es un error crítico, pero en un sitio que recibe visitas internacionales es justo la red de seguridad que no quieres dejar sin poner.

4. Conflicto entre canonical y hreflang. Este es sutil y rompe muchas implementaciones. Si tu página en inglés lleva una etiqueta canonical apuntando a la versión en español, le estás diciendo a Google dos cosas contradictorias: con hreflang, “esta es la versión inglesa, válida por sí misma”; con la canonical, “la buena es la española, ignora esta”. Google hace caso a la canonical y tu hreflang deja de funcionar. Cada versión debe ser canonical de sí misma.

Detectar estos errores era cómodo hasta 2022. Luego Google nos quitó la linterna.

Cómo auditar hreflang ahora que GSC ya no tiene el informe

Durante años, Google Search Console tenía un informe de Segmentación Internacional que te listaba los errores de hreflang que Google detectaba en tu sitio. Era la forma rápida de ver qué pasaba. Google lo retiró en 2022. Decidió que la segmentación por país aportaba poco al ecosistema y la eliminó, aunque dejó claro que sigue soportando y usando las etiquetas hreflang con normalidad.

El problema práctico: ya no tienes un sitio dentro de GSC donde Google te diga “estos hreflang están mal”. Y como vimos arriba, sigue habiendo guías por ahí, algunas en primera página de Google, que te mandan a esa herramienta que ya no existe. Si lees eso, sabes que el contenido está desactualizado.

Lo que uso yo en su lugar, en este orden:

Primero, el informe de Cobertura y la inspección de URL de GSC, que aunque ya no tengan la vista de hreflang siguen avisando de problemas relacionados: URLs alternativas que devuelven un código distinto de 200, páginas que Google no puede leer. Después, un crawl con Screaming Frog o Sitebulb, que es donde de verdad ves la foto completa: exportas todas las relaciones hreflang, detectas los enlaces de vuelta que faltan, las URLs rotas dentro del grupo y las autorreferencias ausentes. Sitebulb, además, te visualiza las relaciones entre versiones, que para un sitio con varios idiomas se agradece. Y como segunda línea, un validador externo para confirmar página a página antes de un despliegue.

La idea de fondo: antes Google te avisaba del fallo dentro de su propia herramienta. Ahora comprobar que tu hreflang está bien es responsabilidad tuya y de tus crawlers, y si no lo haces, nadie te va a avisar.

Te dejo el orden en que yo lo reviso, para que no se te escape nada.

Checklist de auditoría hreflang

  • Cada página enlaza a todas sus versiones y a sí misma (autorreferencia presente).
  • Los enlaces son recíprocos: si A apunta a B, B apunta a A.
  • Los códigos de idioma siguen ISO 639-1 y los de región, ISO 3166-1 Alpha 2.
  • No hay combinaciones idioma-región inexistentes.
  • Hay un x-default para los usuarios fuera de tu mapa de idiomas.
  • Cada versión es canonical de sí misma, no de otra.
  • Las URLs dentro del grupo devuelven 200, no redirecciones ni 404.
  • Si usas sitemap, cada entrada lista todas las variantes con su <xhtml:link>.
  • Has validado con un crawl (Screaming Frog o Sitebulb), no confiando en un informe de GSC que ya no existe.

Preguntas frecuentes

¿Dónde es mejor poner el hreflang: en el HTML, en el sitemap o en la cabecera? Depende del tamaño. En el <head> del HTML para sitios pequeños, porque es lo más directo. En el sitemap XML para sitios grandes, porque centralizas todas las relaciones en un archivo y no inflas cada página. En la cabecera HTTP solo para contenido que no es HTML, como PDFs. No mezcles métodos para la misma página: elige uno.

¿Necesito una etiqueta para cada país? No. Solo necesitas una versión por cada contenido realmente distinto. Si das el mismo español a España, México y Argentina, te basta con es. Solo separas por país (es-ES, es-MX) cuando tienes páginas diferentes para cada uno. Crear variantes de país sin contenido diferenciado es trabajo extra que no aporta.

¿hreflang me ayuda a posicionar mejor? No directamente. No es un factor de ranking. Lo que hace es asegurar que Google muestre la versión correcta a cada usuario y evitar que tus versiones compitan entre ellas como contenido duplicado. Eso mejora la experiencia y protege tu tráfico, pero no te sube posiciones por sí mismo.

¿Puedo usar canonical y hreflang a la vez? Sí, pero con cuidado: cada versión debe ser canonical de sí misma. El error frecuente es poner una canonical de la página inglesa apuntando a la española. Eso le dice a Google que ignore la inglesa, y tu hreflang deja de tener efecto. Canonical hacia uno mismo, hreflang hacia las demás.

¿Por qué Google quitó el informe de segmentación internacional? Lo retiró en 2022 al considerar que la segmentación por país aportaba poco valor. Sigue soportando hreflang con normalidad; lo que desapareció es la vista que te listaba los errores. Por eso hoy la validación se hace con crawlers externos.

¿Cada cuánto debería revisar el hreflang? Siempre después de un cambio que toque URLs (migración, rediseño, añadir un idioma) y, en sitios con varias versiones, con un crawl programado de forma periódica. El hreflang se rompe en silencio: nada peta, simplemente Google empieza a mostrar la versión equivocada y lo notas en el tráfico semanas después.

Si tienes un proyecto con varios idiomas

El hreflang es la parte mecánica del SEO internacional, y la que más fácil se rompe. Pero antes de pelearte con las etiquetas conviene tener resuelto lo de arriba: a qué mercados vas, con qué contenido y por qué. De esa decisión, que es de negocio antes que técnica, hablo en mi guía de SEO internacional. Si lo que tienes entre manos es un hreflang que no sabes si está bien, una revisión con las herramientas de arriba te lo dice en una tarde.

¿Lo quieres aplicado a tu negocio?

Te ayudo a aplicarlo con cabeza, ligado a tu negocio y no a métricas de vanidad.

Hablemos →

David Carrasco

Consultor SEO internacional con enfoque growth. Más de 10 años ligando el SEO a objetivos de negocio, no a métricas de vanidad. Fundador de Magnify. Más sobre mí · LinkedIn