Arutame projekti

Hreflang: seadistamine, levinud vead ja kontroll

Kuidas seadistada hreflang mitmekeelsel veebilehel, millised vead lõhuvad märgistuse tervikuna ja kuidas kontrollida, kas Google selle vastu võttis.

Vladislav Krivorutsko20. juuli 20266 min lugemist
Sisukord

TL;DR — lühidalt peamisest

  • Hreflang ei tõsta positsioone. Selle ülesanne on näidata õigele kasutajale õiget keeleversiooni ja hoida versioonid omavahel konkureerimast
  • Kolm reeglit, mille peal enamik seadistusi puruneb: lingid on vastastikused, iga leht viitab ka iseendale, kõik URLid on absoluutsed ja vastavad koodiga 200
  • Üks viga ühes klastris lülitab hreflangi tavaliselt välja kogu klastri ulatuses, mitte ainult ühel lehel
  • Paigutusviis (`<head>`, sisukaart või HTTP-päis) tulemust ei mõjuta — vali see, mida suudad automaatselt genereerida
  • Google käsitleb hreflangi vihjena: ka korrektse märgistuse korral võib ta mõnikord näidata teist versiooni

Lühike vastus

Hreflang on märgistus, millega annad Google'ile teada, et mitu lehte on üksteise keeleversioonid. See ei tõsta positsioone: selle ülesanne on näidata õigele kasutajale õiget versiooni ja hoida versioonid samas otsingutulemuses omavahel konkureerimast. Seadistus taandub kolmele reeglile: lingid on vastastikused, iga leht viitab ka iseendale, kõik URLid on absoluutsed ja vastavad koodiga 200.

Kogu ülejäänud artikkel räägib sellest, miks hreflang neid kolme reeglit järgideski katki läheb ja kuidas seda näha.


Milleks hreflangi tegelikult vaja on

Sõnastus «et Google keeltest aru saaks» on liiga hägune, et selle järgi midagi seadistada. Praktikas lahendab hreflang kaks ülesannet.

Esimene — versiooni valik otsingutulemustes. Kasutaja otsib eesti keeles, aga tulemustes kuvatakse talle sinu lehe venekeelne versioon. Ta ei vaheta keelt — ta naaseb otsingutulemustesse ja läheb konkurendi juurde. Hreflang vähendab sellise asenduse tõenäosust.

Teine — signaalide ühendamine. Google käsitleb hreflangiga seotud lehti ühe üksusena eri keeltes, mitte mitme sõltumatu dokumendina. Ühe versiooni kogutud lingi- ja käitumissignaalid töötavad kogu klastri kasuks.

Mida hreflang ei tee:

  • ei asenda kvaliteetset sisu selles keeles — kui leht on masintõlgitud ega taba päringute sõnastust, siis märgistus seda ei päästa (miks see nii on, kirjutasin artiklis sellest, mis keeles veebilehte Eestis turundada);
  • ei kaitse dubleerimise eest — keeleversioone ei loetagi duplikaatideks;
  • ei ole käsk. Google nimetab hreflangi signaaliks, mida ta arvestab, kuid ei ole kohustatud täitma.

Kuidas korrektne märgistus välja näeb

Võtame teenuselehe saidil, millel on kolm keelt. Kõigi kolme versiooni <head>-osas peab olema üks ja seesama siltide komplekt:

<link rel="alternate" hreflang="et" href="https://example.ee/teenused/seo" />
<link rel="alternate" hreflang="ru" href="https://example.ee/ru/uslugi/seo" />
<link rel="alternate" hreflang="en" href="https://example.ee/en/services/seo" />
<link rel="alternate" hreflang="x-default" href="https://example.ee/teenused/seo" />

Oluline: komplekt on kõigil kolmel lehel identne, kaasa arvatud lehe viide iseendale. See ei ole üleliigne — ilma enesele viitamiseta loetakse seos poolikuks.

Märgistuse saab paigutada kolmel viisil ja valik tulemust ei mõjuta:

ViisMillal mugavPiirang
Sildid <head>-osasTavalised HTML-lehed, enamik saitePaisutab <head>-i, kui keeli on palju
XML-sisukaartPalju keeli või puudub ligipääs mallileRaskem silmaga kontrollida
HTTP-päis LinkPDF ja muud mitte-HTML failidSeadistatakse serveri tasemel

Vali ühe kriteeriumi järgi: kas suudad seda automaatselt genereerida. Hreflang, mida lisatakse käsitsi iga lehe avaldamisel, laguneb teise saja URLi juures — see on aja, mitte hoolikuse küsimus.

Sellel saidil genereeritakse märgistus ühest slug-vastete registrist ja keeleversioone antakse välja ainult nende lehtede kohta, mis päriselt olemas on. See on teadlik piirang: parem mitte anda hreflangi üldse kui viidata lehele, mida pole.


Kuus kõige sagedasemat viga

Allpool on see, mida ma tehnilisel auditil mitmekeelsetel Eesti saitidel regulaarselt leian. Järjekord vastab umbkaudu sagedusele.

VigaKuidas avaldubMida teha
Mittevastastikused lingidGoogle eirab hreflangi kogu klastri ulatusesGenereeri märgistus ühest allikast, mitte lehe kaupa
Puudub viide iseendaleSeos loetakse poolikuks, märgistust ei arvestataLisa hreflang iseendale kõigis versioonides
Suhtelised URLidMärgistust ei parsitaAinult absoluutsed URLid koos skeemi ja domeeniga
Viide ümbersuunamisele või 404-leSeos katkeb vaikseltKontrolli roomajaga kõigi URLide staatuskoodid
Konflikt canonical'igaCanonical viitab teisele keeleversioonile — hreflang tühistubIga lehe canonical viitab talle endale
Automaatne ümbersuunamine brauseri keele järgiGooglebot näeb ainult ühte versiooniPaku keelt bänneriga, ära suru ümbersuunamisega peale

Eraldi tasub esile tõsta konflikti canonical'iga — see on neist kõige salakavalam, sest mõlemad märgistused eraldi võetuna näevad õiged välja. Kui lehe venekeelne versioon osutab canonical'iga eestikeelsele (sage viga malli kopeerimisel), ütled sa Google'ile korraga «see on iseseisev keeleversioon» ja «see on teise lehe koopia, ära indekseeri». Google valib canonical'i ja venekeelne versioon kukub lihtsalt indeksist välja. Sarnaseid lehtede väljakukkumise stsenaariume käsitlesin artiklis sellest, miks Google lehti ei indekseeri.

Ja veel üks Eestile omane koht: keelekood ei ole riigikood. hreflang="ee" on levinud näpuviga, sest domeen .ee on kogu aeg silme ees. Keelekoodi ee ei ole olemas, eesti keel on et. Selline silt lihtsalt eiratakse ja märgistus jääb poolikuks.


Kuidas kontrollida, kas Google märgistuse vastu võttis

Kontrollida tuleb kolmel tasandil ja esimesed kaks ei asenda kolmandat.

  1. Lähtekood. Ava leht «vaata lehe lähtekoodi» kaudu, mitte elementide inspektoriga. Kui sildid ilmuvad ainult inspektoris, lisab neid JavaScript pärast laadimist — selline märgistus ei pruugi indeksisse jõuda. Kontrolli nii üht lehte igast tüübist: avaleht, kategooria, artikkel, tootekaart.
  2. Roomaja. Screaming Frog või analoog käib saidi läbi ja näitab seda, mida käsitsi ei leia: mittevastastikused paarid, viited ümbersuunamistele, puuduv enesele viitamine, konflikt canonical'iga. See on ainus praktiline viis kontrollida saiti, kus on üle poolesaja lehe.
  3. Search Console. Lõplik instants: see näitab, mida Google vastu võttis, mitte mida sa välja andsid. Vaadata tuleb katvuse aruannet ja skannimise statistikat — kui pärast hreflangi juurutamist läks osa lehti staatusesse «Leht on koopia», siis on konflikt canonical'iga.

Muudatuste kajastumist tasub oodata nädalaid, mitte päevi: Google peab kogu klastri lehed uuesti läbi käima, et näha linkide vastastikkust. See on sama viivitatud reaktsiooni loogika, millest kirjutasin, kui käsitlesin, miks majutuse vahetus SEO-d ei halvenda — muudatused on näha alles pärast uut läbikäimist.


Mida ma praktikas näen

Mõned tähelepanekud Eesti projektidelt — ilma numbriteta seal, kus mul täpseid numbreid ei ole.

Hreflang ei ole peaaegu kunagi liikluse languse põhjus. Kui teine keeleversioon külastajaid ei too, siis valdaval enamikul juhtudest ei ole asi märgistuses, vaid selles, et lehed on sõna-sõnalt tõlgitud ega taba oma keele päringute sõnastust. Hreflangi kontrollitakse esimesena, sest see on kiire ja arusaadav, aga tegelik probleem on semantikas.

Katkine hreflang on seevastu peaaegu alati katki tervikuna. Ma kohtan harva saiti, kus märgistus on korrektne 90% lehtedest: kas see genereeritakse koodist ja töötab kõikjal, või on lisatud käsitsi ja lagunenud peaaegu kõikjal. Vahepealset seisundit praktiliselt ei ole — ja see on hea uudis, sest parandada tuleb genereerimist, mitte üksikuid lehti.

Kohaldamise piir. Kõik kirjeldatu on kontrollitud kuni mõne tuhande lehega saitidel, kus on kaks-kolm keelt. Suurtel mitmeregioonilistel projektidel, kus keelele lisandub kümmekond riiki, tekivad omad keerukused piirkondade prioriteetidega ja kontrolli lähenemine on seal teistsugune.


Mida kohe teha

Lühike järjekord, kui sul on teine keeleversioon ja sa pole märgistuses kindel.

  1. Ava iga versiooni ühe lehe lähtekood ja võrdle siltide komplekte — need peavad täielikult kattuma, kaasa arvatud enesele viitamine.
  2. Kontrolli canonical'i mittepõhilistel keeleversioonidel: see peab viitama lehele endale, mitte põhikeelele.
  3. Aja sait roomajast läbi ja filtreeri välja mittevastastikused seosed ja URLid, mille vastuskood ei ole 200.
  4. Eemalda automaatne ümbersuunamine brauseri keele järgi, kui see on olemas, ja asenda pealetükkimatu bänneriga, mis pakub keele vahetamist.
  5. Veendu, et märgistus genereeritakse, mitte ei lisata käsitsi. Kui käsitsi, siis see on esimene asi, mis tasub ümber teha veebiarenduse etapis, kuni lehti on veel vähe.

Kui pärast neid viit sammu pilt kokku ei jookse või Search Console näitab midagi ebamäärast — kirjuta mulle. Mitmekeelse märgistuse läbivaatus võtab tavaliselt paar tundi ja kuulub tehnilise SEO-auditi hulka; enamasti ei ole probleem hreflangis, kuid seda tasub leida enne, kui investeerid teise versiooni sisusse.

Korduma kippuvad küsimused

Kas hreflang mõjutab positsioone Google'is?
Otseselt mitte. Google on öelnud, et hreflang ei ole reitingutegur: see aitab valida, millist keeleversiooni konkreetsele kasutajale näidata. Kaudne mõju siiski on: kui kasutajale näidatakse tema keeles versiooni, naaseb ta harvemini otsingutulemustesse ja kogutud signaalid jaotuvad versioonide vahel korrektsemalt. Kuid ainuüksi hreflangi seadistamisest positsioonide kasvu oodata ei tasu.
Kas hreflang peab tingimata olema vastastikune?
Jah, see on range nõue. Kui leht A viitab lehele B kui keeleversioonile, aga B ei viita tagasi lehele A, siis Google sellist seost ei arvesta. Praktikas tähendab see enamasti hreflangi väljalülitamist kogu lehtede klastri ulatuses, mitte ühe lingi puhul. Seetõttu tuleb märgistus genereerida ühest ühisest andmeallikast, mitte lisada käsitsi igale lehele.
Kas x-default on vajalik ja mida sinna panna?
X-default ei ole kohustuslik, kuid on kasulik: see näitab vaikeversiooni kasutajatele, kelle keel ei ühti ühegi loetletud keelega. Tavaliselt pannakse sinna kas saidi peamine keeleversioon või keelevaliku leht. Eesti ettevõttele, kellel on eesti-, vene- ja ingliskeelne versioon, on loogiline märkida x-default'iks põhiversioon, mitte luua eraldi keelevaliku lehte.
Kas hreflangi kirjutada ainult keel või keel koos riigiga?
Kui eristad publikut keele järgi, piisab keelekoodist: et, ru, en. Riigikoodi (näiteks ru-EE) on vaja ainult siis, kui sul on sama keele eraldi versioonid eri riikide jaoks — näiteks venekeelne versioon Eestile ja teine Lätile erinevate hindadega. Piirkonna märkimine ilma sellise vajaduseta on liigne veaallikas, ja riigikood ilma keelekoodita pole üldse lubatud.
Kuidas kontrollida, kas hreflang töötab?
Kontrollida tuleb kolmel tasandil. Esiteks lehe lähtekood: vaata, kas sildid tulevad tõesti HTML-is välja, mitte ei lisata JavaScriptiga pärast laadimist. Teiseks roomaja nagu Screaming Frog: see näitab mittevastastikuseid linke, viiteid ümbersuunamistele ja 404-dele. Kolmandaks ja kõige tähtsamana Search Console'i katvuse aruanne, mis peegeldab seda, mida Google tegelikult vastu võttis.
Kas eri keeled loetakse dubleerivaks sisuks?
Ei. Ühe lehe keeleversioone ei loeta duplikaatideks, sanktsioone nende eest ei tule ja hreflangi ei ole vaja nende eest kaitsmiseks. Tegelik probleem on kannibaliseerimine ühe keele sees, kui kaks sama keele lehte võitlevad sama päringu pärast. Hreflang sel juhul ei aita: lehed tuleb lahutada kavatsuse järgi või siduda canonical'iga.

Järeldused

Hreflang on mitmekeelse saidi hügieen, mitte kasvuhoob. Korrektselt seadistatuna ei too see positsioone, kuid hoiab ära olukorra, kus eestikeelsele otsijale kuvatakse otsingutulemustes venekeelne versioon ja ta lahkub pealkirja lõpuni lugemata. Seadista see ühe korraga koodist genereerituna, mitte käsitsi, ja kontrolli Search Console'i aruannet pärast iga URL-struktuuri muudatust. Kui sul on kaks-kolm keeleversiooni ja sa pole kindel, kas Google need omavahel sidus, kirjuta mulle — vaatan märgistuse üle ja ütlen, kus see katkeb.

Artikli autor

Vladislav Krivorutsko — ADLABi asutaja
Vladislav Krivorutsko

ADLAB OÜ asutaja · SEO ja Google Ads

Üle 20 aasta otsiliikluse ja monetiseerimisega, Eesti turul alates 2017. aastast. Töötan üksi: teen auditi, koostan strateegia ja viin projekti ise lõpuni — ilma alltöövõtjate ja šabloonideta. Kirjutan ainult sellest, mida olen oma ja klientide saitidel järele proovinud.

  • 20+ aastat otsiliikluses
  • 50+ projekti võtmed kätte
  • Oma saidid konkurentsitihedates nišides
  • SEO ru/et/en ühes otsingutulemuses
Loe minust lähemalt

Loe edasi