Etiquetas hreflang: cómo decirle a Google qué versión de idioma debe mostrar
Revisado en junio de 2026, aplicable a PrestaShop 1.7, 8 y al tema predeterminado basado en Hummingbird de 9.x, todos ellos generan un bloque hreflang del núcleo que conviene verificar, no dar por hecho.
Ya has hecho la parte costosa: tu tienda habla alemán a los compradores alemanes, francés a los franceses y polaco a los polacos. La parte barata, decirle a Google qué versión corresponde a cada persona, es la que más comerciantes de PrestaShop hacen mal, y puede deshacer en silencio todo el trabajo de traducción. Sin señales hreflang correctas, Google tiene que adivinar, y suele adivinar mal: muestra tu página en inglés a un usuario alemán, o decide que tus cinco versiones de idioma son cinco páginas casi duplicadas compitiendo por la misma palabra clave y posiciona una mientras entierra las demás. Hreflang es esa pequeña pieza de fontanería técnica que convierte "hemos traducido la tienda" en "el comprador adecuado llega al idioma adecuado". Esta guía trata de hacerlo bien específicamente en PrestaShop: qué genera ya la plataforma, dónde se queda corta y cómo verificarlo en lugar de confiar en que "simplemente funciona".
Esta es la pieza específica sobre hreflang dentro de un grupo más amplio. Si todavía estás en una fase anterior, decidiendo qué idiomas activar, cómo deberían estructurarse las URL o si usar una tienda o varias, empieza por configurar una tienda multilingüe y vuelve aquí cuando los idiomas ya existan.
Qué le dice realmente hreflang a Google (y qué no)

Una anotación hreflang es una sola línea en la cabecera de la página:
<link rel="alternate" hreflang="de" href="https://yourstore.com/de/produkt">
Dice una cosa: "existe una versión equivalente en alemán de esta página, y está aquí". Repítelo para cada idioma y le habrás dado a Google un mapa de qué URL son traducciones entre sí. Google usa ese mapa para dos tareas. La primera, coincidencia de idioma: un usuario francocanadiense recibe tu página fr, no tu página en, aunque la inglesa posicione mejor en términos brutos. La segunda, y la que los comerciantes suelen infravalorar, es el control de canibalización: hreflang le indica a Google que esas páginas son alternativas, no competidoras, para que no se dividan entre ellas las señales de posicionamiento. Por eso, un problema de SEO y un problema de traducción son en realidad el mismo problema.
Conviene ser honesto sobre sus límites, porque ahí nacen las falsas expectativas. Hreflang es una señal, no una directiva; Google lo ha dicho muchas veces. No fuerza un posicionamiento, no sustituye a buenas traducciones y no rescatará páginas que Google considere de baja calidad. Tampoco hace nada directamente por tus clientes: nadie ve una etiqueta hreflang en el navegador. Es únicamente una señal para el rastreador. Así que el "¿y esto qué aporta?" es concreto, pero real: un hreflang correcto evita que pierdas posiciones que ya habías ganado por una lectura errónea de contenido duplicado, y evita el rebote por idioma incorrecto que quema presupuesto de anuncios y de SEO por igual.
Qué hace ya PrestaShop y dónde están las carencias
Este es el punto que suele fallar en el viejo consejo de "PrestaShop no tiene hreflang, instala un módulo": las versiones modernas de PrestaShop ya generan etiquetas hreflang. Los temas predeterminados (el tema classic en 1.7/8 y el predeterminado basado en Hummingbird en 9.x) incluyen un bloque hreflang en la cabecera de la página que recorre tus idiomas activos e imprime una línea rel="alternate" para cada uno, construida a partir de Link::getLanguageLink(). Así que una instalación multilingüe estándar en una sola tienda normalmente ya tiene hreflang funcional desde el primer momento. Antes de comprar nada, mira el código fuente de una página de producto y busca "hreflang": puede que ya lo tengas.
Lo que el núcleo no siempre resuelve bien es todo lo que queda en los bordes, y los bordes son justo donde viven las tiendas internacionales:
- A menudo falta x-default. El bucle del núcleo genera una etiqueta por idioma, pero con frecuencia omite la entrada
hreflang="x-default", que le dice a Google qué mostrar cuando ninguno de tus idiomas coincide con el usuario (por ejemplo, un comprador neerlandés en una tienda EN/DE/FR). Sin ella, Google elige por ti. - La segmentación de varios mercados en el mismo idioma no queda resuelta por ti. Un idioma de PrestaShop tiene campos de configuración regional y código de idioma, así que un valor regional no es imposible; pero el núcleo no monta automáticamente los clústeres complejos a nivel de mercado que necesitas cuando vendes en alemán tanto a Austria como a Alemania, o en inglés tanto al Reino Unido como a Estados Unidos. Distinguir
de-ATdede-DEentre esas alternativas es algo que tienes que configurar y verificar, no algo que el bucle hreflang estándar deduzca por sí solo. Comprueba los valores hreflang reales emitidos desde la configuración regional/código de cada idioma, en lugar de asumir que apuntan al mercado que pretendías. - Multitienda divide el conjunto. Si gestionas tiendas separadas por país (consulta PrestaShop Multistore), cada tienda solo conoce sus propios idiomas. Hacer que
store-de.comystore-fr.comse referencien entre sí dentro de un mismo clúster hreflang es exactamente el caso que el núcleo no monta por ti. - Los temas personalizados e hijos pueden eliminarlo. Los temas que sobrescriben
head.tplo quitan el hook pueden suprimir silenciosamente el bloque hreflang. Una cantidad sorprendente de casos de "hreflang ausente" son simplemente un tema que ya no imprime ese parcial.
Así que la pregunta real en PrestaShop rara vez es "¿tengo hreflang?". Es "¿el conjunto está completo, es recíproco y apunta a URL canónicas?"; y eso es una tarea de verificación, no de compra.
Primero, pon en orden tu estructura de URL
Hreflang apunta a URL, así que solo puede ser tan limpio como la estructura de URL multilingüe que tiene debajo. PrestaShop te da una elección que se configura en Parámetros de la tienda → Tráfico & SEO → SEO & URL (y, para la opción de dominio por idioma, en Establecer URL de la tienda / ajustes de URL multitienda). Estas son las tres formas realistas y lo que implica cada una para hreflang:
| Estructura | Ejemplo | Implicación para hreflang | Mejor cuando… |
|---|---|---|---|
| Subcarpeta (ISO en la ruta) | store.com/de/, store.com/fr/ | La opción más limpia. Un dominio, un certificado SSL, y los enlaces de idioma del núcleo se resuelven de forma natural. | La mayoría de las tiendas. El valor predeterminado sensato para una sola tienda multilingüe. |
| Subdominio | de.store.com, fr.store.com | Funciona, pero cada alternativa debe usar el host completo del subdominio; es fácil configurarlo mal. | Necesitas separar infraestructura, pero no entidades legales distintas. |
| Dominio de país (ccTLD) | store.de, store.fr | La señal geográfica más fuerte y el hreflang más difícil: las alternativas apuntan entre dominios distintos, normalmente mediante multitienda. | Operaciones serias por país, con necesidades locales de confianza y pago. |
Una trampa específica de PrestaShop está en la configuración del idioma (Internacional → Localización → Idiomas), donde importan dos campos distintos. El prefijo de la ruta URL se construye a partir del código ISO de dos letras, así que un idioma añadido con un código ISO descuidado produce una ruta descuidada. El valor hreflang, en cambio, sale de la configuración regional / código de idioma del idioma; por eso, un problema de etiqueta de idioma incorrecta y un problema de prefijo de URL incorrecto se corrigen en lugares distintos. Revisa el código ISO si tus rutas se ven mal, y revisa la configuración regional/código de idioma si los valores hreflang emitidos se ven mal; corrígelo en el idioma, no editando la etiqueta a mano. Las monedas, los impuestos y la configuración más amplia para vender en la UE que acompaña a todo esto viven en vender en Europa desde PrestaShop; este artículo se mantiene en el carril de hreflang.
Los cuatro errores que anulan tu hreflang en silencio
Hreflang falla en silencio. No hay error en tu tienda, no hay página rota: Google simplemente ignora la anotación y vuelve a adivinar. Estos cuatro casos explican casi todos los fallos reales:
- Faltan etiquetas de retorno (conjuntos no recíprocos). Si tu página EN lista la página DE como alternativa alemana, la página DE debe listar de vuelta la página EN. Hreflang es un apretón de manos; un saludo en una sola dirección se descarta. Es el fallo más común, y el que más afecta a configuraciones multitienda, donde cada tienda conoce de forma natural solo la mitad del apretón de manos.
- Códigos de idioma incorrectos. El valor debe ser un código de idioma ISO 639-1 real, opcionalmente más un país ISO 3166-1.
en-GBes válido;en-UKno lo es (el país es GB).cses checo, nocz. PrestaShop te dejará escribir sin protestar un código ISO incorrecto en la configuración del idioma, y este se propagará directamente a la etiqueta. - Apuntar a URL no canónicas. Si tu canónica es
https://store.com/de/, pero tu hreflang apunta ahttp://store.com/de(sin SSL, con discrepancia en la barra final o con un parámetro?), Google ve una URL distinta y descarta la anotación. En PrestaShop, esto suele venir de una configuración mixta http/https o de una canónica de URL amigable que no coincide con lo que construye el bucle hreflang. - Cobertura parcial. Tener hreflang en productos, pero no en categorías, páginas CMS o la página de inicio, deja a Google confundido sobre secciones completas del sitio. Tiene que estar en cada tipo de página, en cada idioma, o la propia incoherencia se convierte en una señal de que algo no cuadra.
Cuando el hreflang del núcleo no basta: la vía del módulo
Si has verificado tu configuración y has encontrado carencias reales. Falta x-default, un tema personalizado ha eliminado las etiquetas, necesitas segmentación por país que el núcleo no puede expresar, o un clúster multitienda requiere reciprocidad entre dominios. Ese es el punto en el que un módulo SEO se gana su sitio. El trabajo es concreto: emitir en cada tipo de página un conjunto hreflang completo, recíproco y canónico, incluido x-default, sin que tengas que editar plantillas a mano.
Nuestra suite SEO Revolution gestiona hreflang como parte de su capa de SEO internacional: genera el conjunto de alternativas en productos, categorías, páginas CMS y página de inicio a partir de tus idiomas activos en PrestaShop, añade la entrada x-default que el núcleo tiende a omitir y apunta cada etiqueta a la URL canónica para que no se cuelen las discrepancias de http/https y parámetros mencionadas antes. ¿Y qué ganas con eso? Dejas de auditar etiquetas de cabecera a mano en una tienda que no deja de añadir páginas, y una actualización de tema no puede quitar silenciosamente tu hreflang, porque las etiquetas salen del módulo en lugar de una plantilla que podrías sobrescribir. Se configura desde el back office: sin cirugía en head.tpl, sin factura de desarrollador por una etiqueta de una línea que debe estar correcta en miles de URL. Ese también es el límite honesto: un módulo que emite hreflang perfecto no posiciona tu tienda; elimina la razón técnica por la que Google podría posicionar o servir mal las páginas que ya has traducido.
Verifícalo: no lo des por hecho
Hreflang es especialmente implacable porque una implementación medio incorrecta puede ser peor que no tener nada: un conjunto recíproco roto puede hacer que Google desconfíe de todo el clúster. Así que verificarlo no es un pulido opcional: es el trabajo. Tres comprobaciones, en este orden:
[SCREENSHOT: "Ver código fuente" del navegador en una página de producto, con las líneas <link rel="alternate" hreflang="..."> resaltadas dentro de <head>, mostrando una por idioma más x-default]- Primero mira el código fuente. Abre una página de producto, busca "hreflang" en el HTML y cuenta. Deberías ver una línea
rel="alternate"por cada idioma activo, más unax-default. Si ves cero, tu tema ha eliminado el bloque. Si ves los idiomas, pero no x-default, ahí tienes tu primera carencia. - Comprueba a mano la reciprocidad en un clúster. Toma un producto, abre el código fuente de cada versión de idioma y confirma que todas las versiones listan el mismo conjunto completo, incluida ella misma. Si la página DE no apunta de vuelta a EN, has encontrado un fallo de etiqueta de retorno antes que Google.
- Después, confía en la vista del rastreador. Google Search Console ya no tiene el antiguo informe de segmentación internacional, así que usa un rastreador que audite hreflang (Screaming Frog, Sitebulb o la auditoría de sitio de Ahrefs/Semrush) para detectar etiquetas de retorno ausentes, códigos inválidos y destinos no canónicos en todo el sitio de una vez. Es la única forma de detectar el problema de cobertura parcial, porque está repartido entre miles de URL.
Preguntas frecuentes
¿PrestaShop genera hreflang por sí solo o necesito un módulo?
Las versiones modernas de PrestaShop ya lo generan. Los temas predeterminados (classic en 1.7/8 y el predeterminado basado en Hummingbird en 9.x) incluyen un bloque hreflang en la cabecera de la página que recorre tus idiomas activos e imprime una línea rel="alternate" para cada uno, construida a partir de Link::getLanguageLink(). Así que una instalación multilingüe estándar con una sola tienda normalmente ya tiene hreflang funcional desde el primer momento: mira el código fuente y busca "hreflang" antes de comprar nada. Recurres a un módulo cuando encuentras carencias reales: falta x-default, un tema personalizado ha eliminado el bloque, necesitas segmentación por país o tienes un clúster multitienda que requiere reciprocidad entre dominios.
¿Cómo es realmente un conjunto hreflang completo?
Cada versión de idioma de una página debería listar el mismo conjunto completo, incluida ella misma, más un x-default. Para un producto EN/DE/FR, cada una de esas tres páginas debería llevar un bloque idéntico en su <head>:
<link rel="alternate" hreflang="en" href="https://store.com/en/product" />
<link rel="alternate" hreflang="de" href="https://store.com/de/produkt" />
<link rel="alternate" hreflang="fr" href="https://store.com/fr/produit" />
<link rel="alternate" hreflang="x-default" href="https://store.com/en/product" />
El x-default le dice a Google qué debe servir cuando ninguno de tus idiomas coincide con el usuario (por ejemplo, un comprador neerlandés en una tienda EN/DE/FR). Apunta cada etiqueta a la URL canónica, mismo protocolo, misma barra final, ningún parámetro ? suelto, o Google descarta la anotación.
¿Cuál es la forma más habitual en que hreflang falla en silencio?
Faltan etiquetas de retorno. Hreflang es un apretón de manos: si tu página EN lista la página DE como alternativa alemana, la página DE debe listar de vuelta la página EN. Un saludo en una sola dirección se descarta. Este es el fallo que más golpea a las configuraciones multitienda, porque cada tienda conoce de forma natural solo la mitad del apretón de manos; hacer que store-de.com y store-fr.com se referencien entre sí es exactamente el caso que el núcleo no monta por ti.
Mis valores hreflang son incorrectos: ¿dónde los corrijo, en la etiqueta o en el idioma?
En el idioma, nunca editando la etiqueta a mano. El prefijo de la ruta URL viene del código ISO de dos letras del idioma, mientras que el valor hreflang viene de la configuración regional / código de idioma del idioma (Internacional → Localización → Idiomas). Por eso, un problema de ruta incorrecta y un problema de etiqueta incorrecta se corrigen en campos distintos. Usa un código ISO 639-1 real, opcionalmente más un país ISO 3166-1: en-GB es válido, en-UK no lo es; cs es checo, no cz.
¿Cómo verifico hreflang en miles de URL?
Mira primero el código fuente de una página para confirmar que las etiquetas existen e incluyen x-default; después comprueba a mano la reciprocidad en un clúster de producto. A partir de ahí, confía en un rastreador: Google Search Console ya no tiene el antiguo informe de segmentación internacional, así que usa Screaming Frog, Sitebulb o una auditoría de sitio de Ahrefs/Semrush para detectar en todo el sitio etiquetas de retorno ausentes, códigos inválidos y destinos no canónicos. Es la única forma práctica de detectar cobertura parcial, ya que está repartida por todo el catálogo.
Lecturas relacionadas
- Configuración de una tienda multilingüe, pon en orden la tienda traducida y las URL por idioma antes de preocuparte por hreflang.
- PrestaShop Multistore, donde la reciprocidad hreflang entre dominios se convierte en la parte difícil.
- Selector de moneda y banderas de idioma, el selector visible para el usuario que hreflang complementa, pero no puede sustituir.
El principio de fondo es el mismo que atraviesa el resto de este grupo: una tienda que vende más allá de sus fronteras es un conjunto de señales pequeñas y exactas, la moneda correcta, la bandera de idioma correcta, la línea de impuestos correcta y el hreflang correcto, cada una barata por separado, cada una capaz de dejar escapar valor cuando está ligeramente mal. Haz bien la experiencia de idioma y moneda para que los visitantes se queden (selector de moneda y banderas de idioma), fija precios y cobra correctamente por mercado (multimoneda y venta internacional) y deja que hreflang se asegure de que el buscador envía a cada comprador a la versión que construiste para él. En PrestaShop, eso significa saber que el núcleo ya hace la mayor parte del trabajo, y dedicar tu esfuerzo a x-default, la reciprocidad y la coincidencia canónica que deciden si realmente cuenta.
Comentarios
Dejar un comentario
Comparte una pregunta, un detalle de instalación o una opinión que pueda ayudar a otro lector.