Volver al blog
SEO8 min de lectura

Canonical y hreflang juntos: cómo no liarla con tus idiomas

Canonical y hreflang se pelean si los configuras mal: aprende la regla de oro, los 4 errores típicos y cómo comprobar que Google indexa cada idioma.

Equipo Lantis15 de agosto de 2026

Hay dos etiquetas que deciden si Google entiende tu web multilingüe: la canonical y el hreflang. Por separado son fáciles de explicar. Juntas es donde la gente se lía, y donde una web traducida entera puede acabar sin aparecer en ningún buscador. Es el fallo silencioso por excelencia: todo se ve perfecto en el navegador, los idiomas cargan, el selector funciona… y Google solo indexa la versión en español.

La causa casi siempre es la misma. Alguien pone la etiqueta canonical apuntando al idioma original en todas las páginas traducidas, pensando que así evita el contenido duplicado. Y lo que consigue es decirle a Google, literalmente, "esta página en francés no es la buena, indexa la española". El hreflang, mientras tanto, intenta explicar lo contrario. Gana la canonical. Vamos a ver cómo se combinan bien, con ejemplos que puedes copiar.

Resumen rápido

  • La regla de oro: cada versión de idioma se apunta a sí misma con la canonical. La página /fr/precios lleva canonical a /fr/precios, nunca a /precios.
  • Canonical y hreflang responden a preguntas distintas. La canonical dice "cuál es la URL buena de esta página"; el hreflang dice "estas otras URLs son la misma página en otros idiomas".
  • Una canonical cruzada (de un idioma a otro) anula tu hreflang y hace que Google ignore las traducciones. Es el error más caro y el más frecuente.
  • Traducir no es contenido duplicado. No necesitas la canonical para "protegerte": Google trata las traducciones como contenido distinto.
  • Se comprueba en dos minutos con el código fuente de la página y el informe de páginas de Search Console.

Qué hace cada etiqueta (y por qué se confunden)

Van en el <head> de la página, las dos parecen enlaces y las dos hablan de URLs. Ahí acaba el parecido.

La canonical resuelve duplicados dentro del mismo idioma

La etiqueta rel="canonical" existe para cuando el mismo contenido está accesible desde varias URLs: con y sin parámetros de campaña, con y sin barra final, una ficha de producto que aparece en dos categorías. Le dices a Google cuál es la versión oficial y él concentra ahí toda la fuerza.

<link rel="canonical" href="https://tuweb.com/fr/precios" />

Palabra clave: duplicados. Una página en francés y su original en español no son duplicados. Son contenidos diferentes para públicos diferentes.

El hreflang agrupa versiones de idioma

El hreflang no elige ganador. Le dice a Google: "estas cinco URLs son la misma página en cinco idiomas; muéstrale a cada usuario la que le toca". Todas se indexan, todas pueden posicionar, cada una en su mercado.

<link rel="alternate" hreflang="es" href="https://tuweb.com/precios" />
<link rel="alternate" hreflang="fr" href="https://tuweb.com/fr/precios" />
<link rel="alternate" hreflang="de" href="https://tuweb.com/de/precios" />
<link rel="alternate" hreflang="x-default" href="https://tuweb.com/precios" />

Si quieres el detalle completo de cómo se construye ese bloque, lo tienes desmenuzado en hreflang explicado fácil.

La regla de oro: canonical propia en cada idioma

Si te quedas con una sola frase de este artículo, que sea esta: cada URL traducida debe llevar una canonical que apunte a sí misma (self-referencing), y el bloque hreflang completo con todas sus hermanas.

Así queda una página en francés bien montada:

<!-- En https://tuweb.com/fr/precios -->
<link rel="canonical" href="https://tuweb.com/fr/precios" />
<link rel="alternate" hreflang="es" href="https://tuweb.com/precios" />
<link rel="alternate" hreflang="fr" href="https://tuweb.com/fr/precios" />
<link rel="alternate" hreflang="x-default" href="https://tuweb.com/precios" />

Y la española lleva su propia canonical a /precios, con el mismo bloque hreflang. El bloque es idéntico en todas las versiones; lo único que cambia entre páginas es la canonical.

Si la canonical de una página apunta a otro idioma, el hreflang de esa página deja de servir para nada. No es que funcione peor: es que Google lo descarta entero.

Los 4 errores más comunes al combinar canonical y hreflang

ErrorQué has puestoQué entiende GoogleConsecuencia
Canonical cruzada/fr/precios con canonical a /precios"El francés no es una página válida"Ningún idioma salvo el original se indexa
Hreflang sin reciprocidad/precios enlaza a /fr/precios, pero el francés no devuelve el enlace"Estas páginas no se reconocen entre sí"Google ignora el emparejamiento
Canonical a una página que no existe o redirigeCanonical apuntando a una URL con 301 o 404Señal contradictoriaIndexación errática
Mezclar dominios y protocoloshreflang con http:// o sin www cuando la web usa https://wwwURLs distintas a las realesEl grupo de idiomas no se forma

El error de la canonical cruzada, con nombre y apellidos

Nace de un miedo razonable: "si tengo la misma página en cinco idiomas, ¿no me penalizará Google por duplicar?". No. Google ha dicho de forma repetida que el contenido traducido no es contenido duplicado y no genera penalización. Lo explicamos a fondo en contenido duplicado y traducciones.

El daño de este error es doble: pierdes la indexación de los idiomas nuevos y pierdes el tiempo que hayas invertido en traducirlos. Es, con diferencia, el fallo que más veces vemos cuando alguien nos escribe diciendo "traduje la web hace tres meses y no entra nadie".

El error de la reciprocidad

El hreflang funciona como una confirmación mutua: si A dice que B es su versión en francés, B tiene que decir que A es su versión en español. Si falta la vuelta, Google descarta la relación. Por eso lo práctico es generar el mismo bloque hreflang para todas las versiones, incluyéndose a sí mismas, y no ir escribiendo enlaces a mano página por página.

Cómo comprobar que lo tienes bien

Tres comprobaciones, ninguna necesita herramientas de pago:

  1. Mira el código fuente. Abre una página traducida, pulsa Ctrl+U (o Cmd+Opt+U) y busca canonical. ¿Apunta a la URL que estás viendo? Bien. ¿Apunta al idioma original? Ahí tienes el problema.
  2. Comprueba la reciprocidad. Desde esa misma página traducida, comprueba que el bloque hreflang incluye todos los idiomas y a sí misma.
  3. Revisa Search Console. En el informe de indexación de páginas, busca el motivo "Página alternativa con etiqueta canónica adecuada" aplicado a tus URLs traducidas: es la firma exacta de la canonical cruzada. Tienes la guía completa en Search Console para webs multilingües.

Un aviso de calendario: aunque lo arregles hoy, Google tarda semanas en volver a rastrear e indexar todo. No es instantáneo, así que cuanto antes lo revises, mejor.

Casos especiales que conviene tener claros

x-default

Es la versión de reserva: la que se muestra a alguien cuyo idioma no tienes. Suele ser tu idioma original o una página de selección de idioma. No sustituye a nada, se añade.

Paginación y filtros

En un blog o un catálogo, la página 2 lleva su propia canonical a la página 2 (no a la 1), y su hreflang enlaza con la página 2 de cada idioma. Emparejar la página 2 francesa con la página 1 española es otra forma de romper el grupo.

Dominios distintos por país

Si usas tuweb.fr y tuweb.de en vez de subcarpetas, la lógica es idéntica: canonical dentro de cada dominio y hreflang cruzando dominios. Sobre qué estructura elegir, comparamos las tres opciones en estructura de URL para tu web multilingüe.

Preguntas frecuentes

¿La etiqueta canonical debe apuntar al idioma original en las páginas traducidas?

No, nunca. Cada página traducida debe llevar una canonical que apunte a sí misma. Si la canonical de /fr/precios apunta a /precios, le estás diciendo a Google que la versión francesa no debe indexarse, y Google ignorará también el hreflang de esa página. El resultado es que solo posiciona el idioma original y las traducciones quedan invisibles en los buscadores.

¿Google penaliza tener el mismo contenido traducido a varios idiomas?

No. Google considera que una traducción es contenido distinto, no contenido duplicado, y no aplica ninguna penalización por tener tu web en varios idiomas. La duplicación problemática es tener el mismo texto en el mismo idioma en varias URLs. Para las traducciones, lo correcto es canonical propia en cada idioma más etiquetas hreflang que las relacionen entre sí.

¿Puedo usar canonical y hreflang en la misma página?

Sí, y de hecho es lo recomendado: van juntos en el <head> de cada versión de idioma. La canonical apunta a la propia URL y el bloque hreflang lista todas las versiones de idioma, incluida ella misma. Solo dan problemas cuando la canonical apunta a un idioma diferente, porque entonces las dos señales se contradicen y Google hace caso a la canonical.

Conclusión

Canonical y hreflang no compiten: se reparten el trabajo. La canonical ordena las URLs dentro de un idioma y el hreflang conecta los idiomas entre sí. Con la regla de la canonical propia en cada versión y un bloque hreflang idéntico y recíproco, tienes el 90% del SEO internacional técnico resuelto.

La otra opción es no tener que pensar en esto. Con Lantis pegas una línea de código en tu web y cada idioma sale con su URL propia, su canonical correcta, su hreflang recíproco y su sitemap, sin tocar el <head> a mano. Precio por idioma desde 3 €/mes, varios motores de IA (Gemini por defecto, Claude, DeepL o DeepSeek) para elegir el que mejor traduce tu web y una caché propia que sirve más del 70% de las traducciones al instante. Puedes empezar gratis y ver cómo queda tu web en otro idioma en unos minutos.

Pon tu web en varios idiomas hoy.

Una línea de código. SEO real por idioma. Traducción con IA. Sin tarjeta para empezar.

Sigue leyendo