SEO i Màrqueting

Hreflang: què és, com es posa i els errors que l'anul·len

E
Equip editorial Posicionament-Web
28 d’oct. 2026 8 min 12 visites

L'etiqueta hreflang és una anotació que indica a Google quina versió d'una pàgina correspon a cada idioma o país, perquè ensenyi a cada usuari la seva: la catalana a qui cerca en català, la castellana a qui cerca en castellà. No tradueix res ni fa pujar posicions per si sola; evita que als resultats surti la versió equivocada.

Es pot declarar en tres llocs (el <head>, la capçalera HTTP o el sitemap XML) i té una regla que ho decideix gairebé tot: si la pàgina A apunta a la B, la B ha d'apuntar a la A. Quan falta aquesta tornada, Google pot ignorar tota l'anotació. Aquí tens la sintaxi exacta, exemples per copiar i els errors més habituals en webs en català, castellà i anglès.

Esquema de tres versions d'idioma d'una pàgina enllaçades entre si en tots dos sentits, amb una versió per defecte
Cada versió d'idioma apunta a totes les altres i rep l'enllaç de tornada; x-default recull qui no encaixa amb cap.

Què és hreflang i quan cal

És un atribut de l'element <link rel="alternate"> que relaciona entre si les versions d'una mateixa pàgina. Amb ell, Google entén que /ca/serveis/, /es/servicios/ i /en/services/ són la mateixa pàgina en tres idiomes i tria quina mostrar segons l'idioma i el país de qui cerca.

Cal quan:

  • Tens la mateixa pàgina traduïda a diversos idiomes (el cas típic d'una pime catalana: català, castellà i de vegades anglès o francès).
  • Tens el mateix idioma per a diversos països, amb contingut gairebé idèntic i diferències de preu, moneda o enviaments (Espanya i Mèxic, per exemple).
  • Només tradueixes la plantilla (menú, peu) i el contingut principal queda en un idioma, com passa en fòrums o pàgines amb contingut d'usuaris.

No cal si la teva web està en un sol idioma i s'adreça a un sol mercat.

Hreflang no decideix l'idioma de la pàginaGoogle no fa servir hreflang ni l'atribut lang per saber en quin idioma està un text: ho dedueix del contingut. Si la versió «en anglès» conserva mig text en castellà, l'etiqueta no ho arregla.

La decisió prèvia (a quins països vendre i com organitzar la web per fer-ho) és a la guia de SEO internacional per a una pime catalana. Aquí ens quedem amb l'etiqueta.

Sintaxi de l'etiqueta hreflang

Aquest és el bloc complet d'una pàgina amb tres idiomes. Va idèntic a les tres versions:

<link rel="alternate" hreflang="ca" href="https://www.example.com/ca/serveis/" />
<link rel="alternate" hreflang="es" href="https://www.example.com/es/servicios/" />
<link rel="alternate" hreflang="en" href="https://www.example.com/en/services/" />
<link rel="alternate" hreflang="x-default" href="https://www.example.com/en/services/" />
  • rel="alternate": diu que la URL és una versió alternativa de la pàgina.
  • hreflang: el codi d'idioma en format ISO 639-1 (ca, es, en) i, si vols afinar per país, un guionet i el codi de país ISO 3166-1 alfa-2 (es-ES, es-MX, en-GB).
  • href: la URL absoluta, amb protocol i domini.

L'idioma és obligatori; el país, opcional. Un codi de país sol no val: Google el llegiria com a idioma (be és bielorús, no Bèlgica).

ValorÉs correcte?Per què
caSíCatalà, per a qualsevol país
es-ESSíCastellà per a usuaris d'Espanya
en-GBSíAnglès per al Regne Unit
en-UKNoEl codi ISO del Regne Unit és GB
es_ESNoEl separador és un guionet, no un guió baix
es-LA, en-EUNoLA és Laos, no Llatinoamèrica, i EU no és cap codi de país

Si segmentes per país, afegeix sempre una versió genèrica de l'idioma que reculli la resta de parlants:

<link rel="alternate" hreflang="es-ES" href="https://www.example.com/es-es/" />
<link rel="alternate" hreflang="es-MX" href="https://www.example.com/es-mx/" />
<link rel="alternate" hreflang="es" href="https://www.example.com/es/" />

On es posa: head, capçalera HTTP o sitemap

Els tres mètodes valen el mateix per a Google. Tria'n un; si en combines dos, han de dir exactament el mateix.

MètodeQuan convéCompte amb
Etiquetes al <head>Webs amb pocs idiomes. És el que generen la majoria de CMS i plugins multiidiomaHan d'anar dins del <head>, no al cos
Capçalera HTTP LinkFitxers que no són HTML: PDF, documentsS'ha de configurar al servidor
Sitemap XMLMolts idiomes o moltes pàgines: no engreixa l'HTMLCada URL repeteix el grup complet

A la capçalera HTTP

Per a un PDF de tarifes en tres idiomes, el servidor retorna aquesta capçalera (en una sola línia) amb cadascun dels tres fitxers:

Link: <https://www.example.com/ca/tarifes.pdf>; rel="alternate"; hreflang="ca", <https://www.example.com/es/tarifas.pdf>; rel="alternate"; hreflang="es", <https://www.example.com/en/rates.pdf>; rel="alternate"; hreflang="en"

Al sitemap XML

Es declara l'espai de noms xhtml i cada <url> llista totes les versions, inclosa ella mateixa:

<?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">
  <url>
    <loc>https://www.example.com/ca/serveis/</loc>
    <xhtml:link rel="alternate" hreflang="ca" href="https://www.example.com/ca/serveis/" />
    <xhtml:link rel="alternate" hreflang="es" href="https://www.example.com/es/servicios/" />
    <xhtml:link rel="alternate" hreflang="en" href="https://www.example.com/en/services/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.example.com/en/services/" />
  </url>
  <url>
    <loc>https://www.example.com/es/servicios/</loc>
    <xhtml:link rel="alternate" hreflang="ca" href="https://www.example.com/ca/serveis/" />
    <xhtml:link rel="alternate" hreflang="es" href="https://www.example.com/es/servicios/" />
    <xhtml:link rel="alternate" hreflang="en" href="https://www.example.com/en/services/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.example.com/en/services/" />
  </url>
  <url>
    <loc>https://www.example.com/en/services/</loc>
    <xhtml:link rel="alternate" hreflang="ca" href="https://www.example.com/ca/serveis/" />
    <xhtml:link rel="alternate" hreflang="es" href="https://www.example.com/es/servicios/" />
    <xhtml:link rel="alternate" hreflang="en" href="https://www.example.com/en/services/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://www.example.com/en/services/" />
  </url>
</urlset>

Si encara no tens sitemap o no saps com enviar-lo, ho tens explicat a la guia del sitemap XML.

Què és x-default

hreflang="x-default" assenyala la pàgina que ha de veure qui no encaixa amb cap de les versions declarades: un usuari que cerca en alemany en una web que només té català, castellà i anglès. No és obligatori, però és recomanable.

Sol apuntar a un selector d'idioma o a la versió que prefereixes per al públic de fora. En una pime de Girona que ven a turistes, el més raonable és que x-default sigui la versió anglesa; en una que només treballa a Catalunya, la catalana o la castellana. La mateixa URL pot sortir dues vegades: una amb el seu idioma i una altra com a x-default, com a l'exemple de dalt.

Reciprocitat: la regla que més es trenca

Cada versió ha de llistar totes les versions del grup, inclosa ella mateixa. I la relació ha de ser d'anada i tornada: si /ca/serveis/ declara /es/servicios/ com a alternativa, /es/servicios/ ha de declarar /ca/serveis/. Si no, Google pot ignorar aquestes anotacions o interpretar-les malament.

La regla té sentit: sense enllaç de tornada, qualsevol web es podria declarar versió alternativa d'una pàgina teva.

Dues conseqüències pràctiques:

  • Només s'aparellen pàgines equivalents. Si un article existeix només en català, no porta hreflang cap a la portada en castellà: porta només el seu o cap.
  • La canònica de cada versió és ella mateixa. Si /es/servicios/ té una canònica que apunta a /ca/serveis/, li estàs dient a Google que la versió castellana no s'ha d'indexar, i l'hreflang deixa de tenir sentit. Ho explico al post sobre la URL canònica.

Errors d'hreflang més habituals

  1. Falta l'enllaç de tornada. S'afegeix un idioma nou i només s'actualitza la plantilla d'aquell idioma.
  2. Codis inventats: en-UK, es_ES, cat en lloc de ca.
  3. URL relatives (/es/servicios/) o sense protocol. Han de ser absolutes.
  4. Apuntar a URL que no són la definitiva: que redirigeixen, retornen 404, porten noindex o tenen la canònica en una altra pàgina.
  5. Totes les pàgines apunten a la portada de l'altre idioma en lloc de la seva traducció. És l'error clàssic d'un selector d'idioma mal muntat.
  6. Hreflang només a la portada. Es declara pàgina a pàgina, no una vegada per a tot el lloc.
  7. Redirigir automàticament segons la IP o l'idioma del navegador. Googlebot rastreja sobretot des dels Estats Units i sense capçalera Accept-Language, de manera que pot no arribar mai a les altres versions. Millor un avís que suggereixi canviar d'idioma que una redirecció forçosa.

Com comprovar el teu hreflang

  1. Obre el codi font d'una pàgina en cada idioma i cerca hreflang. El bloc ha de ser el mateix a totes.
  2. Obre cada href: ha de respondre amb un 200 directe, sense redirecció.
  3. Comprova que cada versió es llista a si mateixa i que la seva canònica és la seva pròpia URL.
  4. A Search Console, inspecciona una URL de cada idioma per confirmar que està indexada i que la canònica que tria Google és la seva. Search Console ja no té un informe específic d'hreflang, de manera que el resultat es mira a Rendiment: filtra per país i consulta quina pàgina apareix per a cada cerca. Si no coneixes prou l'informe, el tens a com usar Google Search Console pas a pas.

Google aplica els canvis quan ha tornat a rastrejar totes les versions del grup, així que no esperis veure-ho l'endemà.

Si prefereixes que ho revisem nosaltres, l'hreflang forma part de les comprovacions de SEO tècnic de la plataforma, i pots començar per una anàlisi inicial gratuïta de la teva web.

Preguntes freqüents

Hreflang millora el posicionament?

No directament. No fa que una pàgina pugi; fa que Google mostri la versió de l'idioma o país adequat. L'efecte es nota en què l'usuari arriba a la pàgina que entén i no marxa.

Necessito hreflang si la meva web només està en català i castellà?

És recomanable. Amb dos idiomes ja hi ha dues versions de cada pàgina, i hreflang confirma a Google que són equivalents i quina correspon a cada idioma.

És obligatori x-default?

No. És opcional, però convé posar-lo per decidir tu què veu qui no encaixa amb cap dels teus idiomes.

Hreflang substitueix l'etiqueta canonical?

No, es complementen. Canonical assenyala la URL principal entre duplicats; hreflang relaciona versions d'idiomes diferents. Cada versió ha de tenir la seva pròpia canònica i el grup hreflang complet.

Puc fer servir hreflang entre dominis diferents?

Sí. Les versions no han d'estar al mateix domini: una .cat i una .com es poden declarar alternatives, sempre que totes dues s'enllacin mútuament.

En resum

Hreflang és poc codi i molta disciplina: codis ISO correctes, URL absolutes i definitives, el mateix bloc a totes les versions i enllaç de tornada sempre. Si una web multiidioma ensenya l'idioma equivocat a Google, el primer que cal mirar és la reciprocitat. Vols saber com està la teva? Demana l'anàlisi inicial gratuïta.

Vols millorar el posicionament del teu negoci a Catalunya?

Et fem una anàlisi SEO inicial gratuïta i t'indiquem per on començar.

Anàlisi gratuïta


Compartir:
E
Equip editorial Posicionament-Web

L'equip editorial de Posicionament-Web publica continguts SEO pensats per a negocis de Catalunya.

Comentaris

No hi ha comentaris encara. Sigues el primer a comentar!

Deixa un comentari

Falta poc per enviar-ho