JSON-LD na webu: strukturovaná data bez magie a bez microdata pekla

Strukturovaná data říkají strojům, co na stránce je. Proč je řešit, co vyplňovat, jak je kontrolovat v GSC a proč na to používám JSON-LD místo microdat.

Autor článku
Logo Anycoders — Jaromír Šetek
Jaromír Šetek

CEO & digitální strategie

Profil autora

Strukturovaná data jsou strojově čitelný popis obsahu stránky. Vyhledávači (a čím dál častěji i AI přehledům) říkají: tohle je firma, tohle článek, tohle produkt s cenou, tohle FAQ. Nejsou to „tajný kód na lepší pozice". Jsou to jasně pojmenovaná fakta o tom, co na URL opravdu je.

Na web se dají dostat víc způsoby. Ten, který na projektech používám skoro vždycky, je JSON-LD: jeden JSON blok ve <script type="application/ld+json">, oddělený od HTML šablony. Dá se generovat z CMS, snadno se testuje a při redesignu vám nerozbije polovinu markupů.

Níže: proč to řešit, co ze slovníku schema.org v praxi použít, jak to kontrolovat v GSC a proč mám JSON-LD radši než microdata.

Proč se to vůbec dělá

Vyhledávač vidí HTML. Z něj si něco odvodí sám. Strukturovaná data mu ale dají explicitní model:

  • tohle je organizace s názvem, IČO a kontaktem,
  • tohle je článek s autorem a datem,
  • tohle je produkt s cenou a dostupností,
  • tohle je FAQ, které je opravdu na stránce,
  • tohle je cesta v drobečkové navigaci.

K čemu to je v praxi:

  • Lepší šance na rozšířené výsledky (FAQ, produkt, článek, drobečky) - když Google uzná, že to dává smysl.
  • Méně dohadů u entity firmy, produktu nebo autora. Hodí se i ve chvíli, kdy výsledky vypadají spíš jako shrnutí než jako deset modrých odkazů.
  • Kontrola kvality vlastního webu - když JSON-LD říká něco jiného než viditelný obsah, máte bug v datech, ne „SEO trik".

Co to není: záruka vyšších pozic, náhrada za dobrý obsah, ani důvod plnit fiktivní recenze a FAQ, které na stránce nejsou.

Schema.org: užitečný slovník, mizerný návod na život

Schema.org je společný slovník typů a vlastností (Organization, Product, Article, FAQPage…). Bez něj by každý vyráběl vlastní formát.

Problém je, že dokumentace je záměrně obecná. Popíše, že Product může mít offers, ale neřekne vám:

  • která pole Google v Česku reálně používá u vašeho typu výsledku,
  • co se stane, když cenu v JSON-LD máte jinou než u tlačítka Koupit,
  • že nacpat AggregateRating bez viditelných recenzí je rychlá cesta k problémům,
  • jak to skloubit s e-shopovou platformou, consent mode a cache.

V praxi proto nezačínám u celého stromu typů na schema.org. Začínám u otázky: jaký typ stránky to je a co z toho má smysl říct nahlas? Teprve pak hledám odpovídající typ a povinná / doporučená pole podle toho, co chce Google u rich results - ne podle toho, kolik vlastností se vejde do generátoru.

JSON-LD vs. microdata (a proč mám radši JSON-LD)

Historicky šly strukturovaná data do stránky několika způsoby. Dva, které potkáváte pořád:

  • Microdata - atributy přímo v HTML (itemscope, itemtype, itemprop). Markup a význam jsou propletené.
  • JSON-LD - jeden (nebo víc) JSON bloků v <script type="application/ld+json">, typicky v <head> nebo na konci stránky. HTML zůstává HTML, data jsou data.

Microdata dávají smysl teoreticky: význam je „u elementu". V reálném webu to ale bolí. Redesign přesune nadpis, někdo omylem smaže itemprop, šablona produktu se rozpadne na varianty a najednou máte poloviční Product bez ceny. Debugovat microdata v gigantické Vue/Twig šabloně je radost pro masochisty.

JSON-LD mám rád, protože:

  • Odděluje prezentaci od významu - designer sahá do komponent, data jdou z jedné vrstvy (CMS, feed, computed objekt).
  • Snáz se generuje a testuje - jeden JSON, jedna validace, jasný diff v gitu.
  • Míň rozbíjí responzivitu a refaktoring - nemusíte obalovat každý <span> sémantikou pro roboty.
  • Google JSON-LD doporučuje a v tooling (Rich Results Test) je s ním práce přímočará.

Microdata tím neprohlašuju za zakázaná. Když je zdědíte na starém e-shopu a fungují, nemusíte je hned pálit. U nového webu nebo větší úpravy ale defaultně stavím JSON-LD. Míň překvapení, míň nočních „proč zmizel rich snippet po výměně headeru".

Co smysl má vyplňovat (a co spíš ne)

Pravidlo číslo jedna: JSON-LD musí sedět s tím, co uživatel vidí. Když to na stránce není, nepatří to do dat.

Obvykle dává smysl:

  • Organization / LocalBusiness - název, URL, logo, kontakt, adresa (když je veřejná a pravdivá).
  • WebSite - často se SearchAction, pokud máte funkční vyhledávání na webu.
  • WebPage + BreadcrumbList - levná výhra pro orientaci ve výsledcích.
  • Article / BlogPosting - headline, datum, autor, image u editorial obsahu.
  • Product + Offer - u e-shopu: název, cena, měna, dostupnost, případně SKU. Cena musí sedět s tím, co je na detailu.
  • FAQPage - jen když otázky a odpovědi opravdu renderujete na stránce.

Obvykle smysl nemá (nebo je to rizikové):

  • vymýšlet hodnocení a recenze „pro snippet",
  • FAQ, které na URL neexistuje,
  • cpát desítky volitelných polí, protože generátor měl checkbox,
  • míchat konfliktní typy na jedné URL bez důvodu,
  • tvrdit v datech skladem, když e-shop ukazuje vyprodáno,
  • kopírovat cizí příklady i s americkým telephone formátem a fiktivním IČ.

Míň přesných polí > hromada nepřesných. Radši solidní Organization + BreadcrumbList + Article než „všechno ze schema.org, ale napůl špatně".

Jak se na to podívat v praxi (nástroje)

Bez tooling jste slepí. Tohle používám pravidelně:

  • Google Rich Results Test - první zastávka. Vložíte URL nebo HTML, uvidíte, jestli Google markup vůbec přečetl a jestli je kandidát na konkrétní rich result.
  • Schema Markup Validator - kontrola proti slovníku schema.org. Hodí se, když Rich Results Test mlčí a vy nevíte, jestli je JSON syntakticky / typově rozbitý.
  • Google Search Console - reporty u vylepšení / rich results (názvy sekcí se časem posouvají): platné položky, varování, chyby, neparsovatelná strukturovaná data. Koukejte na trendy po nasazení, ne jen na jednu zelenou URL v testu.
  • Zdrojový kód stránky - hledejte application/ld+json. Když blok v HTML není (nebo ho dokreslí až rozbitý JavaScript), robot z toho nic nemá.
  • Screaming Frog (nebo podobný crawler) - hromadný export strukturovaných dat napříč webem. Ideální po migraci nebo když máte podezření, že produktová šablona generuje bordel jen u variant.
  • Generátory markupů (Merkle a spol.) - dobré na první draft JSON-LD. Špatné jako jediný zdroj pravdy. Vždycky výstup upravte podle reálného obsahu stránky.

Doplňkově: v Chrome DevTools ověřte, že se skript opravdu dostane do HTML odpovědi ze serveru, ne až do DOMu po hydrataci v prohlížeči. U SPA/SSR je to častá past.

Co konkrétně sledovat v Google Search Console

GSC vám neřekne „máte dobré SEO". Řekne vám, jestli Google markup čte a jestli u konkrétních typů hlásí chyby.

  1. Po nasazení nechte pár dní na přeindexování. Jednorázový zelený Rich Results Test ≠ hotovo na celém webu.
  2. Otevřete reporty strukturovaných dat / rich results pro typy, které opravdu posíláte (Produkt, FAQ, Článek, Drobenky…).
  3. Chyby řešte první - chybějící povinné pole, špatný typ, neparsovatelný JSON.
  4. Varování berte jako dluh - často doporučená pole. Někdy je doplníte, někdy vědomě necháte být, pokud na stránce nemáte co doplnit pravdivě.
  5. Když po deployi vyskočí spike chyb, hledejte šablonu (PDP, blog detail, homepage), ne jednu URL. Typicky se rozbije generování pro celý content type.

A ještě jednou: GSC umí ukázat technický stav markupů. Nerozhodne za vás, jestli máte na blogu dávat FAQ, nebo jestli produktové rich results u vás vůbec dávají obchodní smysl.

Jak to skládám na projektech

Krátký postup, který se opakuje:

  1. Inventura typů stránek (homepage, kategorie, PDP, článek, kontakt).
  2. Pro každý typ: minimální sada JSON-LD, která je pravdivá.
  3. Napojení na zdroj pravdy (CMS pole, cena z e-shopu, autor z profilu) - ne hardcoded blábol v šabloně.
  4. Validace v Rich Results Testu na pár vzorcích.
  5. Po indexaci kontrola GSC a oprava šablon podle chyb.

Když ladíte i rychlost, měření a on-page SEO kolem toho, často to sedí dohromady s technickým auditem webu nebo s on-page auditem. Samotný JSON-LD je jedna vrstva. Bez srozumitelného obsahu a čistého HTML je to jen pěkně serializovaný vzduch.

Shrnutí

Schema.org je slovník. Google a GSC jsou rozhodčí, jestli váš markup dává smysl. JSON-LD je formát, se kterým se mi nejlíp pracuje, protože neplete význam do každého HTML atributu jako microdata.

Dělejte strukturovaná data kvůli srozumitelnosti pro stroje a kvůli šanci na relevantní rozšířené výsledky. Nedělejte je jako soutěž „kdo má delší JSON". A když si nejste jistí polem: radši ho vynechte, než abyste do něj napsali přání.

Medvěd lední

Jste připraveni prozkoumat možnosti digitálního světa?

Nechte nám kontakt přímo tady — ozveme se s konkrétním návrhem. Žádný nátlak.

Odesláním souhlasíte se zpracováním osobních údajů .