Sitemap XML: cum îl creezi, ce incluzi și cum îl trimiți în Google
Sitemap XML explicat practic: ce URL-uri incluzi, cum arată fișierul corect, cum îl trimiți în Search Console și ce greșeli îl fac inutil.
Pe scurt
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ă.
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:
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ă.
Ai nevoie de hreflang când ai aceleași pagini, în mai multe limbi sau pentru mai multe regiuni. Situațiile tipice:
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.
Î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ă | Exemplu | Avantaj | Dezavantaj |
|---|---|---|---|
| Subdirector | site.ro/en/ | Un singur domeniu, autoritate concentrată, mentenanță ușoară | Geotargetarea nu e evidentă doar din adresă |
| Subdomeniu | en.site.ro | Separare clară, se poate găzdui separat | Utilizatorii recunosc mai greu țara; mentenanță dublă |
| Domeniu cu extensie de țară (ccTLD) | site.de | Semnalul 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ă:
Google acceptă trei metode echivalente. Nu le combina fără motiv: dacă ele se contrazic, apar conflicte greu de depistat.
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://).
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"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 pentru | Atenție |
|---|---|---|
| HTML în head | Site-uri mici și medii | Crește greutatea HTML-ului la multe limbi |
| Antet HTTP | PDF-uri și fișiere non-HTML | Necesită configurare pe server |
| Sitemap XML | Site-uri mari, multe limbi | Trebuie regenerat la fiecare modificare de URL |
Iată ordinea pe care o urmăm când lucrăm la partea tehnică a unui site multilingv.
lang pe elementul html al fiecărei pagini (<html lang="ro">, <html lang="en">).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.
| Cod | Valid? | Explicație |
|---|---|---|
ro | Da | Română, indiferent de țară |
en | Da | Engleză, general |
en-US | Da | Engleză pentru Statele Unite |
en-GB | Da | Engleză pentru Marea Britanie |
ro-RO | Da | Română pentru România (rareori necesar) |
x-default | Da | Varianta de rezervă |
GB sau UK | Nu | Codul de țară nu poate fi dat singur; „UK” nici nu e cod ISO de țară pentru Marea Britanie |
en-EU | Nu | „EU” nu este cod de țară |
be pentru Belgia | Nu | be î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.
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.
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.
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.
//exemplu.ro/en/ sau /en/ nu sunt valide; scrie URL-ul complet.en-UK, EU. Verifică în tabelul de mai sus.Combină trei verificări:
Nu orice site are nevoie de hreflang.
en-US și en-GB sunt identice, un singur en este mai simplu și suficient.lang sau antetul Content-Language, așa că păstrează și acele semnale corecte.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:
x-default.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.
Întrebări frecvente
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ă.
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.
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.
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.
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
Citește și
Sitemap XML explicat practic: ce URL-uri incluzi, cum arată fișierul corect, cum îl trimiți în Search Console și ce greșeli îl fac inutil.
Core Web Vitals explicate pe înțeles: pragurile LCP, INP și CLS, cât contează pentru poziții, cum măsori corect și ce repari mai întâi.
JavaScript SEO explicat: cum randează Google paginile, ce modele de randare alegi (SSR, SSG, CSR), erorile frecvente și cum testezi indexarea pas cu pas.
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.