A JSON-LD egy adatformátum, amivel géppel olvasható tényeket teszel az oldalra, külön <script type="application/ld+json"> blokkban. A látható tartalmat nem változtatja meg, csak leírja: ki vagy, mit árulsz, mennyibe kerül, ki írta a cikket.
Hogyan működik
A blokk egy sima JSON-objektum. A @context mondja meg, melyik szótárat használod, ez szinte mindig a https://schema.org. A @type adja meg az entitás típusát, például Organization, Product vagy Article. A kulcsok és az értékek a schema.org szókincsből jönnek.
A böngésző ezt a blokkot nem rajzolja ki. A robotok viszont kiolvassák, és összekötik a látható tartalommal. Három jelölési mód létezik a weben: microdata, RDFa és JSON-LD. A Google dokumentációja a JSON-LD-t ajánlja, mert nem kell a HTML-elemek közé keverni az adatot.
Miért jobb a másik kettőnél
A microdata attribútumokban él, így minden sablonváltás eltörheti. A JSON-LD egy különálló blokk, ezért kódból generálható és egyben tesztelhető. Több entitást is beletehetsz egyetlen blokkba a @graph (több séma egy blokkban) segítségével. Az entitások közti hivatkozást pedig a @id (entitás-azonosító a sémában) oldja meg.
Mit kezd vele egy generatív kereső
A nyelvi modellek a látható szöveget is olvassák, a JSON-LD nem helyettesíti azt. Viszont egyértelműsít. A szövegből egy modellnek ki kell találnia, hogy a „Bp., Fő utca 1.” egy cím. A JSON-LD-ben ez PostalAddress, tévedés nélkül. A riportokban azt látjuk, hogy a tiszta sémával rendelkező oldalakról az AI-összefoglalók pontosabb cégnevet és elérhetőséget idéznek.
Röviden: a JSON-LD az a réteg, ahol a gépnek szó szerint kimondod azt, amit az embernek csak megmutatsz.
Miért fontos
A JSON-LD a legolcsóbb módja annak, hogy a gép ne találgasson az oldaladról.
- Rich result esély: az értékelés-csillag, az ár, a GYIK-harmonika és a morzsamenü a találati oldalon mind strukturált adatból jön.
- Entitás-felismerés: a cégnév, a logó és a profiloldalak összekapcsolása ezen múlik, lásd sameAs.
- AI-válaszok pontossága: a modellnek nem kell a lábléc szövegéből visszafejtenie a telefonszámot.
- Hibatűrés: ha a JSON szintaktikailag hibás, a feldolgozó az egész blokkot eldobja. Nincs részleges pontszám.
A magyar KKV-oldalak többségén vagy egyáltalán nincs JSON-LD, vagy csak egy üres WebSite blokk van, tényleges adat nélkül. Ez ugyanannyit ér, mint a semmi.
Mit néz ebből a riport
Az audit megnézi, van-e egyáltalán application/ld+json blokk a HTML-ben, és lefut-e rajta a JSON-értelmezés. Ellenőrzi a @context és a @type meglétét, és azt, hogy a fontos típusok szerepelnek-e. Ha a blokk hibás szintaxisú, azt külön jelzi, mert az a keresőnél is teljes kiesést jelent.
Technikai példa
Egy minimális, de használható cégblokk. A @id teszi lehetővé, hogy más entitások hivatkozzanak rá.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://pelda.hu/#organization",
"name": "Példa Kft.",
"url": "https://pelda.hu/",
"logo": "https://pelda.hu/logo.png",
"telephone": "+36 1 234 5678",
"address": {
"@type": "PostalAddress",
"streetAddress": "Fő utca 1.",
"addressLocality": "Budapest",
"postalCode": "1011",
"addressCountry": "HU"
},
"sameAs": [
"https://www.facebook.com/pelda",
"https://www.linkedin.com/company/pelda"
]
}
</script>
Így nézed meg, hogy a blokk a nyers HTML-ben is benne van-e, nem csak a renderelt DOM-ban:
curl -s https://pelda.hu/ | grep -c 'application/ld+json'
Ha az eredmény 0, de a devtools Elements fülén látod a blokkot, akkor JavaScript szúrja be. Ez a legtöbb feldolgozónál kockázatos.
Gyakori kérdések
A head-be vagy a body-ba tegyem a JSON-LD-t?
Mindkettő érvényes, a Google mindkét helyen feldolgozza. A <head> a tisztább megoldás, mert ott nem keveredik a tartalommal. Ha a sablonod miatt egyszerűbb a body végére tenni, az sem hiba. A lényeg, hogy a szerver által küldött HTML-ben benne legyen.
Kaphatok büntetést a strukturált adat miatt?
A hibás séma önmagában nem büntetés, egyszerűen figyelmen kívül marad. Manuális intézkedés akkor jöhet, ha a séma olyan adatot állít, ami az oldalon nincs ott. Tipikus eset a kitalált értékelés-csillag. A látható tartalom és a séma mindig egyezzen.
Elég, ha csak JSON-LD-t teszek ki, szöveget nem írok?
Nem. A JSON-LD kiegészítő réteg, nem helyettesíti a tartalmat. A keresők és a nyelvi modellek elsődlegesen a látható szöveget dolgozzák fel, lásd
strukturált adatok: így beszél az oldalad a gépekkel. Séma nélküli jó szöveg többet ér, mint szöveg nélküli jó séma.
Hány blokk lehet egy oldalon?
Technikailag több is, ezt a feldolgozók kezelik. Karbantartás szempontjából viszont egy blokk a jobb, @graph szerkezettel. Így egy helyen látod az összes entitást, és nem lesz belőlük két különböző változat.
Miért nem látszik a rich result, pedig a teszt hibátlan?
A megfelelő séma nem garancia a kiemelt megjelenésre, csak a belépő hozzá. A Google dönt arról, mikor mutatja. Ellenőrizd a Search Console Fejlesztések riportját, és adj neki néhány hetet az újrafeldolgozásra.