Mundarija (34)
- Bu darsda
- 1. Nega bu kerak?
- 2. Uch tushuncha: schema.org, JSON-LD va boy natija
- 2.1 schema.org — umumiy lug'at
- 2.2 JSON-LD — yozish usuli
- 2.3 Boy natija — mukofot
- 3. Birinchi JSON-LD: Organization
- 3.1 Kod
- 3.2 Qayerga qo'yiladi
- 4. «Bahor» uchun Restaurant
- 4.1 To'liq misol
- 4.2 Oltin qoida: faqat sahifada bor narsani yozing
- 5. BreadcrumbList — sahifa yo'li
- 5.1 Qidiruvda qanday ko'rinadi
- 5.2 Kod
- 6. FAQPage — savol-javoblar va 2026 holati
- 7. Course va Event — kurs va tadbir
- 7.1 Course
- 7.2 Event — ko'pincha to'g'riroq tanlov
- 8. Bir sahifada bir nechta tur
- 9. Tekshirish vositalari
- 10. Boshqa usullar: microdata, RDFa, microformats
- 11. Ko'p uchraydigan xatolar
- 11.1 JSON sintaksisi buzilgan
- 11.2 Tur nomi kichik harf bilan
- 11.3 Sahifada yo'q ma'lumot
- 11.4 Nisbiy manzillar
- 12. Mashqlar
- 1-mashq (oson): Xatolarni toping
- 2-mashq (o'rta): Tadbir sahifasi uchun non yo'li
- 3-mashq (qiyin): «Bahor» bosh sahifasining to'liq ma'lumoti
- 13. Real ishda
- Xulosa
- Manbalar
Strukturalangan ma'lumot: JSON-LD va schema.org bilan Google'ga sahifani tushuntirish
Qisqacha: Strukturalangan ma'lumot — sahifa haqidagi faktlarning mashina o'qiydigan nusxasi: "bu restoran, manzili shu, soat 7:00 dan ochiq". U odatda
<script type="application/ld+json">ichida JSON ko'rinishida yoziladi, so'zlari esa schema.org lug'atidan olinadi. Google, Yandex va Bing undan qidiruvdagi boy natijalar (non yo'li, ish vaqti, tadbir sanasi) uchun foydalanadi. Kodni Google Rich Results Test'da tekshirasiz.
Bu darsda
- Strukturalangan ma'lumot nima va u qidiruvda nimani o'zgartirishini tushuntirasiz.
- JSON-LD blokini to'g'ri joyga, to'g'ri sintaksisda yozasiz.
- schema.org'dan
Organization,Restaurant,BreadcrumbList,FAQPage,CoursevaEventturlarini ishlatasiz. - Kodni Rich Results Test va Schema Markup Validator'da tekshirasiz.
- Microdata va microformats nima ekanini taniysiz.
Oldin bilishingiz kerak: JSON: dasturlar tili, Qidiruv tizimlari uchun meta teglar, Ijtimoiy tarmoq kartalari: Open Graph.
1. Nega bu kerak?
«Bahor» sahifasida shunday matn bor: "Toshkent, Chilonzor tumani. Har kuni 7:00 dan 23:00 gacha. Tel.: +998 90 000 00 00". Odam buni bir qarashda tushunadi.
Google'ning roboti esa buni oddiy matn qatori deb ko'radi. "7:00" — bu ish vaqtimi, narxmi yoki tadbir boshlanishimi? U taxmin qilishi kerak. Taxmin esa ba'zan xato bo'ladi.
Chegaradagi pasport nazoratini eslang. Pasportda har bir ma'lumotning qat'iy joyi bor: ism — shu qatorda, tug'ilgan sana — mana bu katakda. Shuning uchun istalgan davlat chegarachisi uni tilini bilmasa ham o'qiy oladi.
Strukturalangan ma'lumot (structured data) — sahifangiz uchun xuddi shunday "pasport". Faktlar qidiruv tizimlari kelishib olgan standart maydonlarga yoziladi. Shunda robot taxmin qilmaydi — aniq biladi.
Buning evaziga sahifa qidiruvda boyroq ko'rinishi mumkin. Buni boy natija (rich result) deyishadi:
- ko'k havola ustida sahifa yo'li:
example.com › Menyu › Osh; - tadbir sanasi va joyi;
- retsept uchun tayyorlash vaqti va rasm;
- mahsulot uchun narx va "sotuvda bor" belgisi.
Boy natija ko'zga tashlanadi va ko'proq bosiladi. Lekin u reytingni to'g'ridan-to'g'ri ko'tarmaydi. Uning asosiy foydasi — ko'rinish va tushunarlilik.
Tekshirib ko'ring: Open Graph teglari ham sahifa haqida ma'lumot beradi. Strukturalangan ma'lumotdan farqi nimada?
Javob
Open Graph — havola ulashilganda chiqadigan kartochka uchun: sarlavha, tavsif, rasm. U faqat "sahifa qanday ko'rinsin" deydi. Strukturalangan ma'lumot esa sahifadagi narsa haqida batafsil faktlar beradi: bu restoran, uning manzili, ish vaqti, oshxona turi. Ikkalasi bir sahifada birga yashaydi.
2. Uch tushuncha: schema.org, JSON-LD va boy natija
2.1 schema.org — umumiy lug'at
Robot "ish vaqti" so'zini tushunishi uchun hamma bir xil so'z ishlatishi kerak. Shu maqsadda 2011-yilda Google, Microsoft (Bing), Yahoo va Yandex birgalikda schema.org lug'atini yaratdi.
Lug'atda ikki xil so'z bor:
- Tur (type) — narsa nima:
Restaurant,Event,Person. Katta harf bilan boshlanadi. - Xususiyat (property) — narsaning belgisi:
name,address,openingHours. Kichik harf bilan, camelCase'da.
Turlar daraxt shaklida. Restaurant — FoodEstablishment ning bir turi, u esa LocalBusiness ning, u esa Organization ning. Shuning uchun Restaurant ota turlarining barcha xususiyatlarini "meros" oladi: name, address, telephone va boshqalar.
2.2 JSON-LD — yozish usuli
Lug'at so'zlarini sahifaga yozishning bir necha usuli bor. Google eng ko'p tavsiya qiladigani — JSON-LD (JSON for Linking Data — "bog'lanadigan ma'lumotlar uchun JSON"). Bu — JSON darsida o'rgangan oddiy JSON, faqat bir nechta maxsus kalit qo'shilgan.
2.3 Boy natija — mukofot
Strukturalangan ma'lumot yozish — kafolat emas. Google uni o'qiydi, lekin boy natijani qachon ko'rsatishni o'zi hal qiladi. Qoida buzilsa yoki tur Google ro'yxatida bo'lmasa, oddiy natija chiqadi.
Bo'sh joyni to'ldiring: turlar va xususiyatlar olinadigan umumiy lug'at sayti —
3. Birinchi JSON-LD: Organization
3.1 Kod
«Bahor» haqida eng oddiy ma'lumot:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Choyxona «Bahor»",
"url": "https://example.com/",
"logo": "https://example.com/assets/images/logo.png",
"sameAs": [
"https://t.me/sizning_kanal",
"https://www.instagram.com/sizning_sahifa"
]
}
</script>Qatorma-qator:
type="application/ld+json"— brauzerga "bu JavaScript emas, JSON-LD ma'lumot" deydi. Brauzer uni bajarmaydi va ekranda ko'rsatmaydi."@context": "https://schema.org"— "so'zlarni schema.org lug'atidan olyapman".@bilan boshlangan kalitlar — JSON-LD'ning maxsus kalitlari."@type": "Organization"— bu obyekt nima."name","url","logo"— xususiyatlar. Manzillar to'liq (absolyut) yoziladi, xuddi Open Graph rasmidagi kabi."sameAs"— "bu tashkilotning boshqa joylardagi sahifalari". Qiymati — massiv, chunki sahifalar bir nechta.
3.2 Qayerga qo'yiladi
Blokni head ga ham, body ga ham qo'yish mumkin — Google ikkalasini ham o'qiydi. Odatda head ning oxiriga yoki body ning oxiriga qo'yiladi. Bir sahifada bir nechta shunday script bo'lishi ham normal.
JSON-LD sahifa tezligiga deyarli ta'sir qilmaydi: brauzer uni yuklamaydi va ishga tushirmaydi. Bu — shunchaki matn.
Diqqat: JSON-LD ichida JSON qoidalari to'liq amal qiladi: faqat qo'shtirnoq, oxirgi elementdan keyin vergul yo'q, izoh yo'q. Bitta ortiqcha vergul butun blokni yaroqsiz qiladi. Google xato haqida sahifada hech narsa demaydi — shunchaki ma'lumotni e'tiborsiz qoldiradi.
Tekshirib ko'ring: JSON-LD blokini
type="application/ld+json"o'rnigatype="application/json"bilan yozsak nima bo'ladi?
Javob
Brauzer uchun farqi yo'q — ikkalasini ham bajarmaydi. Lekin Google faqat application/ld+json turidagi blokni strukturalangan ma'lumot deb qidiradi. application/json bilan yozilgan ma'lumot e'tiborsiz qoladi.
4. «Bahor» uchun Restaurant
4.1 To'liq misol
Organization umumiy. Choyxona uchun aniqroq tur bor: Restaurant. U Google'ning "Local business" (mahalliy biznes) boy natijasi uchun ishlatiladi.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Choyxona «Bahor»",
"url": "https://example.com/",
"image": "https://example.com/assets/images/zal.jpg",
"telephone": "+998 90 000 00 00",
"servesCuisine": "O'zbek oshxonasi",
"priceRange": "40 000–120 000 so'm",
"acceptsReservations": true,
"menu": "https://example.com/menyu/",
"address": {
"@type": "PostalAddress",
"streetAddress": "Bahor ko'chasi, 1-uy",
"addressLocality": "Toshkent",
"addressRegion": "Toshkent",
"addressCountry": "UZ"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 41.2995,
"longitude": 69.2401
},
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday",
"Friday", "Saturday", "Sunday"],
"opens": "07:00",
"closes": "23:00"
}]
}
</script>Yangi narsalar:
- Ichma-ich obyektlar.
address— oddiy satr emas, o'zining@typei bor obyekt:PostalAddress. Ichida ko'cha, shahar, viloyat va mamlakat alohida maydonlarda.addressCountry— mamlakatning ikki harfli kodi: O'zbekiston uchunUZ. geo— xaritadagi nuqta: kenglik va uzunlik. Qiymatlar — son, qo'shtirnoqsiz.openingHoursSpecification— ish vaqti. Hafta kunlari schema.org'da inglizcha yoziladi:Monday,Tuesday... Vaqt — 24 soatlik formatda.acceptsReservations": true— mantiqiy qiymat, qo'shtirnoqsiz. JSON'dagitrue/false.- Matnlar o'zbekcha bo'lishi mumkin.
"O'zbek oshxonasi"— qo'shtirnoq ichida apostrof muammo emas.
4.2 Oltin qoida: faqat sahifada bor narsani yozing
Google'ning asosiy talabi: strukturalangan ma'lumot sahifada foydalanuvchiga ko'rinadigan kontentga mos bo'lishi kerak. Sahifada ish vaqti yozilmagan bo'lsa, uni faqat JSON-LD'ga yozish — qoida buzilishi.
Eng xavfli vasvasa — o'zingizga yulduzcha qo'yish. "5 baho, 300 ta sharh" deb aggregateRating yozib qo'yish mumkin. Lekin Google tashkilotning o'zi haqidagi o'z saytidagi sharhlar uchun yulduzcha ko'rsatmaydi. Sharhlar soxta bo'lsa, sayt "spam belgilash" uchun jazolanishi mumkin: Search Console'da qo'lda qo'yilgan jazo (manual action) keladi.
Maslahat: Mahalliy biznes uchun Google avvalo Google Business Profile (Google Xaritalardagi kartochka) ma'lumotiga tayanadi. Yandex esa Yandex Kartalar kartochkasiga. «Bahor» uchun ikkalasini ham to'ldirish va saytdagi JSON-LD bilan bir xil saqlash kerak: manzil, telefon, ish vaqti har joyda bir xil bo'lsin.
5. BreadcrumbList — sahifa yo'li
5.1 Qidiruvda qanday ko'rinadi
Oddiy natijada Google havolani shunday ko'rsatadi: https://example.com/menyu/osh.html. BreadcrumbList bilan esa odam tushunadigan yo'l chiqadi: example.com › Menyu › Osh.
Non yo'li (breadcrumb) — "siz shu yerdasiz" zanjiri. Nomi ertakdan olingan: bolalar o'rmonda adashmaslik uchun yo'lga non ushoqlarini sepib ketishgan.
5.2 Kod
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Bosh sahifa",
"item": "https://example.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Menyu",
"item": "https://example.com/menyu/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Osh"
}
]
}
</script>itemListElement— zanjir bo'g'inlari massivi.position— tartib raqami, 1 dan boshlanadi. Son, qo'shtirnoqsiz.item— bo'g'in manzili. Oxirgi bo'g'in — joriy sahifa, ungaitemyozish shart emas.
Qoida o'sha: sahifaning o'zida ham ko'rinadigan non yo'li bo'lishi kerak. HTML'da u odatda nav ichida, aria-label="Non yo'li" bilan yoziladi (Sahifa landmarklari darsidagi nomli nav).
Tekshirib ko'ring: Nega
positionqiymati"1"emas,1deb yozilgan?
Javob
position — tartib raqami, ya'ni son. JSON'da son qo'shtirnoqsiz yoziladi. "1" — satr bo'lardi. Google ko'p hollarda satrni ham kechiradi, lekin schema.org bu xususiyat uchun son kutadi. To'g'ri tur bilan yozish — xatosiz yo'l.
6. FAQPage — savol-javoblar va 2026 holati
«Bahor» saytida "Ko'p so'raladigan savollar" bo'limi bor. Uni shunday belgilash mumkin:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "Oldindan stol bron qilsa bo'ladimi?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Ha, saytdagi forma yoki telefon orqali."
}
}]
}
</script>mainEntity — sahifaning asosiy mazmuni: savollar massivi. Har Question ichida name — savol matni, acceptedAnswer — javob.
Endi halol haqiqat. Bir paytlar FAQ belgisi bilan Google natija ostida ochiladigan savollar ro'yxatini ko'rsatardi. Keyin 2023-yildan u faqat davlat va sog'liqni saqlash saytlariga qoldirildi. Nihoyat, 2026-yil 7-maydan Google FAQ boy natijasini umuman ko'rsatmay qo'ydi.
Bu FAQPage foydasiz degani emas:
- schema.org'da tur o'z kuchida, uni o'chirish shart emas;
- Bing va boshqa tizimlar, AI yordamchilar sahifani tushunishda undan foydalanishi mumkin;
- savol-javob kontentining o'zi baribir foydali — odamlar Google'ga aynan savol yozadi.
Bu yerdan katta dars chiqadi: boy natijalar ro'yxati o'zgarib turadi. Google 2025-yilda ham yetti turni ro'yxatdan olib tashlagan edi. Yangi tur qo'shishdan oldin Google Search Central'dagi "Search gallery" sahifasini tekshiring — u yerda hozir ishlaydigan turlar ro'yxati bor.
7. Course va Event — kurs va tadbir
«Bahor» oyiga bir marta osh pishirish master-klassini o'tkazadi. Uni qanday belgilash kerak?
7.1 Course
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Course",
"name": "To'y oshini damlash sirlari",
"description": "Oshpaz bilan 3 soatlik amaliy dars.",
"provider": {
"@type": "Organization",
"name": "Choyxona «Bahor»",
"url": "https://example.com/"
}
}
</script>provider — kursni kim o'tkazadi. Uning qiymati yana obyekt — biz 3-bo'limda yozgan Organization ning qisqa nusxasi.
2026 holati: Google 2025-yilda bitta kurs haqidagi "Course info" boy natijasini to'xtatdi. "Course list" esa qoldi — bitta tashkilotning bir nechta kursi karusel ko'rinishida chiqadi. Buning uchun sahifada kamida uchta kurs bo'lishi va ular ro'yxat (ItemList) bilan belgilanishi kerak. IlmHamroh kabi ta'lim saytlari uchun bu foydali.
7.2 Event — ko'pincha to'g'riroq tanlov
Bir martalik master-klass aslida tadbir — uning aniq sanasi va joyi bor. Tadbir boy natijalari esa Google'da ishlayapti:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"name": "Osh bayrami: master-klass",
"startDate": "2026-10-18T10:00+05:00",
"endDate": "2026-10-18T13:00+05:00",
"location": {
"@type": "Place",
"name": "Choyxona «Bahor»",
"address": "Bahor ko'chasi, 1-uy, Toshkent"
}
}
</script>startDate— ISO formatdagi sana va vaqt.+05:00— Toshkent vaqt mintaqasi (UTC+5). Busiz Google vaqtni noto'g'ri talqin qilishi mumkin.location—Placeturidagi obyekt. Bu safaraddressni oddiy satr bilan yozdik — schema.org buni ham qabul qiladi.
Bu sanalar Iqtibos, qisqartma, vaqt darsidagi time tegining datetime atributi bilan bir xil formatda.
8. Bir sahifada bir nechta tur
Bosh sahifada Restaurant ham, BreadcrumbList ham kerak bo'lsa, ikki yo'l bor:
- Har biri uchun alohida
<script type="application/ld+json">bloki. Eng tushunarlisi. - Bitta blokda
@graphmassivi.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
"name": "Choyxona «Bahor»",
"url": "https://example.com/"
},
{
"@type": "Restaurant",
"@id": "https://example.com/#restoran",
"name": "Choyxona «Bahor»",
"url": "https://example.com/"
}
]
}
</script>@graph — "bu yerda bir nechta bog'liq obyekt bor". @id — obyektning noyob "shaxsiy raqami". Boshqa sahifada {"@id": "https://example.com/#restoran"} deb yozsangiz, qidiruv tizimi "bu o'sha restoran" deb tushunadi. Nomidagi "Linking" (bog'lash) aynan shu.
WebSite turi sayt nomini beradi: Google natija tepasida sayt nomini aynan shu yerdan olishi mumkin.
Boshqa ko'p ishlatiladigan turlar:
| Tur | Qayerda | Asosiy xususiyatlar |
|---|---|---|
Article |
Blog, yangilik | headline, datePublished, author |
Product |
Onlayn do'kon | name, offers (narx, priceCurrency: "UZS") |
Recipe |
Retsept sahifasi | recipeIngredient, cookTime |
Person |
Portfolio, muallif | name, jobTitle, sameAs |
9. Tekshirish vositalari
JSON-LD'ni yozib, "ishlaydi" deb umid qilish yetmaydi. To'rtta vosita bor:
- Google Rich Results Test (search.google.com/test/rich-results). Sahifa manzilini yoki kodni kiritasiz. U qaysi boy natijalar mumkinligini va xatolarni ko'rsatadi.
- Schema Markup Validator (validator.schema.org). schema.org qoidalari bo'yicha umumiy tekshiruv — Google ro'yxatida yo'q turlar uchun ham.
- Google Search Console. Sayt ulangandan keyin "Enhancements" bo'limida butun saytdagi strukturalangan ma'lumot xatolari chiqadi. Search Console'ni keyingi darsda ulaymiz.
- Yandex vebmaster'ning mikrorazmetka validatori (webmaster.yandex.ru/tools/microtest) — Yandex ham schema.org'ni o'qiydi.
Rich Results Test ikki darajali xabar beradi:
Missing field "address"Tarjimasi: "address maydoni yo'q". Bu qizil — majburiy maydon. Busiz boy natija chiqmaydi.
Missing field "priceRange" (optional)"priceRange maydoni yo'q (ixtiyoriy)". Bu sariq — tavsiya. Qo'shsangiz yaxshi, qo'shmasangiz ham ma'lumot ishlaydi.
JSON'ning o'zi buzilgan bo'lsa (masalan, ortiqcha vergul), Search Console "Unparsable structured data" hisobotida quyidagini ko'rsatadi:
Parsing error: Missing ',' or '}'Tarjimasi: "Tahlil xatosi: , yoki } yetishmaydi". Xato ko'pincha ko'rsatilgan joydan oldingi qatorda bo'ladi: tushib qolgan vergul yoki ortiqcha vergul.
10. Boshqa usullar: microdata, RDFa, microformats
JSON-LD yagona usul emas. Eski saytlarda boshqalarini ham uchratasiz.
Microdata — ma'lumot to'g'ridan-to'g'ri HTML teglarining atributlarida yoziladi:
<div itemscope itemtype="https://schema.org/Restaurant">
<h2 itemprop="name">Choyxona «Bahor»</h2>
<p>Tel.: <span itemprop="telephone">+998 90 000 00 00</span></p>
</div>itemscope— "bu yerdan yangi obyekt boshlanadi".itemtype— obyekt turi.itemprop— shu tegdagi matn qaysi xususiyat.
RDFa — shunga o'xshash, lekin vocab, typeof va property atributlari bilan.
Microformats — schema.org'dan ham eski, oddiy class nomlariga asoslangan usul. Masalan, h-card — kontakt kartochkasi: class="h-card", ichida p-name, p-tel. U hozir asosan shaxsiy bloglar va IndieWeb jamoasida yashaydi.
Nega JSON-LD yutdi? U HTML'dan alohida turadi. Dizayner sahifa tuzilmasini o'zgartirsa, ma'lumot buzilmaydi. Microdata'da esa bitta div ni ko'chirish itemprop bog'lanishini uzib qo'yishi mumkin. Google ham rasmiy ravishda JSON-LD'ni tavsiya qiladi.
11. Ko'p uchraydigan xatolar
11.1 JSON sintaksisi buzilgan
<script type="application/ld+json">
{
'@context': 'https://schema.org',
"@type": "Restaurant",
"name": "Choyxona «Bahor»",
}
</script> Ikki xato: bittalik qo'shtirnoq va oxirgi qatordan keyingi vergul. Brauzer hech narsa demaydi, Google esa blokni tashlab yuboradi. Tuzatish: faqat " va oxirgi vergulsiz. Shubha bo'lsa, JSON'ni VS Code'da .json fayl sifatida ochib ko'ring — u xatoni qizil chiziq bilan ko'rsatadi.
11.2 Tur nomi kichik harf bilan
"@type": "restaurant" — schema.org'da bunday tur yo'q. Turlar katta harf bilan: Restaurant. Xususiyatlar esa aksincha kichik harf bilan: "Name" emas, "name". Tuzatish: nomni schema.org sahifasidan aynan ko'chiring.
11.3 Sahifada yo'q ma'lumot
JSON-LD'da 4,9 baho va 500 ta sharh bor, sahifada esa bironta sharh yo'q. Bu — Google qoidalarini buzish. Eng yaxshi holatda e'tiborsiz qoldiriladi, eng yomonida jazo keladi. Tuzatish: faqat sahifada ko'rinadigan va haqiqiy ma'lumotni yozing.
11.4 Nisbiy manzillar
"logo": "/assets/images/logo.png" — robot bu manzilni boshqa kontekstda ochadi va qaysi saytniki ekanini bilmasligi mumkin. Tuzatish: har doim https:// bilan to'liq manzil.
Diqqat: JSON-LD foydalanuvchi kiritgan matndan yig'ilsa (masalan, sharh yoki mahsulot nomi), unda
</script>so'zi kelib qolishi mumkin. Buscriptni muddatidan oldin yopadi va keyingi matn sahifada HTML sifatida ishlaydi. Bu XSS hujumining bir ko'rinishi. Shuning uchun serverda JSON yig'ilganda<belgisi maxsus ko'rinishga (<) almashtiriladi — JSON uni baribir<deb o'qiydi, brauzer esa teg deb ko'rmaydi. XSS hujumining o'zini HTML darajasidagi xavfsizlik darsida batafsil ko'ramiz.
12. Mashqlar
1-mashq (oson): Xatolarni toping
Bu blokda to'rtta xato bor. Topib, tuzating.
<script type="application/json">
{
"@context": "https://schema.org",
"@type": "organization",
"name": "Choyxona «Bahor»",
"url": "https://example.com/",
"logo": "/assets/images/logo.png",
}
</script>Yechim
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Choyxona «Bahor»",
"url": "https://example.com/",
"logo": "https://example.com/assets/images/logo.png"
}
</script>type="application/json"→application/ld+json. Aks holda Google blokni qidirmaydi."organization"→"Organization". Tur nomi katta harf bilan.- Nisbiy
logomanzili → to'liq manzil. - Oxirgi qatordan keyingi vergul olib tashlandi — JSON'da bu taqiqlangan.
2-mashq (o'rta): Tadbir sahifasi uchun non yo'li
«Bahor» saytida https://example.com/tadbirlar/osh-bayrami.html sahifasi bor. Undagi yo'l: Bosh sahifa → Tadbirlar → Osh bayrami. Shu sahifa uchun BreadcrumbList yozing. Bo'sh joylarni to'ldiring:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1,
"name": "Bosh sahifa", "item": "https://example.com/" },
{ "@type": "ListItem", "position": 2,
"name": "Tadbirlar", "item": "..." },
{ "@type": "ListItem", "position": 3, "name": "..." }
]
}
</script>Ikkinchi bo'g'inning item qiymati:
Yechim
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1,
"name": "Bosh sahifa", "item": "https://example.com/" },
{ "@type": "ListItem", "position": 2,
"name": "Tadbirlar", "item": "https://example.com/tadbirlar/" },
{ "@type": "ListItem", "position": 3, "name": "Osh bayrami" }
]
}
</script>Ikkinchi bo'g'in — tadbirlar ro'yxati sahifasi, Ko'p sahifali sayt darsidagi tadbirlar/index.html. Server uni https://example.com/tadbirlar/ manzilida beradi. Uchinchi bo'g'in — joriy sahifa, shuning uchun item yozilmadi.
3-mashq (qiyin): «Bahor» bosh sahifasining to'liq ma'lumoti
Bosh sahifada quyidagi ma'lumotlar foydalanuvchiga ko'rinadi:
- Nomi: Choyxona «Bahor». Manzil: Toshkent, Bahor ko'chasi, 1-uy.
- Telefon: +998 90 000 00 00. Ish vaqti yozda o'zgardi: dushanba–juma avvalgidek 7:00–23:00, shanba–yakshanba esa 7:00–24:00.
- Oshxona: o'zbek milliy taomlari. Bron qabul qilinadi.
- Telegram kanali:
https://t.me/sizning_kanal.
@graph ichida WebSite va Restaurant yozing. Ish vaqti ikki xil bo'lgani uchun openingHoursSpecification massivida ikkita obyekt bo'ladi.
Ishora: Google hujjatlarida yarim tungacha ishlash odatda "closes": "23:59" deb yoziladi — sana keyingi kunga o'tib ketmasligi uchun.
Yechim
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
"name": "Choyxona «Bahor»",
"url": "https://example.com/"
},
{
"@type": "Restaurant",
"@id": "https://example.com/#restoran",
"name": "Choyxona «Bahor»",
"url": "https://example.com/",
"telephone": "+998 90 000 00 00",
"servesCuisine": "O'zbek milliy taomlari",
"acceptsReservations": true,
"sameAs": ["https://t.me/sizning_kanal"],
"address": {
"@type": "PostalAddress",
"streetAddress": "Bahor ko'chasi, 1-uy",
"addressLocality": "Toshkent",
"addressCountry": "UZ"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday",
"Thursday", "Friday"],
"opens": "07:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Saturday", "Sunday"],
"opens": "07:00",
"closes": "23:59"
}
]
}
]
}
</script>Tekshiruv ro'yxati: har bir { yopilgan, oxirgi elementlardan keyin vergul yo'q, true qo'shtirnoqsiz, manzillar to'liq. Kodni Rich Results Test'ga "Code" rejimida qo'yib, "Local business" topilganini ko'ring.
13. Real ishda
- SEO mutaxassislari har yangi saytda birinchi navbatda
Organization/LocalBusiness,WebSitevaBreadcrumbListni so'raydi. Onlayn do'konlardaProduct— majburiy. - CMS va freymvorklar. WordPress'da Yoast yoki Rank Math plaginlari JSON-LD'ni avtomatik yig'adi. Next.js'da uni sahifa komponentida
scriptsifatida o'zingiz qo'shasiz (Next.js qismida). - AI qidiruv. Google'ning AI javoblari, ChatGPT va Perplexity kabi tizimlar ham sahifani tushunish uchun aniq faktlarga tayanadi. Toza strukturalangan ma'lumot bu yerda ham ortiqcha bo'lmaydi.
- Intervyuda: "JSON-LD nima va u reytingni oshiradimi?" To'g'ri javob: to'g'ridan-to'g'ri oshirmaydi, lekin boy natija va aniq tushunish orqali ko'proq bosish olib keladi.
Xulosa
- Strukturalangan ma'lumot — sahifadagi faktlarning mashina o'qiydigan "pasporti".
- Lug'at — schema.org (tur katta harf bilan, xususiyat camelCase'da), yozish usuli —
<script type="application/ld+json">ichidagi JSON. Restaurant+PostalAddress+OpeningHoursSpecification— mahalliy biznes uchun asosiy to'plam;BreadcrumbList— natijadagi sahifa yo'li.- Faqat sahifada ko'rinadigan, haqiqiy ma'lumotni yozing — soxta sharhlar jazoga olib keladi.
- Boy natijalar o'zgaradi: 2026-yil maydan Google FAQ'ni ko'rsatmaydi, "Course info" 2025-yilda to'xtagan. Search gallery'ni tekshirib turing.
- Har doim Rich Results Test va Schema Markup Validator bilan tekshiring.
Keyingi dars: SEO uchun HTML amaliyoti — sarlavhalar, ichki havolalar, sitemap.xml va robots.txt bilan «Bahor»ni Google va Yandex'ga to'g'ri tanishtiramiz.
Manbalar
- schema.org: "Restaurant", "BreadcrumbList", "FAQPage", "Course", "Event" — schema.org
- Google Search Central: "Introduction to structured data markup", "Structured data general guidelines", "Search gallery" — developers.google.com/search
- Google Search Central: "Local business", "Breadcrumb", "Course list", "Event" — developers.google.com/search
- Google Search Central Blog, 2025-yil iyun: bir nechta strukturalangan ma'lumot turini to'xtatish haqidagi e'lon — developers.google.com/search/blog
- JSON-LD 1.1 — w3.org/TR/json-ld11
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!