Hreflang: que Google ensenyi a cadascú el seu idioma
L'hreflang és una anotació que diu a Google quines pàgines són la mateixa en un altre idioma o per a un altre país, perquè ensenyi a cada persona la seva versió. No tradueix ni redirigeix res, i només compta si les versions s'apunten entre elles. En un web en català i castellà, és el que ajuda que qui cerca en castellà arribi a la pàgina castellana.
Per a qui té el web en diversos idiomes o països i veu a Google la versió que no toca.
Les tres línies, idèntiques a totes dues pàgines
Què fa l'hreflang i què no fa
Google el fa servir per entendre que diverses adreces són variants localitzades del mateix contingut.
Una traducció no és contingut duplicat: Google només ho considera si el contingut principal queda sense traduir. Traduir només el menú i el peu és un problema de contingut, no d'hreflang.
Idioma, regió i x-default
Obligatori, en ISO 639-1
Dues lletres: ca, es, en. Va sempre primer; el país sol no val: «be» és el bielorús, no Bèlgica.
Opcional, en ISO 3166-1
Dues lletres darrere de l'idioma: es-ES, en-GB. Google no admet es-419 i ignora codis reservats com EU, UN o UK.
x-default
La pàgina per a qui no encaixa en cap idioma declarat. Pensada per als selectors d'idioma, val per a qualsevol pàgina.
Indiferents
Google accepta es-es i es-ES. La convenció és escriure la regió en majúscules.
Així ho declara la portada del nostre web, amb el castellà a l'arrel i el català a /ca/. Les dues versions porten aquestes tres línies:
<link rel="alternate" hreflang="ca" href="https://daimatics.agency/ca/">
<link rel="alternate" hreflang="es-es" href="https://daimatics.agency/">
<link rel="alternate" hreflang="x-default" href="https://daimatics.agency/">
El nostre criteri: posa la regió només si el contingut canvia per país: preus, enviaments o normativa. Si no, el codi d'idioma sol val per a tots els països.
Tres maneres, i n'has de triar una
Per a Google són equivalents. Fer-les servir alhora no aporta res i és més difícil de mantenir.
Al codi HTML
Una etiqueta link per versió dins del head, inclosa la mateixa pàgina. El conjunt és idèntic a totes les versions.
A la capçalera HTTP
Una línia Link a la resposta del servidor. És la via per als fitxers sense HTML, com els PDF.
Al sitemap
Cada adreça porta tants xhtml:link com versions, ella inclosa. No compten per al límit d'adreces del sitemap.
<url>
<loc>https://example.com/ca/serveis/</loc>
<xhtml:link rel="alternate" hreflang="ca" href="https://example.com/ca/serveis/"/>
<xhtml:link rel="alternate" hreflang="es" href="https://example.com/servicios/"/>
</url>
Per a totes: adreces completes amb https, cada versió s'inclou a ella mateixa i, en HTML, les etiquetes van dins d'un head ben format.
Dues etiquetes que no s'han de contradir
Totes dues viuen al head, amb les altres meta tags. El canonical diu quina adreça és l'original d'un grup de duplicats; l'hreflang, quines són traduccions.
El nostre criteri: cada adreça de l'hreflang ha de ser la canònica de la seva versió i respondre sense redirecció ni noindex.
Per què Google ensenya la versió que no toca
Falta la tornada
Si la pàgina X apunta a la Y i la Y no torna a la X, Google pot ignorar les etiquetes. Passa sovint en afegir un idioma.
Relatives o amb http
Google demana adreces completes, amb el protocol, i avisa de no posar-hi la versió http quan la bona és la https.
Per idioma o per IP
Googlebot rastreja sobretot des dels Estats Units i sense capçalera d'idioma: si redirigeixes, pot no veure mai les altres versions.
Un slug canviat a mitges
Canvies el permalink d'una versió i les altres continuen apuntant a l'antic.
Dues mirades a Search Console i una al codi
Una part de la revisió de SEO tècnic que es pot fer sense eines de pagament.
La canònica que tria Google
La inspecció d'URL de Search Console et diu quina canònica ha triat Google per a cada versió.
Les consultes de cada versió
A l'informe de rendiment, filtra per pàgina i per país. Si les cerques en castellà cauen a la versió catalana, revisa-ho.
El codi de cada versió
Enganxa les etiquetes de cada versió al revisor d'aquí sota.
Revisor d'hreflang: enganxa dues o tres versions
Posa l'adreça de cada versió i enganxa-hi les etiquetes link del seu head, o el codi font sencer. Porta un exemple il·lustratiu amb un error: canvia'l per les teves etiquetes.
El resultat
Omple com a mínim dues versions, amb l'adreça i les etiquetes.
Tot quadra: codis vàlids, adreces completes, cada versió es llista a si mateixa i totes s'apunten entre elles.
No hi ha errors, però mira els avisos.
Hi ha errors: amb aquestes etiquetes, Google pot ignorar l'hreflang o una part.
- Codis no vàlids: . Idioma en ISO 639-1 i, si cal, regió en ISO 3166-1.
- Adreces relatives o sense https: .
- No es llisten a si mateixes les versions .
- Falten tornades. La primera versió de cada parella no apunta a la segona: . Sense tornada, Google ignora la parella.
- Un mateix codi amb dues adreces: .
- Canonical cap a una altra adreça a les versions . Cada versió ha de ser la seva pròpia canònica.
- Avís: alguna versió no porta x-default. No és obligatori, però Google el recomana com a pàgina per defecte.
- Avís: els conjunts d'etiquetes no són idèntics entre versions, i Google demana el mateix conjunt a totes.
Criteri propi de Daimatics sobre la documentació de Google. Tot passa al teu navegador: el que enganxes no s'envia enlloc.
Quan l'idioma ja et fa perdre visites
- Google ensenya la pàgina catalana a qui cerca en castellà, o al revés.
- Search Console tria com a canònica la versió d'un altre idioma.
- Afegeixes un idioma o un país i les pàgines noves no surten.
- Prepares una migració o un canvi d'adreces en un web amb diversos idiomes.
Abans de tocar res, revisem el web, Search Console i com genera les etiquetes el teu gestor de continguts.
Dubtes sobre l'hreflang
Si la pàgina B no torna a la A, per a Google és com si l'etiqueta no hi fos.
Què és l'hreflang i per a què serveix?
Què és hreflang x-default i quan s'ha de posar?
Com es combinen l'hreflang i el canonical?
Quin codi hreflang poso per al català i el castellà?
Per què Google mostra la versió en un altre idioma si tinc hreflang?
Com comprovo si l'hreflang està ben posat?
Fonts oficials
Google Search Central
Ajuda de Search Console