Ko‘p tilli sayt uni tekshiradigan joyda buzilmaydi. Tarjimalar a’lo, verstka bir xil bo‘lishi mumkin, qidiruvda esa versiyalar bir-biri bilan raqobatlasha boshlaydi yoki umuman ko‘rinmaydi. Quyida — tartib bilan, faqat server loglarida ko‘rinadigan xatolar bilan birga.
1. Bitta sahifa — bitta URL, bitta til
Til versiyasi o‘z manzilida yashashi kerak. Papka (/uz/) ham, subdomen ham to‘g‘ri keladi — manzil barqaror va farqli bo‘lishi muhim.
Nima qilib bo‘lmaydi: brauzer sarlavhasiga qarab bitta manzilda turli tilni ko‘rsatish. Qidiruv roboti bitta sarlavhalar to‘plami bilan keladi va aynan bitta versiyani ko‘radi — qolganlari u uchun mavjud emas.
2. hreflang ikki tomonlama bo‘lishi kerak
Har bir versiya qolganlarini, o‘zini ham qo‘shib sanaydi. Agar rus sahifasi o‘zbekchaga havola qilsa-yu, o‘zbekchasi ruschaga qilmasa — bog‘lanish hisobga olinmaydi va sahifalar o‘z-o‘zicha qoladi.
Buni bitta emas, barcha tillarda tekshirish kerak. Bir tomonlama bog‘lanish — amalga oshirishdagi eng ko‘p uchraydigan xato.
3. x-default — bu «sukut bo‘yicha ingliz» emas
x-default tili sanab o‘tilganlarning hech biriga to‘g‘ri kelmaganlar uchun sahifani ko‘rsatadi. Bu ingliz versiyasining sinonimi ham, «bosh sahifa» ham emas. Eng mantiqlisi — tashrifchi tilni o‘zi tanlay oladigan joyga yoki eng to‘liq versiyaga yo‘naltirish.
x-defaultsiz sayt buzilmaydi, lekin qidiruv tizimida «qolganlarga nima ko‘rsatish kerak» degan savolga javob bo‘lmaydi.
4. Til kodlari qatlamlar bo‘yicha farq qiladi — va bu buzilgan havolalar manbai
Bu yerda yarim kunni yo‘qotish oson. Bitta til uch joyda turlicha atalishi mumkin:
-
sahifa manzilida — siz qanday hal qilgan bo‘lsangiz:
/kz/,/zh-CN/; -
hreflang’da — BCP 47 standarti bo‘yicha: qozoqcha uchun
kk, soddalashtirilgan xitoycha uchunzh-Hans; -
bazada yoki API’da — dasturchi qanday atagan bo‘lsa.
O‘zi bo‘yicha bu normal, toki ular orasidagi o‘girish bitta joyda tursa. Muammo kimdir kerakli qatlamdan olinmagan koddan havola yig‘sa paydo bo‘ladi — va mavjud bo‘lmagan manzilni oladi.
5. Manzildagi registr: havolalarning jimgina yo‘qolishi
Agar hech bo‘lmasa bitta til segmenti bosh harflarni o‘z ichiga olsa — zh-CN esa oladi — ertami-kechmi u sizga kichik harflarda keladi. URL’ni pochta mijozlari, muharrirlar, proksilarning bir qismi va shunchaki qo‘lda teruvchi odamlar kichik registrga keltiradi.
/zh-cn/ bilan nima bo‘lishini tekshiring. Yomon ssenariy: server segmentni tanimaydi, uni yo‘l qismi deb hisoblaydi, oldiga sukut bo‘yicha tilni qo‘shadi va mavjud bo‘lmagan manzilga redirekt beradi. Rasmiy jihatdan bu 301, aslida — zanjir oxirida 404. Tashrifchi ketdi, sizga olib kelgan tashqi havola esa behuda yo‘qoldi.
Registrni hisobga olmaydigan solishtirish va har qanday yozuvni bitta redirekt bilan kanonik segmentga keltiradigan sinonimlar jadvali bilan davolanadi.
6. Tarjima bo‘lmasa canonical’ga nima qo‘yish kerak
Vaziyat odatiy: maqola rus va o‘zbek tilida bor, koreys versiyasi esa rus matnini ko‘rsatadi, chunki qaytish shunday sozlangan.
Agar bunday sahifa o‘zini kanonik deb e’lon qilsa, siz koreys manzili ostida rus matnini indekslashni so‘rayapsiz. To‘g‘risi — matni haqiqatan ko‘rsatilgan versiyaning kanonik manzilini ko‘rsatish. Shunda signallar yettita nusxaga yoyilish o‘rniga bitta sahifada yig‘iladi.
Va teskari qoida: hreflang’da tarjimasi yo‘q tillarni sanamang. Alternativalar ro‘yxati haqiqatan mavjud bo‘lgani bilan mos kelishi kerak.
7. Sayt xaritasi ham hreflang qismi
Alternativalarni faqat <head>da emas, sitemap.xmlda xhtml:link orqali ham e’lon qilish mumkin. Bu qo‘llab-quvvatlashda qulayroq: bog‘lanish shablonlarga yoyilmasdan, dastur yaratadigan faylda bir marta tasvirlanadi.
Ikki shart: xaritaga faqat redireksiz 200 qaytaradigan manzillar tushadi, va xaritadagi tillar to‘plami razmetkadagi to‘plam bilan mos keladi. Redirektlardan iborat xarita qisman tashlab yuboriladi.
8. Sahifa manzillarini tarjima qilish kerakmi
Tarjima qilingan slag (/uz/services/website-development o‘rniga /uz/xizmatlar/sayt-yaratish) yaxshiroq o‘qiladi va odamlar so‘rovni qanday shakllantirishiga mos keladi.
Qarorning narxi — orqaga yo‘l yo‘q. Manzil indekslangach, uni faqat eskisidan yangisiga redirekt bilan o‘zgartirish mumkin va bu redirektlar tarixini saqlashga to‘g‘ri keladi. Agar slaglarni tarjima qilsangiz — oldingi manzillarni saqlash mexanizmini bir yildan keyin emas, darhol nazarda tuting.
9. Til almashtirgich sahifani yo‘qotmasligi kerak
Har qanday sahifadan almashtirish bosh sahifaga emas, o‘sha sahifaning boshqa tildagi analogiga olib borishi kerak. Bosh sahifaga qaytish — tashrifchi uchun kontekst yo‘qolishi va qidiruv tizimi uchun bog‘lanish uzilishi.
Alohida: almashtirish faqat yozuvlarni emas, manzilni ham o‘zgartirishi kerak. Agar til almashgach URL o‘zgarmasa, qayta yuklashda yoki havolani do‘stga yuborishda til orqaga qaytadi.
10. Tarjima — bu faqat ko‘rinadigan matn emas
Odatda bir xil narsalar unutiladi:
-
<title>va sahifa tavsifi; -
<html>dagilangatributi; -
rasmlardagi
alt; -
tuzilmali razmetkadagi matnlar;
-
formalardagi xato xabarlari va 404 sahifasi.
Ishga tushirishdan oldingi nazorat ro‘yxati
-
Har bir versiyada o‘z barqaror manzili bor.
-
hreflang ikki tomonlama — bittadan emas, barcha tillardan tekshirilgan.
-
x-defaultongli ravishda ko‘rsatilgan. -
Kichik registrdagi til segmenti 404’ga olib bormaydi.
-
Tarjimasiz sahifa matni ko‘rsatilgan versiyaga kanonizatsiya qilinadi.
-
Sayt xaritasida faqat 200 qaytaradigan manzillar.
-
Til almashtirgich sahifani saqlaydi va manzilni o‘zgartiradi.
-
title, description,
lang,altva 404 tarjima qilingan.
Agar ko‘p tilli versiya allaqachon ishga tushgan bo‘lsa va bog‘lanishlar to‘g‘ri sozlanganiga ishonchingiz komil bo‘lmasa — tekshirib, aynan qayerda uzilayotganini ko‘rsata olamiz.
