Blog SEO · SEO tehnic

Hreflang și SEO multilingv: cum setezi corect un site în mai multe limbi

Pe scurt

  • Hreflang este un atribut care spune Google ce versiune a unei pagini să arate utilizatorilor, în funcție de limba și regiunea lor. Nu crește pozițiile și nu traduce nimic.
  • Regula de bază: fiecare versiune trebuie să se refere la toate celelalte și la ea însăși, iar legăturile trebuie să fie reciproce. Fără reciprocitate, Google ignoră anotările.
  • Poți implementa hreflang în HTML, în antetul HTTP sau în sitemap XML. Alege o singură metodă și păstrează-o consecventă pe tot site-ul.
  • Codul de limbă este obligatoriu (ro, en), iar regiunea e opțională (en-US). Codul de țară singur, precum „UK”, nu este valid.
  • Dacă ai o singură limbă, nu ai nevoie de hreflang. Un URL canonic corect și un conținut clar în limba paginii sunt suficiente.

Hreflang este un atribut care spune Google ce versiune a unei pagini să arate utilizatorilor, în funcție de limba și de regiunea lor, atunci când ai același conținut în mai multe limbi. Nu traduce site-ul și nu aduce poziții în plus: doar leagă între ele paginile-pereche. Corect configurat, evită ca un cititor din București să ajungă pe varianta în engleză a paginii pe care o căuta în română.

Ce este hreflang și ce rezolvă

Numele vine din atributele href și hreflang ale elementului <link>. Hreflang este un set de anotări care declară: „aceasta este varianta în română, aceasta este varianta în engleză, iar cealaltă este pentru cititorii din Statele Unite”. Google folosește aceste anotări ca să afișeze în rezultate URL-ul potrivit utilizatorului.

Problema pe care o rezolvă este simplă. Ai o pagină în română și una în engleză, cu conținut apropiat. Fără nicio indicație, Google poate decide singur ce arată fiecărui utilizator, iar uneori alege greșit. Cu anotările la locul lor, are o hartă explicită.

Trei lucruri pe care hreflang nu le face:

  • nu crește pozițiile unei pagini și nu transferă autoritate între versiuni;
  • nu înlocuiește un conținut tradus bine, pentru că Google stabilește limba paginii din textul vizibil, nu din atribute;
  • nu blochează versiunea greșită, ci doar o sugerează. Este un indiciu pentru Google, nu o comandă.

Un detaliu util din documentația Google: limba paginii este determinată algoritmic, după conținut. Atributul HTML lang rămâne important pentru accesibilitate și pentru cititoarele de ecran, dar nu este el cel care îi spune Google în ce limbă e pagina. Declară-l oricum, corect, pe fiecare pagină.

Când ai nevoie de hreflang

Ai nevoie de hreflang când ai aceleași pagini, în mai multe limbi sau pentru mai multe regiuni. Situațiile tipice:

  1. Un site de prezentare în română și în engleză, ca să te adresezi și clienților străini din România.
  2. Un magazin care vinde în mai multe țări, cu prețuri și livrare diferite, dar cu aceeași limbă (de exemplu en-US și en-GB, sau ro-RO și ro-MD).
  3. Un blog tradus integral, în care fiecare articol are un corespondent.
  4. Un site cu pagini în aceeași limbă, dar cu conținut parțial diferit pentru piețe diferite.

Dacă te regăsești în una dintre ele, continuă; hreflang face parte din SEO-ul tehnic al unui site multilingv, alături de indexare și structura adreselor. Dacă ai un singur site în română pentru clienți din România, treci la secțiunea despre limite: nu ai ce configura.

Cum alegi structura URL pentru versiunile de limbă

Înainte de orice cod, alegi cum arată adresele. Documentația Google compară trei variante principale, iar parametrii de tip ?lang=en nu sunt recomandați, pentru că segmentarea devine greoaie.

StructurăExempluAvantajDezavantaj
Subdirectorsite.ro/en/Un singur domeniu, autoritate concentrată, mentenanță ușoarăGeotargetarea nu e evidentă doar din adresă
Subdomeniuen.site.roSeparare clară, se poate găzdui separatUtilizatorii recunosc mai greu țara; mentenanță dublă
Domeniu cu extensie de țară (ccTLD)site.deSemnalul cel mai clar de țintire geograficăCostisitor, cere conținut și administrare separate

Pentru majoritatea IMM-urilor din România, subdirectorul este alegerea practică: un singur domeniu, un singur certificat, un singur sitemap, iar autoritatea domeniului se acumulează într-un loc. ccTLD-ul merită dacă ai echipe și bugete separate pe țări.

Două reguli indiferent de structură:

  • fiecare limbă are URL-uri proprii, nu un conținut care se schimbă dinamic pe aceeași adresă după cookie sau după IP;
  • evită redirecționarea automată a utilizatorilor către o altă versiune de limbă. Documentația Google spune clar să eviți redirecturile automate între versiuni, pentru că împiedică accesul la toate variantele. Oferă în schimb un selector de limbă vizibil.

Cele trei metode de implementare

Google acceptă trei metode echivalente. Nu le combina fără motiv: dacă ele se contrazic, apar conflicte greu de depistat.

1. Etichete în head-ul HTML

Cea mai folosită metodă pentru site-uri de dimensiuni mici și medii. Fiecare pagină conține setul complet:

<link rel="alternate" hreflang="ro" href="https://exemplu.ro/servicii/" />
<link rel="alternate" hreflang="en" href="https://exemplu.ro/en/services/" />
<link rel="alternate" hreflang="x-default" href="https://exemplu.ro/servicii/" />

Aceleași trei rânduri apar pe ambele pagini, atât în versiunea în română, cât și în cea în engleză. Adresele sunt complete, cu protocol (https://).

2. Antet HTTP

Util pentru fișiere care nu sunt HTML, cum ar fi PDF-urile. Serverul trimite antetul Link:

Link: <https://exemplu.ro/ghid.pdf>; rel="alternate"; hreflang="ro",
      <https://exemplu.ro/en/guide.pdf>; rel="alternate"; hreflang="en"

3. Sitemap XML

Potrivit pentru site-uri mari, pentru că nu mai încarci fiecare pagină cu zeci de etichete. Fiecare intrare <url> conține toate variantele:

<url>
  <loc>https://exemplu.ro/servicii/</loc>
  <xhtml:link rel="alternate" hreflang="ro" href="https://exemplu.ro/servicii/"/>
  <xhtml:link rel="alternate" hreflang="en" href="https://exemplu.ro/en/services/"/>
</url>

Elementul rădăcină trebuie să declare spațiul de nume xmlns:xhtml="http://www.w3.org/1999/xhtml". Dacă ai deja un sitemap bine făcut, citește ghidul despre sitemap XML înainte să adaugi anotări în el.

MetodăCel mai bine pentruAtenție
HTML în headSite-uri mici și mediiCrește greutatea HTML-ului la multe limbi
Antet HTTPPDF-uri și fișiere non-HTMLNecesită configurare pe server
Sitemap XMLSite-uri mari, multe limbiTrebuie regenerat la fiecare modificare de URL

Pașii unei configurări corecte

Iată ordinea pe care o urmăm când lucrăm la partea tehnică a unui site multilingv.

  1. Inventariază perechile. Fă o listă a paginilor care au echivalent real în altă limbă. Pagina fără pereche nu intră în set.
  2. Fixează URL-urile finale. Nu începe cu anotările dacă adresele se mai schimbă. Altfel va trebui să corectezi toate etichetele ulterior.
  3. Alege metoda (HTML, antet sau sitemap) și rămâi la ea.
  4. Generează setul complet pentru fiecare pagină, incluzând pagina însăși. Pentru liste mici poți folosi generatorul de hreflang, care produce etichetele gata de lipit.
  5. Adaugă x-default către pagina care servește oamenii fără o limbă potrivită, de regulă selectorul de limbă sau versiunea principală.
  6. Setează lang pe elementul html al fiecărei pagini (<html lang="ro">, <html lang="en">).
  7. Verifică reciprocitatea cu un crawler: pentru fiecare adresă A care îl indică pe B, B trebuie să îl indice pe A.
  8. Trimite sitemapul în Search Console și urmărește indexarea ambelor versiuni.

Coduri de limbă și regiune: ce este valid

Formatul urmează standardele ISO: codul de limbă (ISO 639-1, două litere), opțional urmat de codul de regiune (ISO 3166-1 alpha 2). Separatorul este cratima.

CodValid?Explicație
roDaRomână, indiferent de țară
enDaEngleză, general
en-USDaEngleză pentru Statele Unite
en-GBDaEngleză pentru Marea Britanie
ro-RODaRomână pentru România (rareori necesar)
x-defaultDaVarianta de rezervă
GB sau UKNuCodul de țară nu poate fi dat singur; „UK” nici nu e cod ISO de țară pentru Marea Britanie
en-EUNu„EU” nu este cod de țară
be pentru BelgiaNube înseamnă limba belarusă

Regula practică: dacă nu ai conținut diferit între regiuni ale aceleiași limbi, folosește doar codul de limbă. Complicațiile apar fără motiv când adaugi ro-RO și ro-MD pe pagini identice.

Ce este x-default

x-default indică pagina folosită când limba utilizatorului nu corespunde niciunei variante. În practică, pune pagina principală sau un selector de limbă. Este o valoare recomandată, nu obligatorie, dar evită ambiguitatea pentru utilizatorii din țări neacoperite.

Hreflang și canonical: cum nu le contrazici

Cele două mecanisme lucrează împreună și sunt cea mai frecventă sursă de conflicte. Regula: fiecare versiune de limbă are canonical către ea însăși, nu către versiunea în altă limbă.

Dacă pagina engleză are canonical către cea română, îi spui Google „versiunea engleză e doar un duplicat al celei românești”, iar anotarea hreflang devine inutilă, sau contradictorie. Mai mult, adresele din setul hreflang ar trebui să fie cele canonice, indexabile, cu cod 200. Explicația completă despre duplicate și canonical e în articolul despre canonical și conținut duplicat, iar dacă o versiune dispare și o redirecționezi, vezi redirecturile 301 și 302.

Exemplu: cum arată configurarea pe un site real

Acest site, succes-seo.ro, are versiune în română la rădăcină și în engleză sub /en/. Fiecare pagină română indică echivalentul ei englez și invers, iar x-default trimite către varianta în engleză, ca variantă generală pentru vizitatorii a căror limbă nu se potrivește cu niciuna dintre cele două. Structura este cea din tabelul de mai sus, în varianta cu subdirector: un singur domeniu, un singur sitemap, o singură autoritate. Nu avem nevoie de coduri de regiune, pentru că nu avem conținut diferit pe țări.

Pe baza aceluiași principiu, un site cu trei limbi ar avea, pe fiecare pagină, patru rânduri: unul pentru fiecare limbă (inclusiv cea curentă) și unul x-default.

Greșeli frecvente

  • Lipsa reciprocității. Pagina A îl indică pe B, dar B nu îl indică pe A. Google ignoră perechea.
  • Lipsa anotării către ea însăși. Fiecare versiune apare în propriul set.
  • Adrese relative. //exemplu.ro/en/ sau /en/ nu sunt valide; scrie URL-ul complet.
  • Coduri greșite. en-UK, EU. Verifică în tabelul de mai sus.
  • Canonical încrucișat. Versiunea engleză cu canonical către română.
  • URL-uri care redirecționează sau returnează 404. Setul trebuie să conțină doar pagini indexabile.
  • Redirecționare automată după limba browserului. Blochează accesul crawlerelor la variante.
  • Traducere automată publicată fără revizuire. Nu este doar o problemă de calitate: conținutul generat la scară, fără revizuire umană și fără valoare adăugată, poate intra sub incidența politicilor Google privind spamul. Traduce cu grijă și revizuiește.
  • Amestecul metodelor. HTML plus sitemap cu seturi diferite generează confuzie.

Cum verifici că funcționează

Combină trei verificări:

  1. Crawler. Rulează un crawler (Screaming Frog, Sitebulb și altele fac raport de hreflang) și caută erorile de reciprocitate, de cod și de status.
  2. Search Console. Inspectează un URL din fiecare limbă și verifică dacă este indexat și ce canonical a ales Google. Dacă o versiune lipsește din index, citește ghidul despre paginile neindexate. Dacă nu ai folosit încă instrumentul, începe cu ghidul Google Search Console pentru începători.
  3. Rezultat real. Caută pe Google, dintr-un browser setat pe limba respectivă, o interogare care ar trebui să returneze pagina în limba potrivită. Rezultatul e orientativ, pentru că depinde de personalizare și de locație.

Limite: când nu ai nevoie de hreflang

Nu orice site are nevoie de hreflang.

  • Un singur site, o singură limbă. Nu ai ce lega.
  • Traduceri parțiale, cu doar câteva pagini. Poți folosi anotări doar pentru cele care au pereche, dar nu forța restul.
  • Aceeași pagină, fără conținut diferit între regiuni. Dacă en-US și en-GB sunt identice, un singur en este mai simplu și suficient.
  • Alte motoare de căutare. Documentația aceasta este a Google. Alte motoare pot folosi alte semnale, precum atributul lang sau antetul Content-Language, așa că păstrează și acele semnale corecte.
  • Hreflang nu repară conținutul slab. O pagină tradusă de mântuială nu va fi servită mai bine doar pentru că ai pus anotări.

Concluzie: pașii următori

Hreflang este o infrastructură discretă: când e corect, nu îl observă nimeni; când e greșit, utilizatorii ajung pe pagina în altă limbă. Aplică în ordine:

  1. Decide structura (de regulă subdirector) și fixează adresele.
  2. Listează perechile reale de pagini și generează setul complet, cu auto-referință și x-default.
  3. Verifică reciprocitatea și codurile cu un crawler, apoi urmărește indexarea în Search Console.

Dacă ai de lansat sau de reparat un site multilingv și vrei ca partea tehnică să fie verificată de la cap la coadă, serviciul de SEO tehnic include exact aceste controale. Pentru restul resurselor, vezi blogul.

Surse și lectură suplimentară

Întrebări frecvente

Întrebări frecvente

Hreflang este factor de ranking?

Nu. Hreflang nu urcă o pagină în clasament și nu adaugă autoritate. Rolul lui este să ajute Google să aleagă versiunea potrivită pentru limba și regiunea utilizatorului, deci să arate varianta corectă, nu să o promoveze. Poate reduce situațiile în care un vizitator din România vede pagina în engleză.

Pot folosi hreflang între două domenii diferite?

Da. Anotările pot lega URL-uri de pe domenii sau subdomenii diferite, de exemplu un .ro și un .de. Condiția rămâne aceeași: fiecare pagină trebuie să indice celelalte versiuni și să primească indicația înapoi. Pentru domenii diferite, verifică și că ambele sunt accesibile pentru crawlere.

Ce fac dacă am o versiune de pagină doar într-o limbă?

Nu inventa versiuni. Pagina existentă poate avea doar o anotare către ea însăși, sau poate lipsi din setul hreflang. Dacă îți faci o pagină gemenă în altă limbă mai târziu, adaugă atunci anotările reciproce pe ambele. Un set cu URL-uri care returnează 404 strică semnalele.

Trebuie să adaug hreflang și pe paginile paginate sau filtrate?

Doar pe paginile care sunt indexabile și au un echivalent real în altă limbă. Variantele filtrate sau cu parametri, canonicalizate către alt URL, nu intră în set. Pune anotările pe URL-ul canonic, pagină cu pagină, nu pe orice combinație posibilă de parametri.

Cât durează până se vede efectul hreflang?

Depinde de cât de repede recrawlează Google paginile din set, deci de la câteva zile la câteva săptămâni pentru site-uri mici. Nu există un termen garantat. Trimite sitemapul actualizat, verifică în Search Console că ambele versiuni sunt indexate și evită să modifici adresele în timpul acestui interval.

Serviciul asociat

SEO tehnic & viteză

Vezi serviciul →

Hai să creștem traficul organic al site-ului tău

Trimite-ne adresa site-ului și îți răspundem cu o analiză inițială gratuită și o strategie concretă de optimizare SEO — fără obligații.