Kaip teisingai sudėti dvi kalbas ir hreflang?
Kiekviena kalba turi turėti savo stabilų adresą, ir abi versijos privalo rodyti viena į kitą. Google `hreflang` grupę priima tik tada, kai ji abipusė: jei A rodo į B, o B į A nerodo, ignoruojama visa deklaracija, ir dvi kalbos pradeda konkuruoti tarpusavyje.
Klaida beveik visada ta pati, ir ji tyli: hreflang yra, atrodo teisingas, o
neveikia. Priežastis — abipusiškumas.
Trys taisyklės, kurių pakanka
Kiekviena versija — savas adresas. /kainos ir /en/pricing. Ne
?lang=en: kiekvienas parametras yra dar viena to paties puslapio kopija
indekse.
Abipusiškumas. Jei lietuviškas puslapis skelbia, kad jo angliška versija
yra /en/pricing, tai angliškas privalo skelbti, kad lietuviška yra
/kainos. Vienos pusės neatitikimo užtenka, kad grupė būtų nutylėta.
Pora tik ten, kur ji tikrai yra. Puslapis be vertimo hreflang neturi
gauti visai. Deklaruoti alternatyvą, kurios nėra, blogiau nei jos
nedeklaruoti.
Dažniausia klaida
Visi puslapiai rodo į pradinius puslapius. Tai atsitinka savaime, kai
hreflang įrašomas į bendrą šabloną: /kainos skelbia, kad jo angliška
versija yra /en, o ne /en/pricing.
Rezultatas: nė viena pora nesutampa, deklaracija ignoruojama, ir Google sprendžia pats, kurią versiją rodyti. Dažnai — ne tą.
Kaip rašomas pats kodas
Kalbos kodas yra 2 simbolių ISO 639-1 reikšmė — lt, en, de. Regionas
pridedamas tik tada, kai jo tikrai reikia, ir jis irgi yra 2 simbolių ISO
3166-1 Alpha-2 reikšmė: en-GB, en-US, de-AT.
Dažniausia rašymo klaida yra en-UK. Tokios šalies kodo nėra — Jungtinė
Karalystė ISO 3166-1 sąraše yra GB, ir neteisingą reikšmę Google tyliai
ignoruoja lygiai taip pat, kaip vienpusę porą.
Regiono nedėk be reikalo. en-US ir en-GB reikalingi tada, kai turinys
tikrai skiriasi — kainos, pristatymas, teisė. Vienam angliškam puslapiui
užtenka en.
x-default
x-default skirtas lankytojui, kurio kalbos neatpažinom. Praktiškai jį verta
nukreipti į angliškąją versiją: žmogus, kurio kalbos nėra tavo sąraše,
greičiausiai ne lietuvis.
Ko nedaryti
Nekeisk kalbos automatiškai pagal IP. Googlebot crawlina beveik vien iš JAV adresų, todėl nukreiptas jis į lietuvišką versiją nepateks niekada — ir ji iš indekso dings. Google tai savo gairėse įvardija tiesiogiai kaip vengtiną dalyką.
Vietoj to — pasiūlymas: juosta viršuje, vieną kartą, be nukreipimo.
Nemokamas skenas tikrina būtent abipusiškumą: ar kiekviena pora sutampa iš abiejų pusių.
Susiję straipsniai
Ta pati tema iš kitos pusės — kiekvienas atsako į savo klausimą:
- Puslapių kanibalizacija: kaip ją pastebėti
- Kodėl Google neindeksuoja mano puslapių
- Title ir description, kuriuos Google rodo
Kaip šitas dalykas patenka į balą, aprašyta ties ką tikriname.
Šaltiniai
Tai, kuo remiasi šis tekstas — pirminiai šaltiniai, ne perpasakojimai:
Dažni klausimai
Ar `hreflang` veikia pozicijas?
Tiesiogiai ne. Jis padeda Google parodyti teisingą versiją teisingam žmogui, o tai netiesiogiai veikia paspaudimus ir elgesį.
Ar reikia `hreflang`, jei kalbos skirtinguose domenuose?
Taip. Taisyklė ta pati, tik adresai kitokie — abipusiškumas privalomas ir tarp domenų.
Ar užtenka `sitemap.xml`?
Užtenka: `hreflang` galima deklaruoti arba HTML antgalvyje, arba sitemap'e. Svarbu nedaryti abiejų su skirtingomis reikšmėmis.
Kaip elgtis su puslapiais, kurie egzistuoja tik viena kalba?
Palikti juos be `hreflang`. Tai normalu ir teisinga: dalis puslapių turi porą, dalis — ne.
Pasitikrink
Nemokamas skenas parodo, ką iš to, kas aprašyta, tavo svetainė jau daro, o ko — ne.