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:
| Viis | Millal mugav | Piirang |
|---|---|---|
Sildid <head>-osas | Tavalised HTML-lehed, enamik saite | Paisutab <head>-i, kui keeli on palju |
| XML-sisukaart | Palju keeli või puudub ligipääs mallile | Raskem silmaga kontrollida |
HTTP-päis Link | PDF ja muud mitte-HTML failid | Seadistatakse 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.
| Viga | Kuidas avaldub | Mida teha |
|---|---|---|
| Mittevastastikused lingid | Google eirab hreflangi kogu klastri ulatuses | Genereeri märgistus ühest allikast, mitte lehe kaupa |
| Puudub viide iseendale | Seos loetakse poolikuks, märgistust ei arvestata | Lisa hreflang iseendale kõigis versioonides |
| Suhtelised URLid | Märgistust ei parsita | Ainult absoluutsed URLid koos skeemi ja domeeniga |
| Viide ümbersuunamisele või 404-le | Seos katkeb vaikselt | Kontrolli roomajaga kõigi URLide staatuskoodid |
| Konflikt canonical'iga | Canonical viitab teisele keeleversioonile — hreflang tühistub | Iga lehe canonical viitab talle endale |
| Automaatne ümbersuunamine brauseri keele järgi | Googlebot näeb ainult ühte versiooni | Paku 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.
- 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.
- 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.
- 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.
- Ava iga versiooni ühe lehe lähtekood ja võrdle siltide komplekte — need peavad täielikult kattuma, kaasa arvatud enesele viitamine.
- Kontrolli canonical'i mittepõhilistel keeleversioonidel: see peab viitama lehele endale, mitte põhikeelele.
- Aja sait roomajast läbi ja filtreeri välja mittevastastikused seosed ja URLid, mille vastuskood ei ole 200.
- Eemalda automaatne ümbersuunamine brauseri keele järgi, kui see on olemas, ja asenda pealetükkimatu bänneriga, mis pakub keele vahetamist.
- 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.
