Saltar al contingut principal
Guia pràctica

Hreflang: Implementació Tècnica per a Llocs Web Multilingües

Hreflang per a llocs trilingües espanyol, anglès i català

Per als llocs web que operen en els tres idiomes principals de Catalunya —espanyol, anglès i català—, la implementació d’hreflang és alhora necessària i tècnicament exigent. Necessària perquè sense ella, Google no sap sistemàticament quina versió mostrar a cada usuari. Exigent perquè el nombre de relacions que cal mantenir es multiplica: en un cluster de tres idiomes, cada pàgina ha de referenciar les altres dues, i qualsevol ruptura de bidireccionalitat en qualsevol dels tres nodes invalida les anotacions de tot el grup.

El patró és concret: la versió catalana d’una pàgina ha d’incloure etiquetes hreflang="ca" (apuntant-se a ella mateixa), hreflang="es" (apuntant a la versió espanyola) i hreflang="en" (apuntant a la versió anglesa), a més de hreflang="x-default". La versió espanyola ha d’incloure exactament el mateix bloc. La versió anglesa, també. Si una pàgina de qualsevol de les tres versions no té el bloc complet, les anotacions de tot el cluster es degraden.

Més del 60% dels llocs amb hreflang presenten almenys un error d’implementació segons anàlisi amb Screaming Frog. Per als llocs trilingües, aquesta probabilitat augmenta perquè hi ha tres vegades més relacions que cal mantenir en coherència.

Què és hreflang i quines limitacions té

Hreflang és l’atribut de l’element <link> en HTML que indica als motors de cerca les versions alternatives d’una pàgina per a diferents idiomes o regions. La sintaxi bàsica és:

<link rel="alternate" hreflang="codi_idioma" href="URL_absoluta" />

Quan Google rastreja una pàgina amb aquestes anotacions, construeix un “cluster” de pàgines relacionades i entén que totes són versions equivalents del mateix contingut en idiomes diferents. A partir d’aquell moment, intenta mostrar a cada usuari la versió més adequada segons la seva configuració d’idioma i ubicació geogràfica.

La distinció fonamental és que hreflang és una suggerència, no una directiva. Google Search Central ho documenta explícitament: “Les anotacions hreflang són una suggerència per a Google, no una directiva. Google pot ignorar implementacions incorrectes i determinar de manera independent quin contingut mostrar.” Una implementació defectuosa no genera cap error: simplement no té efecte.

Gary Illyes de Google ha afegit una dimensió important sobre la compartició d’autoritat: “Les etiquetes hreflang no funcionen com a senyals algorítmics de ranking directes, però aporten valor substancial dins dels clusters de contingut: en un cluster, un grup de pàgines similars en idiomes diferents comparteixen la mateixa autoritat de ranking.” Per a un lloc català, això significa que les pàgines en català es beneficien de l’autoritat construïda per les versions en espanyol o anglès, sempre que el cluster estigui correctament implementat.

Els tres mètodes d’implementació

MètodeOn es declaraMillor per aLimitació principal
HTML head tags<head> de cada pàginaLlocs petits o mitjans (< 1000 URLs per locale)Cal modificar cada pàgina individualment
XML SitemapFitxer sitemap.xmlLlocs grans (> 1000 URLs); qualsevol CMS amb generació de sitemapRequereix sitemap indexat correctament
HTTP headersCapçaleres de resposta del servidorPDFs i documents no-HTMLNomés aplicable a recursos no-HTML

Mètode 1: HTML head tags

El mètode més directe. Dins de l’element <head> de cada pàgina del cluster, s’inclou una etiqueta <link> per a cada versió alternativa, incloent-hi la pròpia pàgina:

<head>
  <!-- Self-referencing tag (obligatori) -->
  <link rel="alternate" hreflang="ca"
    href="https://ighenatt.es/ca/recursos/seo-tecnico/hreflang-implementacion/" />
  <!-- Versió espanyola -->
  <link rel="alternate" hreflang="es"
    href="https://ighenatt.es/recursos/seo-tecnico/hreflang-implementacion/" />
  <!-- Versió anglesa -->
  <link rel="alternate" hreflang="en"
    href="https://ighenatt.es/en/resources/seo-tecnico/hreflang-implementacion/" />
  <!-- Fallback per a idiomes no coberts -->
  <link rel="alternate" hreflang="x-default"
    href="https://ighenatt.es/recursos/seo-tecnico/hreflang-implementacion/" />
</head>

Aquest bloc ha d’aparèixer idèntic a les tres pàgines del cluster: la catalana, l’espanyola i l’anglesa. Google construeix el cluster des de qualsevol punt d’entrada; si una pàgina no té les etiquetes completes, la bidireccionalitat es trenca i tot el cluster es veu afectat.

Mètode 2: XML Sitemap

Per a llocs amb milers d’URLs localitzades, modificar l’HTML de cada pàgina és inviable. L’alternativa és declarar les relacions hreflang al sitemap XML.

Primer, afegeix el namespace xhtml a l’element urlset:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">

Després, dins de cada bloc <url>, inclou etiquetes <xhtml:link> per a totes les versions del cluster:

<url>
  <loc>https://ighenatt.es/ca/recursos/seo-tecnico/hreflang-implementacion/</loc>
  <xhtml:link rel="alternate" hreflang="ca"
    href="https://ighenatt.es/ca/recursos/seo-tecnico/hreflang-implementacion/"/>
  <xhtml:link rel="alternate" hreflang="es"
    href="https://ighenatt.es/recursos/seo-tecnico/hreflang-implementacion/"/>
  <xhtml:link rel="alternate" hreflang="en"
    href="https://ighenatt.es/en/resources/seo-tecnico/hreflang-implementacion/"/>
  <xhtml:link rel="alternate" hreflang="x-default"
    href="https://ighenatt.es/recursos/seo-tecnico/hreflang-implementacion/"/>
</url>

La regla de bidireccionalitat s’aplica igualment: si el bloc de la URL catalana declara una relació amb la URL espanyola, el bloc de la URL espanyola també ha de declarar la relació de tornada.

Mètode 3: HTTP headers

Aquest mètode s’aplica exclusivament a recursos no-HTML com PDFs. Es configura a nivell de servidor mitjançant la capçalera Link:

Link: <https://ighenatt.es/ca/guia-seo.pdf>; rel="alternate"; hreflang="ca",
      <https://ighenatt.es/recursos/guia-seo.pdf>; rel="alternate"; hreflang="es"

Per a pàgines web estàndard, aquest mètode no és necessari.

Els 10 errors més freqüents en hreflang

1. Missing return tags (falta de bidireccionalitat)

És l’error més freqüent. La pàgina A inclou una etiqueta apuntant a la pàgina B, però la pàgina B no té l’etiqueta recíproca. Resultat: ambdues anotacions s’ignoren. Assegura’t que el bloc d’etiquetes hreflang és idèntic a totes les pàgines del cluster.

2. Absència del self-referencing tag

Cada pàgina ha d’incloure una etiqueta apuntant-se a ella mateixa, a més de les que apunten a les altres versions.

Solució: Inclou sempre l’etiqueta amb el codi d’idioma de la pàgina actual i la seva URL canònica.

3. x-default absent o mal configurat

x-default defineix quina versió mostrar a usuaris l’idioma dels quals no està cobert per cap etiqueta específica.

Solució: Afegeix hreflang="x-default" apuntant a la versió més universal del contingut.

4. Codis d’idioma invàlids

El format correcte és BCP 47. Errors comuns: ca_ES (guió baix en lloc de guió), CAT en lloc de ca, o spa en lloc de es.

Solució: Per al català: ca. Per a l’espanyol: es o es-ES. Per a l’anglès: en, en-GB, en-US segons el cas.

5. Etiquetes apuntant a URLs amb redireccions

Si una URL retorna un 301 o 302, Google no segueix la redirecció per al propòsit d’hreflang. L’etiqueta ha d’apuntar directament a la URL canònica final.

Solució: Rastreja amb Screaming Frog totes les URLs referenciades i corregeix les que retornen codis 3xx.

6. Etiquetes apuntant a pàgines amb status no-200

Etiquetes que referencien URLs amb 404 o qualsevol status diferent de 200 s’ignoren.

Solució: Auditoria periòdica de totes les URLs en etiquetes hreflang per detectar respostes no-200.

7. Conflicte canonical vs. hreflang

Si una pàgina té una etiqueta canonical apuntant a una URL diferent d’ella mateixa, Google pot prioritzar el canonical i ignorar l’hreflang.

Solució: Les etiquetes canonical han de ser self-referencing a les pàgines amb hreflang.

8. Implementació inconsistent entre mètodes

Tenir hreflang a l’HTML head i al sitemap amb dades diferents genera senyals contradictòries.

Solució: Utilitza un sol mètode de manera consistent a tot el lloc.

9. Trailing slash inconsistent

https://exemple.com/pagina/ i https://exemple.com/pagina són URLs diferents per a Google. Inconsistències en el trailing slash fan que Google tracti els parells com a pàgines no relacionades.

Solució: Defineix una política de trailing slash consistent i aplica-la a totes les URLs de les etiquetes hreflang.

10. URLs relatives en lloc d’absolutes

Hreflang requereix URLs completament qualificades, amb protocol i domini inclosos. Una URL relativa com /ca/recursos/seo-tecnico/hreflang-implementacion/ no és vàlida.

Solució: Utilitza sempre la URL completa: https://ighenatt.es/ca/recursos/seo-tecnico/hreflang-implementacion/.

Verificació de la implementació

Pas 1 — Auditoria amb Screaming Frog

Rastreja el lloc complet, ves a la pestanya Hreflang i filtra per “Non-Reciprocal”. Exporta i corregeix qualsevol URL que aparegui.

Pas 2 — Validació manual i eines hreflang

Verifica les etiquetes rel="alternate" i x-default inspeccionant el codi font de cada pàgina o usant una eina de rastreig. Comprova que les URLs del hreflang siguin accessibles (codi 200) i que apareguin als sitemaps XML. Per a una verificació ràpida per URL, utilitza hreflang.org. Per a verificació indirecta de rastreig, usa la inspecció d’URL de Search Console o els informes de cobertura per detectar errors d’indexació.

Pas 3 — Test amb hreflang.org

L’eina de hreflang.org valida una URL concreta i mostra tots els parells detectats, incloent-hi alertes de bidireccionalitat i codis d’idioma.

Pas 4 — Verificació de l’estat HTTP

Extreu totes les URLs referenciades en les etiquetes hreflang i verifica que totes retornen 200.

Pas 5 — Consistència canonical/hreflang

Per a cada pàgina amb hreflang, confirma que l’etiqueta canonical apunta a la mateixa URL que el self-referencing hreflang.

Implementació en el context de llocs trilingües catalans

Per a un lloc com ighenatt.es, que serveix contingut en espanyol, anglès i català, la implementació d’hreflang es genera programàticament al layout base en Astro. L’objecte localizedSlugs es construeix a partir de helpers d’URL centralitzats i es passa al component de layout, que renderitza les etiquetes al <head>. Quan el layout inclou les etiquetes per a ES, EN i CA, cada una de les tres pàgines del cluster rep el bloc complet amb referències a les altres dues.

El context trilingüe català té una particularitat rellevant: el català (ca) és un idioma amb presència digital relativament baixa en comparació amb l’espanyol i l’anglès. Això significa que Google té menys senyals per determinar la rellevància de les pàgines en català per a usuaris catalanoparlants. Un hreflang correctament implementat és, en aquest context, especialment valuós perquè garanteix que els usuaris catalanoparlants que fan cerques en català vegin la versió catalana del contingut, en lloc de la versió espanyola per defecte.

Per aprofundir en el SEO tècnic i com hreflang s’integra en una estratègia completa, consulta els nostres recursos sobre SEO tècnic i problemes d’indexació a Google.

Comparativa: hreflang implementacio tecnica

Característica hreflang implementacio tecnicaAlternativa
Quin codi hreflang s'utilitza per al català? El codi correcte per al català és 'ca' en format BCP 47. Per a una implementació trilingüe com la d'ighenatt.es, els codis serien: hreflang='es' per a l'espanyol, hreflang='en' per a l'anglès i hreflang='ca' per al català. No s'utilitza 'ca-ES' tret que es vulgui diferenciar explícitament del català parlat fora d'Espanya.-
Quina diferència hi ha entre hreflang i canonical? Canonical indica a Google quina és la URL preferida entre duplicats del mateix contingut en el mateix idioma. Hreflang indica quina és la versió alternativa en un altre idioma o regió. Poden coexistir: una URL pot tenir una etiqueta canonical self-referencing i etiquetes hreflang apuntant a les seves traduccions al mateix temps.-
Què passa si falten els return tags? Segons Google Search Central, si la pàgina X apunta a la pàgina Y amb hreflang però la pàgina Y no té una etiqueta recíproca apuntant a X, ambdues anotacions s'ignoren o no s'interpreten correctament. El parell hreflang deixa de funcionar encara que una de les dues pàgines tingui la configuració perfecta.-
Afecta hreflang directament el posicionament? No directament. Gary Illyes de Google ha explicat que les etiquetes hreflang no funcionen com a senyal algorítmic de ranking per si mateixes. El seu valor real és garantir que cada usuari vegi la versió més rellevant per al seu idioma, i dins d'un cluster de contingut en idiomes diferents, l'autoritat de ranking es comparteix entre totes les pàgines del grup.-
Com verificar que les etiquetes hreflang funcionen? Utilitza Screaming Frog (pestanya Hreflang, filtre 'Non-Reciprocal'), Google Search Console (informe d'internacionalització) o l'eina de hreflang.org. Comprova específicament: bidireccionalitat de tots els parells, presència del self-referencing tag, absència d'URLs amb redirect o status 404, i codis d'idioma en format BCP 47 correcte.-

Punts clau

  • Hreflang és una suggerència per a Google, no una directiva: implementacions incorrectes s'ignoren silenciosament sense errors visibles
  • La regla de bidireccionalitat és absoluta: si la pàgina A apunta a la pàgina B amb hreflang, la pàgina B ha d'apuntar de tornada a la pàgina A
  • Llocs amb ES, EN i CA han d'incloure les tres etiquetes en cada pàgina del cluster, no només les de l'idioma alternatiu
  • Es recomana fortament incloure x-default per gestionar usuaris de regions no cobertes i evitar contingut duplicat entre locales
  • Els codis d'idioma han de seguir el format BCP 47: 'ca' per al català, 'es' per a l'espanyol, 'en' per a l'anglès