JSON-LD Schema.org: kuriuos tipus rinktis
Atvejis iš vieno projekto. Landing page su penkiais klausimais FAQ skiltyje puslapio apačioje. Kabėjo Google pusantrų metų, impresijos ėjo, CTR apie 1,8 % — standartiškai komerciniam užklausai penktoje pozicijoje.
Pridėjau FAQPage schema. Tiesiog įvyniojau tuos pačius penkis klausimus ir atsakymus į JSON-LD bloką, įdėjau į <head>. Teksto puslapyje nelietėu, nė raidės.
Po trijų savaičių Google pradėjo rodyti SERP akordeoną su šiais klausimais tiesiog po snippet'u. Atsiveriantys pliusai, atsakymai matomi be paspaudimo. Iš pradžių tik vienam užklausui, paskui trims, paskui septyniems. CTR per mėnesį išaugo nuo 1,8 % iki 3,9 %. Pozicija nepakito — penkta liko penkta. Tiesiog snippet'as paieškoje pradėjo užimti tris kartus daugiau vietos.
Tai ir yra rich results. Google atvaizduoja tavo puslapį paieškoje kitaip nei kaimynų — atsiliepimų žvaigždutės, kortelė su žingsniais, klausimų akordeonas, breadcrumbs vietoj ilgo URL. Ir tereikia — teisingai sužymėti turinį per schema.org, kad Google suprastų, kas yra tavo puslapyje, ir sutiktų tai parodyti ypatingu būdu.
Schema.org — tai ne apie tiesioginį reitingavimą. Tai apie tai, kaip tave parodys, kai jau būsi paieškos rezultatuose. Ir apie tai, kad Google apskritai suprastų, kas yra tavo puslapyje — ne spėliotų, o žinotų tiksliai.
Kas yra Schema.org ir JSON-LD
Schema.org — tai bendras tipų ir savybių žodynas semantinei interneto žymai. Sukurtas 2011 m. bendrai Google, Microsoft, Yahoo ir Yandex. Šiuo metu turi apie 800 tipų: Person, Organization, Article, Product, Event, Recipe, Movie, MusicAlbum, MedicalCondition — kiekvienam reikšmingam reiškiniui, kuris gali būti puslapyje, yra savas tipas su savomis savybėmis.
Yra trys žymėjimo formatai: Microdata, RDFa ir JSON-LD. Microdata ir RDFa įterpiami į HTML žymas per atributus itemprop, itemscope, property — tai yra žymi patį turinį vietoje. JSON-LD — tai atskiras <script type="application/ld+json"> blokas, kuris nesusimaišo su HTML. Tiesiog grynas JSON, kuris aprašo puslapį lygiagrečiai.
Google oficialiai rekomenduoja JSON-LD. Priežastys trys. Pirma: lengva prižiūrėti — žyma nepririšta prie HTML struktūros, gali keisti maketavimą nelaužydamas schema. Antra: galima generuoti programiškai — Next.js ar bet kuriame kitame karkase įterpiama per metadata API arba dangerouslySetInnerHTML. Trečia: lengva validuoti — Google Rich Results Test skaito būtent JSON-LD blokus.
Be schema Google vis tiek supras, kas yra tavo puslapyje. Jis moka skaityti įprastą HTML, mato H1, mato kainas, mato datas. Bet jis spėlioja. Su schema jis nespėja — jis žino tiksliai. Tai blokas Product su price: 1990, availability: InStock, brand: Apple. Jokių dviprasmybių.
Ir svarbiausia — tik su teisinga schema Google turi teisę parodyti rich results: atsiliepimų žvaigždutes po rezultatu, FAQ akordeoną, HowTo kortelę, breadcrumbs SERP'e, vaizdo įrašo peržiūrą. Be žymos to nebus net puikiausiame puslapyje.
Kuriuos tipus duoti kiekvienam puslapiui
Website — pagrindiniame puslapyje. Vienas sitewide blokas, aprašo patį svetainę: pavadinimą, URL, potencialiai SearchAction — jei turi savo paiešką svetainėje, Google gali ją ištraukti tiesiog į SERP kaip „search box“. Šis blokas dedamas vieną kartą pagrindiniame puslapyje, nedubliuojamas kituose puslapiuose.
Organization — sitewide, kiekviename puslapyje. Įmonės pavadinimas, logotipas (paveikslo URL bent 112×112 pikselių), kontaktiniai duomenys, sameAs — masyvas nuorodų į tavo socialinius tinklus ir profilius (Twitter, LinkedIn, Facebook, Wikipedia, Crunchbase). Tai bazinis signalas Knowledge Panel — tai kortelei dešinėje SERP'e, kuri rodoma pagal prekės ženklą. Be Organization Google nesupranta, kad keli tavo domenai ir paskyros — tai vienas subjektas.
BreadcrumbList — kiekviename puslapyje giliau nei pirmas lygis. Aprašo kelią nuo pagrindinio iki dabartinio puslapio: Pagrindinis → Tinklaraštis → Kategorija → Šis straipsnis. Google atvaizduoja šį kelią SERP'e vietoj ilgo URL — atrodo švariau, užima daugiau vietos, išsiskiria iš kaimynų. Pats paprasčiausias schema tipas ir vienas iš pastebimiausių pagerinimų paieškoje. Turi būti VISKAME, kas nėra pagrindinis.
BlogPosting — tinklaraščio straipsniams. Laukai: headline (antraštė), author (su Person tipu ir nuoroda į autoriaus profilį), datePublished, dateModified, image (viršelio URL), wordCount, articleSection, keywords. Pasirenkamas speakable — nurodo, kuriuos straipsnio gabalus gali perskaityti balso asistentas. Be BlogPosting Google supranta, kad tai straipsnis, bet nežino, kas autorius ir kada atnaujinta — o tai E-E-A-T signalai.
Article / NewsArticle — bendriems straipsniams ir naujienoms. Article — tėvinis tipas, BlogPosting ir NewsArticle iš jo paveldi. NewsArticle naudojamas naujienų publikacijoms — tai signalas Google News. Jei nesi užregistruotas Google News — paprastai dėk BlogPosting arba Article, netampyk NewsArticle.
FAQPage — puslapiams su klausimais ir atsakymais. Bloko viduje — Question masyvas, kiekviename acceptedAnswer su Answer tipu. Google atvaizduoja tai kaip atsiveriantį akordeoną SERP'e. Veikia tik tada, kai klausimai iš tikrųjų panašūs į vartotojiškus — „Kas yra X?“, „Kiek kainuoja Y?“, „Kaip padaryti Z?“. Marketingišką „Kodėl mes geriausi?“ — Google ignoruos.
HowTo — žingsnis po žingsnio gidams. Viduje — HowToStep masyvas, kiekviename text, image, pasirenkamai name ir url. Papildomai totalTime, tool, supply (įrankiai ir medžiagos). Google atvaizduoja kortelę su žingsniais ir paveikslėliais tiesiog SERP'e. Veikia tik realiose žingsnis po žingsnio instrukcijose — „Kaip pakeisti akumuliatorių“, „Kaip nustatyti maršrutizatorių“. Ne straipsniams tipo „10 patarimų“ — ten nėra žingsnių sekos.
Product — prekėms. price, priceCurrency, availability (InStock / OutOfStock / PreOrder), brand, sku, gtin, condition. Viduje — aggregateRating (vidutinis įvertinimas ir atsiliepimų skaičius) ir review (atskiri atsiliepimai). Google rodo žvaigždutes, kainą ir prieinamumą tiesiog SERP'e. E-komercijoje — tai must-have, be Product schema prekių puslapiai paieškoje atrodo daug prasčiau nei konkurentų.
Event — renginiams. startDate, endDate, location (su Place tipu ir adresu), performer, organizer, offers (bilietai su kaina). Eventstatus — EventScheduled / EventPostponed / EventCancelled / EventMovedOnline. Google atvaizduoja renginio kortelę SERP'e ir Google Events, rodo datą, vietą ir mygtuką nusipirkti bilietą.
VideoObject — vaizdo įrašams. name, description, thumbnailUrl, uploadDate, duration, contentUrl arba embedUrl. Google rodo vaizdo įrašo peržiūrą SERP'e su trukmės laiku. Veikia net jei vaizdo įrašas įkeltas ne į YouTube — į savo CDN, į Vimeo, bet kur. Be VideoObject Google apskritai gali nesuprasti, kad puslapyje yra vaizdo įrašas.
WebApplication / SoftwareApplication — internetiniams įrankiams ir programėlėms. applicationCategory, operatingSystem, offers (kaina arba freemium), featureList, aggregateRating. Google supranta, kad tu turi ne straipsnį, o įrankį — ir rodo atitinkamus signalus. Naudoju visiems savo SaaS puslapiams su interaktyviais tikrinimo įrankiais.
Person — autoriaus puslapiams ir about puslapiams. name, image, jobTitle, worksFor, sameAs (nuorodos į autoriaus profilius socialiniuose tinkluose, LinkedIn, Twitter). Tai E-E-A-T signalas: Google žino, kas autorius, kuo dirba, kur dar jį galima rasti. Susieji Person su author BlogPosting'e — gauni susietą autorius-straipsniai grafiką.
Review / AggregateRating — atsiliepimai. Review — atskiras atsiliepimas su reviewBody, ratingValue, author ir datePublished. AggregateRating — agreguotas įvertinimas su ratingValue ir reviewCount. Google rodo žvaigždutes po rezultatu SERP'e. Veikia prekėms, paslaugoms, receptams, knygoms, filmams. Neveikia „vidutiniškai pagal svetainę“ — reikia susieti su konkrečiu puslapiu su konkrečiu turiniu, kuris vertinamas.
Dažniausios klaidos
Schema neatitinka matomo turinio. Pavojingiausia klaida. Tu sužymėjai FAQPage su penkiais klausimais, bet puslapyje šie klausimai paslėpti, arba jų ten apskritai nėra, arba jie parašyti kitu tekstu. Google tai nuskaito. Jei neatitikimas sistemingas — atlekia manual action: „Struktūrizuoti duomenys neatitinka turinio“. Snippet'ai išjungiami visame domene. Atsigauna mėnesiais. Taisyklė paprasta: schema'oje lygiai tai, ką mato vartotojas puslapyje. Ne daugiau, ne mažiau.
Dublikatai su skirtingais @id. Viename puslapyje du Organization blokai su skirtingais @id. Vienas iš header.tsx, antras iš layout.tsx, pamiršai ištrinti seną. Google mato, kad svetainė tarsi turi dvi skirtingas organizacijas, susipainioja, gali ignoruoti abi. Tikrink per Rich Results Test — jis rodo visus rastus blokus. Turi būti vienas Organization, vienas Website, vienas Article — po vieną kiekvieno tipo.
Sulaužytas JSON. Papildomas kablelis po paskutinio lauko, neuždaryta skliaustai, ne to tipo kabutės. JSON sulūžta visas, o ne dalis — Google neparsina nieko iš bloko. Ypač linksma, kai įterpi JSON-LD per šabloną su kintamaisiais — viena neeskepuota kabutė straipsnio title — ir blokas miręs. Visada validuok per https://search.google.com/test/rich-results po pataisymo.
FAQPage su marketingiškais „klausimais“. „Kodėl rinktis mus?“, „Kokie privalumai?“, „Kas mus išskiria?“ — Google tai mato ir nerodo. Algoritmas specialiai apmokytas atskirti marketingą. FAQPage veikia, kai klausimai panašūs į tai, ką vartotojas realiai įveda paieškoje: „Kiek kainuoja prisijungimas?“, „Per kiek atvyksta pristatymas?“, „Ar galima grąžinti prekę?“. Informaciniai, konkretūs, viena tema.
HowTo ne žingsnis po žingsnio gide. Google atvaizduoja HowTo kortele su žingsniais — todėl reikalauja, kad žingsniai iš tikrųjų būtų nuoseklūs ir nepriklausomi. „10 SEO patarimų“ — tai ne HowTo, tai sąrašas. „Kaip nustatyti SSL sertifikatą“ su penkiais žingsniais — tai HowTo. Jei užtempsi HowTo ant patarimų sąrašo — Google arba ignoruos, arba blogiausiu atveju išduos manual action už klaidinančią žymą.
Schema straipsniuose be author ir datePublished. BlogPosting be autoriaus — tai ne BlogPosting. Google to nelaiko galiojančiu straipsniu, nerodo Top Stories, neskaito kaip E-E-A-T signalo. Minimumas: headline, author (Person su name), datePublished, image. Be šių keturių laukų blokas nenaudingas.
Kaip pridėti ir patikrinti
JSON-LD — tai inline <script type="application/ld+json">, kuris įterpiamas į <head> arba <body>. Google parsina ir ten, ir ten, efekto skirtumo nėra. Pagal įprotį dedama į <head>, nes tai metaduomenys.
Next.js yra du keliai. Pirmas — metadata API, pradedant nuo App Router. Layout.tsx arba page.tsx eksportuoji objektą metadata, jame galima pridėti bloką other → JSON-LD. Patogu tipiniams atvejams — Organization, Website. Antras — per dangerouslySetInnerHTML pačiame puslapyje. Sukuri JS objektą, padarai JSON.stringify, įterpi į <script>. Patogu dinaminei schema — BlogPosting pagal konkretų straipsnį, Product pagal konkrečią prekę, FAQPage su duomenimis iš CMS.
Po pridėjimo — privalomas patikrinimas. Du įrankiai:
— Google Rich Results Test — https://search.google.com/test/rich-results. Įterpi URL arba neapdorotą kodą. Google rodo, kuriuos tipus jis rado, kurie laukai validūs, kokie rich results prieinami šiam puslapiui. Jei rodo „No items detected“ — schema arba neužsikrovė, arba neteisinga.
— Schema.org Validator — https://validator.schema.org. Griežtesnis, tikrina atitikimą pačiai schema.org specifikacijai. Naudingas, kai dedi egzotišką tipą, kurio Google dar nepalaiko rich results, bet kuris semantiškai teisingas.
Po publikavimo — monitoringas Google Search Console. Skiltis Performance → Search Appearance. Google skirsto tavo impresijas pagal snippet'o tipą: paprastas tekstas, FAQ rich result, HowTo rich result, sitelinks. Matosi, kurie tipai realiai veikia, kurie — neduoda efekto. Jei pridėjai FAQPage, ir per du mėnesius Search Appearance neatsirado „FAQ rich result“ — vadinasi, Google tavo žymos nepriėmė arba klausimai nepraėjo kokybės filtro.
Rezultatas
Prioritizavimas pagal poveikį CTR ir apimčiai:
- BreadcrumbList — viskame, kas nėra pagrindinis. Paprasčiausias tipas, pastebimas efektas SERP'e, jokios rizikos. Jei schema nėra niekur — pradėk nuo šio.
- Organization ir Website — sitewide. Vieną kartą sukonfigūravai, veikia visoje svetainėje. Bazinis signalas Knowledge Graph ir prekės ženklo paieškai.
- BlogPosting / Product / Event — per-page. Kiekviename atitinkamo tipo puslapyje. Tai E-E-A-T straipsniams ir rich results prekėms bei renginiams.
- FAQPage — kur tinka. Jei realiai turi FAQ bloką su vartotojiškais klausimais. Netempk dėl akordeono.
- HowTo — tik realiuose žingsnis po žingsnio giduose. Griežčiausias tipas kokybės atžvilgiu, bet ir pastebimiausias rich result.
- VideoObject, Review, Person — taškiškai. Konkrečiam turiniui: vaizdo įrašų puslapiams, atsiliepimams, autorių puslapiams.
Schema.org — tai apie tai, kaip valdyti, kaip Google mato ir rodo tavo svetainę. Pati savaime schema nepastums tavęs į top-10. Bet kai esi top-10 — schema kelia CTR dėl rich results, ir bendra pozicija per 3–6 mėnesius auga jau nuo šio signalo. Tai vienas iš 30 SEO 2026 faktorių, kurį nuvertina. Visi knebinėjasi su meta description'u ir canonical žymomis, pamiršdami, kad rich results — tai +50–200 % prie snippet'o matomumo paieškoje, esant tai pačiai pozicijai.
Pradėk nuo BreadcrumbList ir Organization. Pridėk BlogPosting straipsniams. Toliau — pagal situaciją.