Volver al blog
Validador Hreflang9 min de lectura3 de septiembre de 2026

Cómo Implementar Hreflang en Magento 2: Store Views, Extensiones y XML

Magento 2 no genera hreflang de forma nativa. Guía para implementarlo con extensión, con layout XML propio y cómo evitar los errores de store code en la URL y de catálogos distintos por vista.


Conviene empezar por lo que suele sorprender: Magento 2 no añade etiquetas hreflang por su cuenta. Gestiona idiomas y países con enorme detalle mediante store views, pero no traduce esa estructura en señales para Google. Si no has instalado nada ni tocado el layout, tu tienda multiidioma no tiene hreflang.

Cómo se organiza el multiidioma en Magento 2

La jerarquía es website → store → store view, y la store view es la que importa aquí: cada una tiene su locale, su catálogo visible y su URL. Un grupo hreflang en Magento es, en la práctica, el conjunto de store views que representan la misma página en distintos idiomas o países.

  1. 1.En Tiendas → Toda las tiendas comprueba qué store views tienes y a qué website pertenecen.
  2. 2.En Tiendas → Configuración → General → Locale Options revisa el locale de cada store view. De ahí sale el código de la etiqueta hreflang, así que un locale mal puesto se propaga a todo.
  3. 3.En Tiendas → Configuración → General → Web decide cómo se sirve cada store view: por código en la URL, por subdominio o por dominio propio.

Si tienes activado "Add Store Code to URLs", tus URLs quedan como ejemplo.com/es/... con el código de store view. Es válido, pero asegúrate de que el hreflang declara exactamente esa URL y no la versión sin código: ambas suelen responder, y apuntar a la que redirige invalida la etiqueta.

Opción 1: extensión (lo recomendable)

Es el camino habitual porque el trabajo real no está en imprimir las etiquetas, sino en saber qué URL corresponde a la misma entidad en otra store view, incluidos productos con url_key traducida. Las extensiones del mercado leen las store views y generan el grupo automáticamente para home, categorías, productos y páginas CMS, sin tocar plantillas.

Al elegir extensión, comprueba que cubre estos cuatro puntos, porque no todas lo hacen:

  • Genera la autorreferencia, no solo los enlaces a las otras store views.
  • Permite designar una store view como x-default.
  • Omite del grupo los productos no visibles en una store view, en lugar de generar una etiqueta hacia un 404.
  • Respeta las url_key traducidas por store view en lugar de asumir la misma ruta.

Opción 2: layout XML propio

Si el catálogo es idéntico en todas las store views y las rutas coinciden, puedes inyectar las etiquetas desde tu tema con layout XML, sin extensión. Es viable en tiendas con estructura estable y pocos idiomas.

xml
<!-- app/design/frontend/Vendor/tema/Magento_Theme/layout/default_head_blocks.xml -->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      layout="1column"
      xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
        <link src="" rel="alternate" hreflang="es-ES"
              href="https://ejemplo.com/es/"/>
        <link src="" rel="alternate" hreflang="fr-FR"
              href="https://ejemplo.com/fr/"/>
        <link src="" rel="alternate" hreflang="x-default"
              href="https://ejemplo.com/es/"/>
    </head>
</page>

Este layout aplica el mismo grupo a todas las páginas que lo hereden, así que solo sirve para URLs fijas como la home. Aplicarlo globalmente haría que cada ficha de producto declarase la home de los otros idiomas como su alternativa, que es peor que no tener hreflang.

Para páginas dinámicas necesitas un bloque propio que resuelva la URL equivalente en cada store view a partir del producto o categoría actual. En cuanto llegas a ese punto, estás escribiendo la extensión: casi siempre sale más barato instalar una.

Los errores específicos de Magento

SíntomaCausaSolución
No hay ninguna etiqueta hreflangMagento no las genera de forma nativaInstala una extensión o añade el layout
Etiquetas hacia páginas 404Producto no visible en esa store viewExcluir del grupo los productos no disponibles
Código de idioma incorrectoLocale mal configurado en la store viewCorrige el locale en Locale Options
URLs con y sin store code mezcladasAdd Store Code activado a mediasUnifica el criterio y declara la URL que responde 200

Verifica store view por store view

En Magento el volumen juega en contra: una extensión mal configurada genera etiquetas erróneas en miles de fichas a la vez. Coge una misma ficha de producto en todas las store views y valida las URLs juntas antes de dar por buena la configuración. Repite después con una categoría y con una página CMS, porque las extensiones no siempre tratan igual los tres tipos de página.

Prueba la herramienta gratis

Analiza tus URLs con Validador Hreflang de iRankly. Sin registro, sin tarjeta.

Usar herramienta gratis

Si usas otra plataforma, o quieres el detalle conceptual de qué hace cada atributo:


Prueba la herramienta gratis

Analiza tus URLs con Validador Hreflang de iRankly. Sin registro, sin tarjeta.

Usar herramienta gratis