<!-- Pe pagina de pe site-ul românesc: https://exemplu.ro/produs-fain -->
<link rel="alternate" hreflang="ro-RO" href="https://exemplu.ro/produs-fain" />
<link rel="alternate" hreflang="en" href="https://exemplu.com/cool-product" />
<link rel="alternate" hreflang="x-default" href="https://exemplu.com/cool-product" />
<!-- Pe pagina de pe site-ul global: https://exemplu.com/cool-product -->
<link rel="alternate" hreflang="ro-RO" href="https://exemplu.ro/produs-fain" />
<link rel="alternate" hreflang="en" href="https://exemplu.com/cool-product" />
<link rel="alternate" hreflang="x-default" href="https://exemplu.com/cool-product" />Săptămâna trecută m-am lovit iar de o problemă veche de când lumea: un magazin online pe .ro și .com care se canibaliza în draci pe Google. Pe scurt, userii din România primeau în căutări varianta în engleză de pe .com, iar cei din afară ajungeau pe .ro și dădeau bounce instant. Clientul pierduse cam 15% din conversii într-o lună din cauza asta. Vinovatul? O implementare de hreflang făcută după ureche, unde paginile nu se legau corect între ele.
Regula de aur pe care o uită 90% dintre devi
Cea mai mare greșeală pe care o văd este lipsa reciprocității. Hreflang nu funcționează ca un simplu redirect sau ca un tag canonical. Este o strângere de mână între două pagini. Dacă pagina de pe site.ro zice „hei, varianta mea de engleză este pe site.com/en”, dar pagina de pe site.com/en nu confirmă asta trimițând înapoi la site.ro, Google va ignora complet ambele taguri. Pur și simplu le consideră invalide.
Un alt detaliu pe care mulți îl ratează este tagul x-default. Acesta îi spune motorului de căutare unde să trimită utilizatorii care nu se potrivesc cu nicio limbă specificată (de exemplu, un user din Germania care caută pe un site care are doar română și engleză globală).
Unde le punem? În HTML sau în XML Sitemap?
Aici avem un trade-off clasic de performanță versus simplitate.
Dacă ai doar două variante (.ro și .com), pune-le direct în HTML, în secțiunea <head>. E cel mai ușor de implementat din backend și le poți citi rapid la un simplu „View Source”.
Dar dacă proiectul crește și ajungi la 10-15 limbi locale, acele taguri vor adăuga câțiva kiloocteți buni la fiecare pagină încărcată. La un proiect cu 20k de produse și trafic mare, asta înseamnă lățime de bandă irosită și un DOM mai greoi pentru utilizator. În cazul ăla, merită efortul să muți logica de hreflang în XML Sitemap. E mult mai greu de scris pipeline-ul de generare în cod, dar salvezi timp de randare în browser.
Cum verifici că funcționează (fără tool-uri scumpe)
Nu ai nevoie de abonamente de sute de euro la platforme de SEO ca să verifici dacă ai făcut treaba bine.
Pentru o verificare rapidă la nivel de pagină, folosesc extensia de Chrome „Hreflang Tag Checker” sau pur și simplu inspectez codul sursă.
Dacă vrei să verifici tot site-ul la grămadă (până în 500 de pagini), varianta gratuită de la Screaming Frog e sfântă. Mergi la secțiunea Configuration > Spider > Crawl, bifezi Hreflang și dai drumul la crawl. Îți va arăta instant erorile de tipul „no return tag” (lipsa reciprocității) sau coduri de limbă invalide (cum ar fi folosirea greșită a en-UK în loc de en-GB).
Voi cum gestionați hreflang-ul la proiectele mari? Preferați să le generați dinamic în HTML sau le lăsați în seama sitemap-ului?