Strukturált adatok Szakszó

@graph (több séma egy blokkban)

Szerző: · 7 perc olvasás · Frissítve:
@graph (több séma egy blokkban) - Strukturált adatok (szakszó) a tudástárban
@graph (több séma egy blokkban) - Strukturált adatok | eClick GEO-audit tudástár

A @graph a JSON-LD egyik kulcsa: egy tömb, amelybe több séma-entitás kerül egyetlen <script> blokkon belül. Az elemek @id azonosítókkal hivatkoznak egymásra, így nem különálló adatdarabok, hanem összefüggő entitás-háló keletkezik.

Hogyan működik

Egy @graph blokk egyetlen @context alatt fut. Alatta felsorolod az oldal entitásait: a céget, a webhelyet, az aktuális oldalt, a morzsamenüt, a terméket. Mindegyik kap egy stabil @id értéket, ami jellemzően egy URL horgonnyal, például https://pelda.hu/#organization.

A kapcsolatot ezután rövid hivatkozás adja. A WebSite publisher mezőjébe nem másolod be újra a céget, csak az @id-jére mutatsz. Ettől a JSON-LD kódod nem írja le ugyanazt a szervezetet négyszer.

Miért más ez a gépeknek

A keresők és a nyelvi modellek entitásokban gondolkodnak, nem mezőkben. Külön blokkokban három objektum lebeg egymás mellett, és a gépnek kell kitalálnia, hogy ugyanarról a cégről van szó. A @graph ezt a találgatást kiveszi a folyamatból.

A gyakorlatban ez látszik a strukturált adatok feldolgozásán: a riportokban a @graph-os oldalaknál sokkal ritkább a duplikált vagy egymásnak ellentmondó cégnév.

Mikor számít igazán

Akkor, ha egy oldalon több séma-típus van egyszerre. Egy termékoldalon jellemzően négy-öt entitás fut: szervezet, webhely, oldal, morzsamenü, termék. Egyetlen sémánál a @graph felesleges bonyolítás.

Mit néz ebből a riport

Az audit megnézi, hogy az oldal JSON-LD kódja egy összekapcsolt gráfot ad-e ki, vagy szétszórt blokkokat. Vizsgálja az @id hivatkozások épségét is: mutat-e minden hivatkozás létező entitásra. A szétesett, egymásra nem hivatkozó sémák gyengébb értékelést kapnak.

Röviden: a @graph nem új séma-típus, hanem a kapcsolatok kimondásának módja egy blokkon belül.

Miért fontos

SEO-oldalról

A Google a gazdag találatokhoz egyértelmű adatot vár. Ha három blokkban háromféle cégnév szerepel, a rendszer valamelyiket figyelmen kívül hagyja. A @graph egy forrásból dolgozik, így nincs ütközés.

AI-oldalról

Egy nyelvi modell a hivatkozásokból építi fel a képet a cégről. A kapcsolat kimondva erősebb, mint kikövetkeztetve. A publisher és az isPartOf mezők megmondják, hogy a tartalom kihez tartozik.

Üzleti hatás

A gyakorlati haszon a konzisztencia. Egy helyen javítod a címet vagy a telefonszámot, és az egész gráfban helyes lesz. A magyar KKV-oldalak többségén ma külön blokkokban, kézzel karbantartott másolatok élnek, és ezek idővel szétcsúsznak.

Kikre vonatkozik

  • Minden oldal, ahol több séma-típus fut egyszerre: webshop termékoldal, blogcikk, szolgáltatásoldal.
  • Webshopok: itt a legnagyobb a nyereség, mert a termék, a morzsamenü és a bolt adatai összetartoznak.
  • Tartalmas KKV-oldalak: a Organization és a WebSite séma összekötése már önmagában javít az értelmezésen.

Kire nem vonatkozik:

  • Egyetlen sémát használó landing oldal: ott a sima JSON-LD blokk is elég.
  • Staging és zárt fejlesztői környezet: ha noindex alatt fut, nem prioritás.
  • Microdata-alapú régi sablonok: ott a @graph nem értelmezhető, előbb JSON-LD-re kell váltani.

Hogyan ellenőrzöd

  1. Nyisd meg az oldalt, és nézd meg a forrást: Ctrl+U vagy devtools, Elements fül.
  2. Keress rá az application/ld+json szövegre. Számold meg, hány találat van.
  3. Nyisd meg a talált blokkot, és keresd benne a @graph kulcsot.
  4. Ellenőrizd az @id értékeket: minden hivatkozásnak létező entitásra kell mutatnia ugyanabban a tömbben.
  5. Futtasd le az oldalt a Rich Results teszten és a validator.schema.org címen. Az utóbbi a teljes gráfot kirajzolja.

Jó jel

  • Egy JSON-LD blokk, benne @graph tömb, 3-6 entitással.
  • Az @id értékek abszolút URL-ek horgonnyal, nem #1 típusú számok.
  • A publisher és az isPartOf mezőkben hivatkozás áll, nem beágyazott másolat.

Rossz jel

  • Négy-öt külön ld+json blokk, egymásra mutató hivatkozás nélkül.
  • Ugyanaz a cég kétszer, eltérő névvel vagy logóval.
  • @id nélküli entitások, amelyekre így nem lehet hivatkozni.
  • Hivatkozás olyan @id-re, amely sehol nincs definiálva a gráfban.

Hogyan javítod

WordPress

  1. Hagyatkozz a fő SEO-bővítményre. A Yoast SEO és a Rank Math is @graph szerkezetben adja ki a sémát.
  2. Kapcsold ki a többi séma-forrást: témába épített kód, régi séma-plugin, page builder modul.
  3. Bővíteni szűrőn keresztül bővíts, ne új blokkal. Yoastnál a wpseo_schema_graph, Rank Mathnál a rank_math/json_ld szűrő való erre.

Shopify

  1. Nézd meg a theme.liquid és a termék sablon JSON-LD részeit. Sok téma külön blokkokat ír ki.
  2. Hozz létre egy snippetet, amely egyetlen @graph tömböt renderel.
  3. Töröld a régi, szétszórt blokkokat, majd ellenőrizd újra a validátorral.

Unas

  1. A rendszer maga is kiad séma-kódot, ezt először térképezd fel a forrásban.
  2. A saját HTML-beszúrásokba ne tegyél második Organization blokkot.
  3. Ha egyedi gráfot építesz, a beépített kimenettel ütköző részeket hagyd el.

Shoprenter

  1. A sablonszerkesztőben keresd meg a fejléc sablonját és a benne lévő JSON-LD részeket.
  2. Egy helyen rendereld a teljes gráfot, oldaltípus szerinti elágazással.
  3. A BreadcrumbList entitást is a gráfba tedd, ne külön blokkba.

Egyedi fejlesztés

  1. Építs egy szolgáltatást, amely entitás-objektumokat gyűjt, és a végén egyetlen tömbbé fűzi őket.
  2. Az @id képzése legyen központi függvény, hogy a hivatkozások sose csússzanak el.
  3. Szerver oldalon rendereld a blokkot. A JavaScripttel utólag beszúrt séma feldolgozása bizonytalan.
  4. Tegyél a build folyamatba egy ellenőrzést, amely elhasalt @id hivatkozásra hibát dob.

Gyakori hibák

  • Több külön JSON-LD blokk hivatkozás nélkül: a gépnek kell kitalálnia az összetartozást, és gyakran nem találja ki.
  • Hiányzó @id: hivatkozni sem lehet rá, így a @graph csak egy lista marad.
  • Nem stabil azonosító: ha az @id oldalanként változik, a entitás-azonosító elveszti a lényegét.
  • Dupla Organization: a plugin és a téma is kiírja, a két változat pedig eltérő adatot közöl.
  • Beágyazás hivatkozás helyett: a teljes cégadat ötször szerepel, karbantartani viszont csak egy helyen szoktuk.
  • Törött hivatkozás: a publisher olyan @id-re mutat, amelyet közben átneveztek.
  • @context minden elemben: felesleges, a @graph felett egyszer kell megadni.

Technikai példa

Egy szolgáltatásoldal teljes gráfja egyetlen blokkban. A szervezet egyszer szerepel, a többi entitás csak hivatkozik rá.

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://pelda.hu/#organization",
      "name": "Példa Kft.",
      "url": "https://pelda.hu/",
      "logo": {
        "@type": "ImageObject",
        "@id": "https://pelda.hu/#logo",
        "url": "https://pelda.hu/logo.png"
      },
      "sameAs": ["https://www.facebook.com/pelda"]
    },
    {
      "@type": "WebSite",
      "@id": "https://pelda.hu/#website",
      "url": "https://pelda.hu/",
      "name": "Példa Kft.",
      "inLanguage": "hu-HU",
      "publisher": { "@id": "https://pelda.hu/#organization" }
    },
    {
      "@type": "WebPage",
      "@id": "https://pelda.hu/szolgaltatasok/#webpage",
      "url": "https://pelda.hu/szolgaltatasok/",
      "name": "Szolgáltatások",
      "isPartOf": { "@id": "https://pelda.hu/#website" },
      "about": { "@id": "https://pelda.hu/#organization" },
      "breadcrumb": { "@id": "https://pelda.hu/szolgaltatasok/#breadcrumb" }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://pelda.hu/szolgaltatasok/#breadcrumb",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Főoldal", "item": "https://pelda.hu/" },
        { "@type": "ListItem", "position": 2, "name": "Szolgáltatások" }
      ]
    }
  ]
}

Gyors ellenőrzés parancssorból. Ha több találatot ad, több különálló blokk van az oldalon:

curl -sL https://pelda.hu/ | grep -c 'application/ld+json'

Gyakori kérdések

Kötelező a @graph használata?
Nem, a Google a külön blokkokat is feldolgozza. A @graph az értelmezés pontosságán javít, nem a validitáson. Több séma-típusnál viszont erősen ajánlott, mert megszünteti a találgatást.
Mi történik, ha a plugin és a téma is kiír sémát?
Két Organization entitás kerül az oldalra, gyakran eltérő adattal. A kereső ilyenkor vagy választ, vagy mindkettőt gyengébben súlyozza. Kapcsold ki az egyiket, és csak egy forrás maradjon.
Milyen legyen az @id formátuma?
Abszolút URL horgonnyal, például https://pelda.hu/#organization. Nem kell, hogy létező oldal legyen, de stabilnak kell lennie. Ha átnevezed, minden rá mutató hivatkozást is javítani kell.
Hogyan ellenőrzöm, hogy jól kapcsolódnak az entitások?
A validator.schema.org kirajzolja a gráf szerkezetét, így látszik, mi mire mutat. A Rich Results teszt azt mutatja meg, melyik séma jogosult gazdag találatra. A kettőt érdemes együtt futtatni.
JavaScripttel beszúrt @graph is jó?
Kockázatos. A Google általában rendereli, de az AI-crawlerek egy része nem futtat JavaScriptet. Szerver oldalon rendereld a blokkot, ha teheted.

Források

Kapcsolódó fogalmak

A te oldaladon hogy áll a(z) „@graph (több séma egy blokkban)”?

Futtass egy GEO-auditot: pontszám, fejlesztői ítélet, a leggyorsabb javítások, és minden tételhez bizonyíték.

Ingyenes GEO-audit indítása