← Diario de Construcción

SEO internacional: hreflang y canonicalId en Astro

Cómo organizar páginas trilingües en Astro usando hreflang, canonical y canonicalId sin crear caos de rutas.

Publicar en tres idiomas parece simple hasta que se rompe el primer detalle: una versión apunta al slug incorrecto, otra olvida el canonical y la tercera no aparece en el selector de idioma. El SEO internacional no empieza con traducción. Empieza con organización.

En Astro, esa organización puede seguir siendo simple si cada post tiene una identidad editorial común entre idiomas.

El problema de las traducciones sueltas

Cuando cada idioma nace como un archivo independiente, el sitio gana libertad, pero también gana riesgo. El post en portugués puede tener un slug, la versión en inglés otro y la versión en español otro. Eso es normal. El problema es perder la relación entre ellos.

Sin esa relación, se vuelve difícil generar enlaces alternativos, montar el selector de idioma y señalar a los buscadores que esas páginas son versiones equivalentes del mismo contenido.

CanonicalId como pegamento editorial

El canonicalId resuelve este problema como una clave editorial. No necesita ser la URL. Necesita ser el identificador estable del tema.

Ejemplo:

  • PT: seo-internacional-hreflang-canonicalid-astro
  • EN: international-seo-hreflang-canonicalid-astro
  • ES: seo-internacional-hreflang-canonicalid-astro

Los slugs pueden cambiar por idioma, pero el canonicalId permanece igual. Con eso, el código puede buscar traducciones relacionadas y montar los alternates.

Hreflang en la capa de layout

El hreflang no debería escribirse manualmente en cada post. Eso crea repetición y errores silenciosos.

El mejor lugar para esta lógica es el layout. La página calcula los alternates, los pasa al layout y el layout renderiza:

  • pt-BR
  • en
  • es
  • x-default

Así, el contenido sigue enfocado en el texto, mientras la infraestructura cuida las señales técnicas.

La rutina que evita errores

Toda nueva publicación trilingüe necesita pasar por una lista corta:

  1. ¿El mismo canonicalId existe en las tres versiones?
  2. ¿Cada canonical apunta a la URL final correcta?
  3. ¿El campo language coincide con la carpeta?
  4. ¿El selector de idioma lleva a la versión equivalente?
  5. ¿El build estático generó las tres rutas?

Este checklist parece pequeño, pero evita la mayoría de los problemas. El buen SEO técnico tiene mucho menos que ver con trucos y mucho más con consistencia.

Referencias