Jedan URL po jeziku, hreflang sa povratnim linkovima, canonical na samu stranicu, sr-Latn za srpski i 404 umesto tihe zamene engleskim — pravila iza naših stranica na engleskom, srpskom i ruskom.
Naš sajt govori engleski, srpski i ruski. Za ljude je to prekidač jezika u zaglavlju; za pretraživače je to skup pravila koji odlučuje koja verzija se kome prikazuje. Ako ih pogrešite, ruska stranica se takmiči sa engleskom ili onaj ko pretražuje na srpskom stigne na stranicu koju ne može da pročita. Evo kako smo to podesili.
Jedan jezik, jedna adresa
Svaki jezik ima sopstveni URL: engleski u korenu, srpski pod /sr/, ruski pod /ru/. Sadržaj stranice nikada ne zavisi od kolačića ili jezika pregledača, pa crawler koji prati link uvek vidi istu verziju kao i posetilac.
hreflang govori pretraživačima koja stranica je za koga
Svaka stranica navodi sve svoje jezičke verzije — uključujući sebe — i x-default za sve ostale. Ovo je zaglavlje ruske verzije ovog članka:
<link rel="canonical" href="https://onlyapps.org/ru/blog/hreflang-three-languages" />
<link rel="alternate" hreflang="en" href="https://onlyapps.org/blog/hreflang-three-languages" />
<link rel="alternate" hreflang="sr-Latn" href="https://onlyapps.org/sr/blog/hreflang-three-languages" />
<link rel="alternate" hreflang="ru" href="https://onlyapps.org/ru/blog/hreflang-three-languages" />
<link rel="alternate" hreflang="x-default" href="https://onlyapps.org/blog/hreflang-three-languages" />Nekoliko detalja je važno:
- Povratni linkovi. Svaka verzija mora da upućuje na svaku drugu. Ako ruska stranica navodi englesku, a obrnuto ne, pretraživači mogu da zanemare par.
- Canonical na samu sebe. Svaka jezička verzija je canonical za sebe. Usmeravanje svih canonical-a na engleski poručuje pretraživačima da su prevodi duplikati.
- Jezičke oznake. Vrednosti prate BCP 47. Srpski se piše sa dva pisma, pa našu verziju označavamo kao
sr-Latn— srpski latinicom. - x-default. Engleski je rezervna verzija za jezike koje ne podržavamo.
Neprevedeno znači 404, a ne zamena
Kada post postoji samo na engleskom, /sr/blog/... vraća 404 umesto da tiho prikaže engleski tekst pod srpskom adresom. Tako je svaki indeksirani URL pošten: jezik u adresi je jezik na stranici. Skup hreflang navodi samo prevode koji zaista postoje, a prekidač jezika vodi na odgovarajući prevod — ili na početnu stranicu na tom jeziku ako prevoda nema.
Sitemap ponavlja istu priču
Naši sitemap fajlovi sadrže svaku objavljenu stranicu na svakom jeziku i svakom URL-u dodaju iste alternative. Pretraživači tako uče veze bez učitavanja svake stranice, a datumi u lastmod se menjaju samo kada se promeni sadržaj.
| Provera | Kako izgleda ispravno |
|---|---|
| Struktura URL-ova | Jedan URL po jeziku, bez prebacivanja preko kolačića |
| hreflang | Sve verzije navedene na svakoj verziji, uz x-default |
| Canonical | Svaka verzija canonical na sebe |
| Nedostaje prevod | 404 na tom jeziku, ne kopija engleskog |
| Sitemap | Iste alternative kao u zaglavlju stranice |
Greške koje najčešće viđamo
- Preveden interfejs, a glavni tekst ostavljen na engleskom pod lokalizovanim URL-om.
- Preusmeravanje posetilaca po IP adresi, što skriva ostale verzije od crawler-a.
- Mešanje regiona i jezika:
ru-RUograničava stranicu na Rusiju, dokrucilja govornike ruskog svuda. - Zaboravljeno ažuriranje alternativa kada se prevod ukloni.
Savet
Posle svake izmene otvorite izvorni kod stranice na svakom jeziku i proverite da je skup hreflang isti na svim verzijama — osim canonical-a, koji uvek upućuje na samu stranicu.
Želite da vidite uživo? Promenite jezik na vrhu stranice — stići ćete na prevod ovog članka.