Un site bilingv are o problemă pe care un site în o singură limbă nu o are: Google trebuie să înțeleagă că două pagini aproape identice, una în română și una în engleză, sunt versiuni ale aceluiași conținut și nu două pagini concurente. Atributul hreflang îi spune exact asta. Când e pus bine, utilizatorul din România vede în rezultate pagina în română, iar cel din afară vede pagina în engleză. Când e pus greșit, Google îl ignoră, iar rezultatele pot arăta versiunea greșită sau pot trata paginile ca duplicate.
Ghidul listează cele mai frecvente 10 greșeli de hreflang pe un site RO/EN, cum le recunoști și cum le repari. Îl folosim pe propriul nostru site, unde fiecare pagină are o pereche în cealaltă limbă, iar secțiunea finală arată cum îl genereazăm automat.
Pe scurt: hreflang este o legătură reciprocă între versiunile unei pagini. Fiecare versiune trebuie să listeze toate versiunile, inclusiv pe ea însăși, cu URL-uri absolute, coduri de limbă valide și doar spre pagini indexabile care răspund 200. Alege o singură metodă principală (HTML, antet HTTP sau sitemap) și păstrează-o consistentă.
Ce face hreflang și ce nu face
Hreflang nu este un factor de clasare. Nu îți îmbunătățește poziția, ci ajută Google să aleagă care versiune a unei pagini să o arate unui anumit utilizator. Dacă ai un site cu conținut în română și în engleză și nu îl folosești, nu ai o penalizare, dar riști ca motorul de căutare să arate o versiune nepotrivită utilizatorului sau să considere cele două pagini duplicate. Implementarea greșită e uneori mai rea decât lipsa ei, pentru că semnalează contradictoriu.
Cum arată corect
Se pune în <head>-ul fiecărei pagini câte o linie pentru fiecare versiune, plus una pentru x-default, adică pagina de rezervă pentru utilizatorii care nu se potrivesc cu nicio limbă. Exemplul de mai jos este din pagina noastră de integrare ERP:
<link rel="alternate" hreflang="ro" href="https://maxdev.ro/servicii/integrare-erp/">
<link rel="alternate" hreflang="en" href="https://maxdev.ro/en/services/erp-integration/">
<link rel="alternate" hreflang="x-default" href="https://maxdev.ro/servicii/integrare-erp/">
Aceleași trei linii apar și pe pagina în engleză. Această simetrie e esența hreflang: fiecare pagină își listează propriile versiuni, la fel ca și perechea ei.
Cele 10 greșeli frecvente
- Lipsa linkurilor reciproce. Pagina română trimite spre cea engleză, dar cea engleză nu trimite înapoi. Google cere confirmare din ambele părți, deci legătura unilaterală e ignorată.
- Lipsa auto-referinței. Fiecare pagină trebuie să se listeze și pe ea însăși, nu doar pe cealaltă versiune.
- URL-uri relative sau fără protocol. Valorile trebuie să fie complete, cu
https://și domeniu, nu/en/services/sau//maxdev.ro/.... - Coduri de limbă sau de țară greșite.
roșiensunt valide, la felen-GBsauro-RO, darROsingur nu este cod de limbă, iaren-UKeste greșit (cel corect esteen-GB). Limba vine întâi, țara după ea. - Trimiteri spre pagini care nu se indexează. Un hreflang care duce la o pagină cu redirecționare, cu eroare 404 sau cu
noindexe ignorat. - Canonical către altă limbă. Dacă pagina în engleză are canonical spre cea română, îi spui lui Google că versiunea engleză nu contează, în timp ce hreflang spune contrariul. Fiecare versiune își este propriul canonical.
- x-default lipsă sau pus la întâmplare. Alege conștient pagina de rezervă. Noi am ales versiunea română.
- Inconsistență între HTML și sitemap. Dacă folosești ambele metode, trebuie să spună exact același lucru. Două surse care se contrazic produc exact genul de semnal ambiguu pe care vrei să-l eviți.
- Redirecționare automată după IP sau după limba browserului. Robotul Google nu călătorește, iar o redirecționare forțată ascunde una din versiuni. Oferă un selector de limbă și lasă utilizatorul să aleagă.
- Selector de limbă care duce la pagina principală, nu la echivalent. Utilizatorul care apasă EN pe un articol ajunge pe home, iar legătura hreflang nu mai coincide cu comportamentul site-ului. Selectorul trebuie să ducă la pagina pereche exactă.
În plus, trei situații mai discrete: traduceri parțiale (hreflang spre o pagină care nu există încă în cealaltă limbă), diferențe între http și https sau între cu și fără slash final între cele două versiuni ale aceluiași URL, și hreflang pus pe pagini filtrate sau paginate, care ar trebui să aibă o logică proprie.
Ce metodă alegi: HTML, antet HTTP sau sitemap
Există trei locuri unde poți declara hreflang. În HTML, în <head>, e cel mai ușor de verificat vizual și potrivit pentru majoritatea site-urilor. În antetul HTTP e util pentru fișiere care nu sunt HTML, precum PDF-urile. În sitemap e comod pentru site-uri mari, unde adaugi un bloc pe URL în loc să modifici fiecare pagină. Una singură este suficientă. Dacă le folosești pe mai multe, generează-le din aceeași sursă, ca să nu se contrazică.
Cum îl automatizezi
Pe un site WordPress, un plugin multilingv (WPML, Polylang, TranslatePress) generează de obicei hreflang singur. Dar nu te baza orb pe el: după instalare, deschide câteva pagini, vezi codul sursă și verifică simetria. Dacă ai teme sau plugin-uri personalizate, merită un audit din partea unei echipe de dezvoltare WordPress.
Pe un site static, ca al nostru, ai nevoie de o singură sursă de adevăr: un fișier de mapare între paginile române și cele englezești. Din el se generează selectorul de limbă, liniile hreflang și blocurile din sitemap, ca să nu poată ieși diferit. Două reguli pe care le respectăm: hreflang apare doar când ambele versiuni există ca fișiere reale, iar o pagină fără pereche trimite selectorul spre rădăcina limbii, nu spre o pagină inexistentă. Pentru un site nou, construit de la zero, pune această mapare încă din prima zi.
Cum verifici
- Codul sursă. Deschide pagina, văzi sursa și caută
hreflang. Verifică simetria cu pagina pereche. - Un crawler. Instrumente precum Screaming Frog au un raport dedicat de hreflang, care arată linkurile lipsă, canonical-urile contradictorii și paginile cu erori.
- Inspectarea URL-ului în Search Console. Arată canonical-ul pe care îl vede Google. Nu mai există un raport dedicat de erori hreflang, așa că verificarea cere unelte proprii.
- O verificare periodică. După fiecare pagină nouă sau mutată, hreflang-ul se poate strica, în special pe sitemap-uri generate manual.
Pentru o evaluare completă a site-ului tău, un audit de SEO tehnic acoperă hreflang, canonical-urile, indexarea și vitezele de încărcare într-un singur raport.
Checklist final
- Fiecare pagină are o pereche în cealaltă limbă, nu doar paginile principale.
- Fiecare pagină listează toate versiunile, inclusiv pe ea însăși, plus x-default.
- Toate URL-urile sunt absolute, cu
httpsși același format de slash final. - Toate răspund 200, nu au
noindexși nu redirecționează. - Fiecare versiune are canonical propriu.
- Sitemap-ul și HTML-ul spun același lucru.
- Selectorul de limbă duce la echivalent, nu la home.
- Nu există redirecționare automată după limbă sau IP.
Întrebări frecvente
Hreflang îmbunătățește poziția în Google?
Nu direct. Îl ajută pe Google să arate utilizatorului versiunea potrivită, ceea ce reduce confuziile și duplicatele, dar nu e un factor de clasare.
Dacă traduc doar o parte din site, ce fac cu restul?
Pune hreflang doar pe paginile care au pereche. Pentru restul, nu adaugi nimic, iar selectorul de limbă trimite spre pagina principală a limbii respective.
Ce pun la x-default?
Pagina pe care vrei să o vadă utilizatorii care nu se potrivesc cu nicio limbă declarată, de obicei versiunea principală sau o pagină de alegere a limbii. Important e să fie o alegere conștientă.
Subdirector, subdomeniu sau domenii separate pentru limbi?
Pentru majoritatea site-urilor de companie, un subdirector (precum /en/) e cel mai simplu de menținut, iar hreflang merge la fel în toate variantele. Alege după cum îți organizezi echipa și infrastructura, nu după un mit despre SEO.
Cum știu dacă hreflang-ul meu e stricat?
Rulează un crawler pe site și caută linkuri lipsă, pagini cu 404 sau noindex și canonical-uri care contrazic hreflang-ul. Dacă versiunea greșită apare în rezultate, e un semnal că ceva nu este în regulă.
Dacă vrei să verificăm împreună indexarea unui site bilingv, descrie-ne situația ta și revenim cu ce am găsi.
