JSON-LD — przewodnik po danych strukturalnych
JSON-LD to oparty na skrypcie format danych strukturalnych zalecany przez Google — łatwy do wdrożenia, niezależny od widocznego HTML i zwykle łączony ze słownikiem schema.org w SEO.
Języki
1 sygnał dowodowy na tej stronie
- Powiązane działające narzędzieSchema Markup Validator
JSON-LD (notacja obiektowa JavaScriptu dla danych połączonych) to format danych strukturalnych umieszczany w znaczniku <script type="application/ld+json">. W SEO zwykle korzysta ze słownika schema.org do opisywania treści strony, ale może stosować także inne słowniki. Jest standardem W3C od 2014 roku. Google zaleca go zamiast Microdata i RDFa ze względu na łatwiejsze wdrażanie i utrzymanie na dużą skalę, ponieważ osobny blok nie ingeruje w widoczny HTML; wszystkie trzy formaty działają równie dobrze, jeśli są poprawnie zaimplementowane. Podstawę składni tworzą @context (słownik), @type (typ encji) i opcjonalny @id (stabilny URI do łączenia encji, używany m.in. we wzorcu @graph). Googlebot renderuje JavaScript, lecz testy części robotów AI, w tym GPTBot i ClaudeBot, wykazywały brak wykonywania JS. To zachowanie zależy od dostawcy i czasu, dlatego należy je sprawdzać, a nie zakładać. Dane strukturalne nie są sygnałem rankingowym; wpływają na kwalifikację do wyników rozszerzonych i zrozumienie encji oraz muszą opisywać treść widoczną na stronie.
TL;DR — JSON-LD to niewielki blok kodu dodawany do strony, który wyjaśnia wyszukiwarkom i systemom AI, czego dotyczy treść — na przykład artykułu, produktu lub przepisu. Znajduje się w osobnym znaczniku
<script>i nie zmienia niczego, co widzą użytkownicy. Google zaleca go spośród trzech obsługiwanych formatów, ponieważ najłatwiej go wdrożyć i utrzymać. Nie poprawia pozycji bezpośrednio, ale może umożliwić wyniki rozszerzone, takie jak gwiazdki i ceny.
Czym jest JSON-LD
Człowiek potrafi przeczytać stronę i rozpoznać, że opisuje przepis na chleb bananowy. Wyszukiwarka musi wywnioskować to ze słów. Dane strukturalne ograniczają zgadywanie: etykietują stronę kodem czytelnym maszynowo, aby system wiedział, że chodzi o przepis, kto jest autorem i jaka jest ocena.
JSON-LD to najpopularniejszy sposób zapisu takich etykiet. Nazwa oznacza
notacja obiektowa JavaScriptu dla danych połączonych. Evidence for this claim JSON-LD is a structured-data format that can express Schema.org types and properties in a script block. Scope: Schema.org JSON-LD guidance; JSON-LD is a format, not the vocabulary itself. Confidence: high · Verified: Schema.org: JSON-LD Nie trzeba znać szczegółów
tej nazwy, aby korzystać z formatu. W praktyce jest to blok oznaczonych faktów
umieszczony w znaczniku <script>:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How to Bake Banana Bread",
"author": { "@type": "Person", "name": "Patrick Stox" },
"datePublished": "2026-06-26"
}
</script>Najważniejsze jest to, że blok pozostaje oddzielony od tekstu strony. Nie zmienia niczego, co widzi użytkownik; przekazuje jedynie instrukcje robotom.
Dlaczego Google go zaleca
Dane strukturalne można zapisać na trzy sposoby: jako JSON-LD, Microdata lub RDFa. Dwa ostatnie formaty wplatają dodatkowy kod w widoczny HTML, między nagłówki i akapity. JSON-LD przechowuje wszystko w jednym odrębnym bloku.
Dlatego Google zaleca JSON-LD: jest najłatwiejszy do dodania i utrzymania oraz zmniejsza ryzyko błędów. Google określa go jako “the easiest solution for website owners to implement and maintain at scale.” (tłumaczenie) „najłatwiejsze rozwiązanie, które właściciele witryn mogą wdrażać i utrzymywać na dużą skalę”. Wszystkie trzy formaty są poprawne — JSON-LD jest po prostu najmniej podatny na pomyłki.
Evidence for this claim Google Search supports JSON-LD, Microdata, and RDFa and recommends JSON-LD when practical. Scope: Google Search structured-data guidance; supported formats do not guarantee feature eligibility. Confidence: high · Verified: Google: Structured data introductionCo JSON-LD faktycznie daje
Dwie korzyści i jeden mit:
- Może wzbogacić wynik wyszukiwania. Oceny przepisów, ceny produktów, sekcje FAQ i daty wydarzeń mogą pojawić się dzięki danym strukturalnym.
- Pomaga wyszukiwarkom i AI zrozumieć treść. Łączy stronę ze znanymi encjami, takimi jak firma, autor lub produkt.
- Nie podnosi bezpośrednio pozycji. Dodanie JSON-LD nie jest premią rankingową; Google wielokrotnie mówiło o tym wprost.
Jedna najważniejsza zasada
Oznaczaj wyłącznie treść rzeczywiście widoczną na stronie. Nie deklaruj pięciu gwiazdek, jeśli użytkownicy nie widzą oceny, ani ceny, której nie ma w treści. Dane strukturalne muszą odpowiadać stronie. Opisywanie niewidocznych informacji narusza zasady i może spowodować utratę wyników rozszerzonych.
Dokładne omówienie składni @context, @type i @id, wzorca @graph, problemów
z wstrzykiwaniem JavaScript oraz walidacji znajdziesz na karcie Advanced.
TL;DR — JSON-LD (notacja obiektowa JavaScriptu dla danych połączonych) jest rekomendacją W3C z 2014 roku. Bazuje na JSON, lecz dopiero
@contextnadaje danym charakter połączony. Google zaleca ten format, ponieważ łatwo go wdrażać i utrzymywać bez ingerencji w widoczny HTML; poprawne Microdata i RDFa są równie ważne. Rdzeń składni tworzą@context(słownik),@type(typ encji) i opcjonalny@id(stabilny URI do odwołań, m.in. we wzorcu@graph). Kod może znajdować się w<head>albo<body>. Googlebot renderuje JS, więc widzi dynamiczny JSON-LD; testy części robotów AI, w tym GPTBot i ClaudeBot, wskazywały brak wykonywania JS, ale zależy to od dostawcy i czasu. Weryfikuj konkretnego robota i renderuj po stronie serwera wszystko, czego nie możesz potwierdzić. Dane strukturalne nie są sygnałem rankingowym — umożliwiają wyniki rozszerzone, wspierają rozumienie encji i muszą odpowiadać treści widocznej na stronie.
JSON-LD jest formatem, a nie słownikiem
Najpierw ważne rozróżnienie: JSON-LD to format, a
schema.org to słownik. JSON-LD określa, jak zapisać
znaczniki; typy Article, Product i Organization ze schema.org określają,
co opisujemy. Wyniki rozszerzone stanowią warstwę funkcji zbudowaną nad nimi.
Ten artykuł dotyczy formatu. Zastosowanie słownika w AI omawia tekst
Schema Markup for AI.
JSON-LD jest rekomendacją W3C opublikowaną
po raz pierwszy w 2014 roku. Powstał z myślą o interoperacyjności danych
połączonych w internecie, zanim przyjął się w SEO. To wyjaśnia istnienie takich
właściwości jak @id: JSON-LD nie jest zwykłym JSON-em. Korzysta ze składni
JSON, ale deklaracja @context sprawia, że dane można identyfikować i łączyć.
Bez niej parser nie wie, jak interpretować terminy.
JSON-LD nie jest też na stałe związany ze schema.org. Specyfikacja pozwala, aby
@context wskazywał dowolny opublikowany słownik. JSON-LD odpowiada więc na
pytanie „w jakim formacie?”, a schema.org — najczęstsza odpowiedź w wyszukiwaniu
i AI — na pytanie „z jakiego słownika?”. Strona może poprawnie korzystać z innego
słownika, ale nie będą to już znaczniki schema.org.
JSON-LD a Microdata i RDFa
Google obsługuje trzy sposoby zapisu danych strukturalnych:
| JSON-LD | Microdata | RDFa | |
|---|---|---|---|
| Gdzie się znajduje | Osobny blok <script> | Atrybuty itemprop w kodzie HTML | Atrybuty property w kodzie HTML |
| Czy ingeruje w widoczny HTML? | Nie | Tak | Tak |
| Czy można go wstrzyknąć przez JS lub menedżera tagów? | Tak, bez komplikacji | Niewygodnie | Niewygodnie |
| Stanowisko Google | Zalecany | Obsługiwany | Obsługiwany |
| Podatność na błędy | Najniższa | Wyższa, bo splata się z HTML | Wyższa, bo splata się z HTML |
Zalecenie Google jest wyraźne, ale ma wąski zakres: “In general, Google recommends using JSON-LD for structured data if your site’s setup allows it, as it’s the easiest solution for website owners to implement and maintain at scale (in other words, less prone to user errors).” (tłumaczenie) „Ogólnie Google zaleca stosowanie JSON-LD do danych strukturalnych, jeśli pozwala na to konfiguracja witryny, ponieważ jest to najłatwiejsze rozwiązanie do wdrażania i utrzymywania na dużą skalę (innymi słowy, mniej podatne na błędy użytkownika)”.
Na tej samej stronie Google dodaje ważne zastrzeżenie: “All 3 formats are equally fine for Google, as long as the markup is valid and properly implemented per the feature’s documentation.” (tłumaczenie) „Wszystkie trzy formaty są dla Google równie odpowiednie, o ile znaczniki są poprawne i wdrożone zgodnie z dokumentacją danej funkcji”. Zalecenie dotyczy więc łatwości wdrożenia i liczby błędów, a nie szybkości parsowania czy przewagi rankingowej. Microdata nie jest karane; JSON-LD po prostu nie splata danych strukturalnych z kodem, który projektant może jutro zmienić.
Składnia: @context, @type, @id, właściwości i zagnieżdżanie
Oto opisany blok Article:
<script type="application/ld+json">
{
"@context": "https://schema.org", // the vocabulary — the common value for SEO
"@type": "Article", // the entity type
"@id": "https://example.com/post#article", // a stable URI for this entity
"headline": "How JSON-LD Works", // a property (key/value)
"datePublished": "2026-06-26",
"author": { // a nested entity
"@type": "Person",
"name": "Patrick Stox",
"url": "https://patrickstox.com/"
}
}
</script>@context— ustanawia ramy semantyczne, czyli słownik. W znacznikach SEO opartych na schema.org zwykle przyjmuje wartość"https://schema.org", ale jest to konwencja, nie wymóg. Mapuje terminy na identyfikatory i mówi parserowi, jak interpretować kolejne nazwy właściwości. To dzięki niemu dane są połączone.@type— deklaruje encję, na przykładArticle,Product,OrganizationlubBreadcrumbList. Wybieraj najbardziej szczegółowy właściwy typ, np.NewsArticlezamiastArticle, gdy odpowiada treści.@id— unikalny URI identyfikujący zasób. Pozwala odwoływać się do encji z innych miejsc, ale nie jest wymagany zawsze. Specyfikacja dopuszcza anonimowe puste węzły, więc encje, do których nie trzeba się odwoływać, mogą nie mieć@id.- Właściwości — zwykłe pary klucz–wartość JSON korzystające z terminów słownika
określonego w
@context. - Zagnieżdżanie — encje podrzędne zapisuje się jako zagnieżdżone obiekty JSON,
takie jak
authorpowyżej, albo tablice obiektów.
Wzorzec @graph — rozwiązanie skalowalne
Większość stron opisuje więcej niż jedną encję: Organization, WebSite,
BreadcrumbList oraz sam Article lub WebPage. Naiwnym rozwiązaniem są cztery
osobne bloki <script> powtarzające dane. Alternatywą jest jeden blok z @graph:
tablicą encji powiązanych przez @id. Ani specyfikacja JSON-LD, ani Google nie
wymagają tego wzorca. Poprawne są też osobne bloki typowane, obiekty zagnieżdżone
bez nadrzędnego @graph i puste węzły bez @id. W witrynie z wieloma powiązanymi
encjami @graph ogranicza jednak powtarzanie danych Organization i WebSite:
One Organization is referenced as publisher by the WebSite and Article. The WebPage belongs to the WebSite and is connected to the Article. Each entity is declared once, and the same stable ID string is reused for every reference.
© Patrick Stox LLC · CC BY 4.0 ·
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://example.com/#org",
"name": "Example Co",
"url": "https://example.com/"
},
{
"@type": "WebSite",
"@id": "https://example.com/#website",
"url": "https://example.com/",
"publisher": { "@id": "https://example.com/#org" } // reference, not a copy
},
{
"@type": "WebPage",
"@id": "https://example.com/post#webpage",
"isPartOf": { "@id": "https://example.com/#website" },
"breadcrumb": { "@id": "https://example.com/post#breadcrumb" }
}
]
}
</script>Zdefiniuj Organization raz, a w innych miejscach wskazuj go przez
{ "@id": "...#org" }, zamiast powtarzać nazwę, logo i URL. Tak działają główne
wtyczki schema w systemach CMS. Bing opisuje tę zaletę następująco: JSON-LD
“makes defining links and relationships between data and entities… easy because
it supports nested data.” (tłumaczenie) „ułatwia definiowanie odsyłaczy i relacji
między danymi i encjami, ponieważ obsługuje dane zagnieżdżone”.
Gdzie umieścić kod: <head> czy <body>
Google potwierdza, że oba miejsca działają: “You can put the JSON-LD data in
the <head> or the <body> of the page.” (tłumaczenie) „Dane JSON-LD można
umieścić w sekcji <head> lub <body> strony”. <head> jest konwencją, lecz
wiele wtyczek CMS wstrzykuje kod pod koniec <body> i jest to poprawne. Bing
dodaje, że kod może znaleźć się “in the header, body or foot of the page.”
(tłumaczenie) „w nagłówku, treści lub stopce strony”. Przenoszenie poprawnego
bloku z body do head niczego nie zmienia. Evidence for this claim Google permits JSON-LD in either the head or body of an HTML document for supported structured-data features. Scope: Google Search JSON-LD guidance; markup must still match visible page content. Confidence: high · Verified: Google: Structured data introduction
Dynamiczne generowanie JSON-LD i pułapka dotycząca robotów AI
JSON-LD można tworzyć dynamicznie za pomocą JavaScript. Google dokumentuje dwa sposoby:
Evidence for this claim Dynamically generated structured data is acceptable to Google when it is rendered and complies with content and quality guidelines. Scope: Google Search JavaScript and structured-data guidance; crawlability and rendering remain prerequisites. Confidence: high · Verified: Google: Generate structured data with JavaScript- Google Tag Manager — tag Custom HTML zawierający JSON-LD i pobierający wartości ze zmiennych GTM. Unikaj dublowania danych strony i tagu.
- Własny JavaScript — programowe utworzenie elementu skryptu:
const script = document.createElement('script'); script.setAttribute('type', 'application/ld+json'); script.textContent = structuredDataText; document.head.appendChild(script);
To działa w przypadku Googlebota, ponieważ Google renderuje stronę: “Google Search can understand and process structured data that’s available in the DOM when it renders the page.” (tłumaczenie) „Wyszukiwarka Google potrafi zrozumieć i przetworzyć dane strukturalne dostępne w DOM podczas renderowania strony”.
Istnieje jednak ważne zastrzeżenie. W testach kilka robotów AI, w tym GPTBot i ClaudeBot, nie wykonywało JavaScriptu. Jeśli JSON-LD powstaje dopiero po uruchomieniu skryptu po stronie klienta, taki robot go nie zobaczy, mimo że Googlebot odczyta kod po renderowaniu DOM.
Trzeba zachować precyzję: zachowanie Googlebota wynika z dokumentacji Google, natomiast informacje o robotach AI pochodzą z testów poszczególnych dostawców, nie z ich specyfikacji. Obsługa JavaScript może się zmienić i nie została tu sprawdzona dla każdego robota. Nie traktuj zdania „roboty AI pomijają JS” jako uniwersalnej reguły. Sprawdź robota, na którym Ci zależy, albo domyślnie renderuj kod po stronie serwera. Jeśli JSON-LD nie ma w HTML serwera i nie potwierdzono wykonywania JS przez robota, przyjmij, że kod jest niewidoczny. Dla widoczności w wyszukiwaniu AI umieszczaj JSON-LD w statycznym HTML po stronie serwera, chyba że zweryfikujesz inne zachowanie. Mechanikę renderowania omawia SEO JavaScript.
Jest też drugie zastrzeżenie dotyczące e-commerce. Google ostrzega, że dynamicznie generowane znaczniki Product “can make Shopping crawls less frequent and less reliable,” (tłumaczenie) „mogą sprawić, że indeksowanie na potrzeby Zakupów będzie rzadsze i mniej niezawodne”. To problem przy szybko zmieniających się cenach i dostępności, dlatego dane produktów warto renderować po stronie serwera.
Zasady, które mają realne konsekwencje
Najważniejsze wytyczne Google dotyczące danych strukturalnych są krótkie:
- “Don’t mark up content that is not visible to readers of the page.” (tłumaczenie) „Nie oznaczaj treści, której czytelnicy nie widzą na stronie”.
- “Don’t mark up irrelevant or misleading content, such as fake reviews.” (tłumaczenie) „Nie oznaczaj treści nieistotnych ani wprowadzających w błąd, takich jak fałszywe recenzje”.
- “Put the structured data on the page that it describes.” (tłumaczenie) „Umieść dane strukturalne na stronie, którą opisują”.
- “Use the most specific applicable type and property names defined by schema.org.” (tłumaczenie) „Używaj najbardziej szczegółowych właściwych typów i nazw właściwości zdefiniowanych w schema.org”.
- Nie blokuj stron z danymi strukturalnymi przed Googlebotem przez robots.txt ani noindex.
Najważniejsza jest zasada widocznej treści. Opisywanie informacji, których nie ma na stronie, zawsze naruszało wytyczne, a egzekwowanie tej zasady zostało zaostrzone. Bing ostrzega: “even though the markup is not visible on your page, it is still read by the search engines, and putting spam data in the markup can hamper your presence.” (tłumaczenie) „choć znaczniki nie są widoczne na stronie, wyszukiwarki nadal je odczytują, a umieszczanie w nich spamu może zaszkodzić widoczności”.
Częste błędy w JSON-LD
- Znaczniki nie odpowiadają widocznej stronie — najpoważniejszy problem z zasadami, np. ocena w JSON-LD, której nie widzi użytkownik.
- Niepoprawny JSON — końcowy przecinek, nieucieczony cudzysłów lub typograficzne
cudzysłowy z edytora tekstu (
"zamiast prostego cudzysłowu) mogą unieważnić cały blok. - Błędne nazwy właściwości — wymyślone lub literówkowe właściwości nieistniejące w schema.org są ignorowane przez parser.
- Zbyt ogólny typ —
ThinglubArticlezamiast właściwegoRecipealboNewsArticleogranicza znaczenie danych. - Powielone, niespójne bloki
Organization— różne nazwy, logo lub adresy URL powodują niejednoznaczność grafu. - Brak wymaganych właściwości dla docelowego wyniku rozszerzonego — każda funkcja ma własną listę pól.
- Założenie, że każdy robot widzi kod wstrzyknięty przez JS — Google renderuje taki kod, ale niektóre roboty AI mogą go nie odbierać; sprawdzaj je osobno.
Walidacja JSON-LD
Pytanie „czy mój JSON-LD jest poprawny?” obejmuje cztery różne kwestie. Zaliczenie jednego testu nie oznacza zaliczenia pozostałych:
| Test | Co potwierdza | Czego nie potwierdza |
|---|---|---|
| Parsowanie JSON (dowolny linter lub etap parsowania w Rich Results Test) | Składnia jest legalnym JSON-em: bez końcowych przecinków, nieucieczonych lub typograficznych cudzysłowów | Czy właściwości należą do schema.org i czy Google coś wyświetli |
| Schema.org Validator | Właściwości i typy istnieją w słowniku schema.org | Czy Google obsługuje typ jako wynik rozszerzony i czy ma on wymagane pola |
| Rich Results Test | Znaczniki na wyrenderowanej stronie spełniają wymagania konkretnego obsługiwanego typu Google | Czy Google faktycznie wyświetli wynik oraz czy inne systemy wyszukiwania lub AI zinterpretują dane tak samo |
| Google Search Console — raporty rozszerzeń i wyników rozszerzonych | Co Google rzeczywiście odczytało na aktywnych, zindeksowanych stronach w większej skali | Stanu w czasie rzeczywistym, ponieważ raporty czekają na ponowne indeksowanie |
- Testuj adres URL, a nie tylko wklejony kod, jeśli strona korzysta z JS. Tryb kodu nie uruchamia skryptów ani nie rozwiązuje odwołań względnych jak test aktywnego URL-a, więc nie pokazuje końcowego bloku po renderowaniu.
- Bing Webmaster Tools — Markup Validator — Bing waliduje JSON-LD od sierpnia 2018 roku.
- Testy te nie mówią nic o robotach, które nie renderują JavaScript. Test URL-a potwierdza to, co widzi Google, a nie to, co otrzymuje robot pomijający JS.
Czy JSON-LD pomaga w SEO?
Realistyczne oczekiwania są następujące:
- To nie jest sygnał rankingowy. John Mueller powiedział wprost, że dane strukturalne nie poprawiają pozycji witryny.
- Kwalifikacja do wyników rozszerzonych. JSON-LD umożliwia gwiazdki, ceny, FAQ i breadcrumbs, ale nie gwarantuje ich wyświetlenia.
- Pośredni wpływ na CTR. Bardziej atrakcyjny wynik może zdobyć więcej kliknięć.
- Rozumienie encji. Dane pomagają systemom połączyć stronę ze znanymi encjami i Grafem wiedzy.
- Wyszukiwanie AI. Fabrice Canel z Bing potwierdził w 2025 roku, że znaczniki schema pomagają modelom Microsoftu rozumieć treść. Zastrzeżenie opisane w Schema Markup for AI pozostaje ważne: to infrastruktura ujednoznaczniania, a nie bezpośrednia dźwignia cytowań.
Wdrażaj więc JSON-LD dla kwalifikacji do wyników rozszerzonych, jasności encji i rozumienia przez systemy AI — nie jako sztuczkę rankingową.
Ten artykuł należy do centrum danych strukturalnych. Zastosowanie słownika schema.org w AI omawia Schema Markup for AI, a mechanikę dynamicznego wstrzykiwania — SEO JavaScript.
Podsumowanie AI
Skrócona wersja karty Advanced:
- Czym jest: JSON-LD (notacja obiektowa JavaScriptu dla danych połączonych) to format
danych strukturalnych, a nie słownik — blok
<script type="application/ld+json">. W SEO zwykle korzysta ze słownika schema.org, ale@contextmoże wskazywać inne źródło. Jest rekomendacją W3C od 2014 roku;@contextzmienia zwykły JSON w dane połączone. - Dlaczego Google go zaleca: to “the easiest solution… to implement and maintain at scale” (tłumaczenie) „najłatwiejsze rozwiązanie do wdrażania i utrzymywania na dużą skalę”, które nie ingeruje w widoczny HTML. Wszystkie trzy poprawne formaty są równoważne; przewagą jest mniejsza podatność na błędy.
- Rdzeń składni:
@context(słownik) ·@type(najbardziej szczegółowy typ encji) · opcjonalny@id(stabilny URI do odwołań; puste węzły też są poprawne) · właściwości (klucz–wartość) · zagnieżdżanie (obiekty i tablice). - Wzorzec
@graph: jeden blok z tablicą encji powiązanych przez@id. Pozwala zdefiniowaćOrganizationraz i odwoływać się do niego w wielu miejscach. To skalowalne rozwiązanie, ale nie wymóg specyfikacji ani Google. - Umieszczenie:
<head>lub<body>— Google akceptuje oba miejsca. - Dynamiczne wstrzykiwanie i AI: Googlebot renderuje JS. Testy części robotów AI, w tym GPTBot i ClaudeBot, wskazywały brak wykonywania JS, lecz zachowanie zależy od dostawcy i czasu. Weryfikuj robota i renderuj po stronie serwera kod, którego widoczności nie potrafisz potwierdzić. Dynamiczne znaczniki Product mogą też zmniejszyć częstotliwość indeksowania w Zakupach.
- Zasady: oznaczaj tylko widoczną treść, dopasuj dane do strony, wybierz najbardziej szczegółowy typ i nie blokuj strony przed robotami.
- Częste błędy: rozbieżność z treścią, niepoprawny JSON, błędne właściwości, zbyt ogólne typy oraz brak pól wymaganych przez konkretną funkcję.
- Walidacja: osobno sprawdzaj składnię JSON, słownik schema.org, kwalifikację do funkcji Google i dane z aktywnych stron w Search Console. Żaden z tych testów nie zastępuje pozostałych.
- Wpływ na SEO: to nie jest sygnał rankingowy. JSON-LD wspiera wyniki rozszerzone, CTR, rozumienie encji i interpretację przez modele językowe.
Oficjalna dokumentacja
Materiały źródłowe wyszukiwarek oraz specyfikacja.
- Wprowadzenie do działania znaczników danych strukturalnych — zalecenie JSON-LD, równoważność trzech formatów i umieszczenie w
<head>lub<body>. - Ogólne wytyczne dotyczące danych strukturalnych — zgodność z widoczną treścią, szczegółowe typy i dostęp dla robotów.
- Generowanie danych strukturalnych za pomocą JavaScript — GTM, własny JS i zastrzeżenie dotyczące dynamicznych danych produktów.
- Rich Results Test — sprawdzanie kwalifikacji; dla stron renderowanych przez JS testuj URL.
Bing / Microsoft
- Oznaczanie witryny danymi strukturalnymi — zalecenie Bing, dozwolone miejsca kodu i ostrzeżenia przed błędnymi danymi.
- Wprowadzenie obsługi JSON-LD w Bing Webmaster Tools (sierpień 2018) — uruchomienie walidacji JSON-LD w Bing.
Standardy i słownik
- JSON-LD 1.1 — rekomendacja W3C — pełna specyfikacja.
- json-ld.org — witryna formatu z prostą definicją.
- Pierwsze kroki ze schema.org — słownik wyrażany przez JSON-LD i zasada widocznej treści.
- Schema.org Validator — walidacja względem słownika.
Cytaty ze źródeł
Dokładne wypowiedzi Google, Bing i autorów specyfikacji. Odsyłacze prowadzą do cytowanego fragmentu, jeśli strona źródłowa go udostępnia.
Dokumentacja Google — zalecenie i zastrzeżenie
- “In general, Google recommends using JSON-LD for structured data if your site’s setup allows it, as it’s the easiest solution for website owners to implement and maintain at scale (in other words, less prone to user errors).” (tłumaczenie) „Ogólnie Google zaleca używanie JSON-LD do danych strukturalnych, jeśli pozwala na to konfiguracja witryny, ponieważ jest to najłatwiejsze rozwiązanie do wdrażania i utrzymywania na dużą skalę, czyli mniej podatne na błędy użytkownika”. Przejdź do cytatu
- “All 3 formats are equally fine for Google, as long as the markup is valid and properly implemented per the feature’s documentation.” (tłumaczenie) „Wszystkie trzy formaty są dla Google równie odpowiednie, o ile znaczniki są poprawne i wdrożone zgodnie z dokumentacją danej funkcji”. Przejdź do cytatu
- “Google Search can understand and process structured data that’s available in the DOM when it renders the page.” (tłumaczenie) „Wyszukiwarka Google potrafi zrozumieć i przetworzyć dane strukturalne dostępne w DOM podczas renderowania strony”. Przejdź do cytatu
Dokumentacja Google — zasady
- “Don’t mark up content that is not visible to readers of the page.” (tłumaczenie) „Nie dodawaj znaczników do treści niewidocznej dla czytelników strony”. Przejdź do cytatu
- “Use the most specific applicable type and property names defined by schema.org.” (tłumaczenie) „Używaj najbardziej szczegółowego właściwego typu i nazw właściwości zdefiniowanych przez schema.org”. Przejdź do cytatu
John Mueller, Google — preferowany format i ranking
- “We currently prefer JSON-LD markup. I think most of the new structured data that kind of come out are for JSON-LD first. So that is what we prefer.” (tłumaczenie) „Obecnie preferujemy znaczniki JSON-LD. Sądzę, że większość nowych rodzajów danych strukturalnych pojawia się najpierw dla JSON-LD. To właśnie preferujemy”. — Google Webmaster Hangout, March 2019. Coverage
- O pozycjach: “Structured data won’t make your site rank better.” (tłumaczenie) „Dane strukturalne nie poprawią pozycji Twojej witryny”. — 2025. (Cytat podany za Search Engine Roundtable; przed uznaniem go za ostateczny należy potwierdzić dokładne brzmienie w pierwotnym wpisie). Coverage
Bing / Microsoft
- JSON-LD “makes defining links and relationships between data and entities between the data present on your pages easy because it supports nested data.” (tłumaczenie) „ułatwia definiowanie odsyłaczy i relacji między danymi i encjami obecnymi na stronach, ponieważ obsługuje dane zagnieżdżone”. — dokumentacja Bing Webmaster Tools. Przejdź do cytatu
- “Webmasters should be very alert as to not put invalid and incorrect information in the markup, as even though the markup is not visible on your page, it is still read by the search engines.” (tłumaczenie) „Webmasterzy powinni szczególnie uważać, aby nie umieszczać w znacznikach nieprawidłowych i błędnych informacji, ponieważ mimo że znaczniki nie są widoczne na stronie, wyszukiwarki nadal je odczytują”. — dokumentacja Bing Webmaster Tools. Przejdź do cytatu
Fabrice Canel, Microsoft Bing — schema i modele językowe
- Podczas SMX Munich w marcu 2025 roku Canel potwierdził, że znaczniki schema pomagają dużym modelom językowym Microsoftu rozumieć treść stron. (To parafraza kilku relacji; przed uznaniem konkretnego brzmienia za cytat należy sprawdzić nagranie konferencji lub wpis na LinkedIn). Coverage
Specyfikacja — json-ld.org
- “JSON-LD is a lightweight Linked Data format. It is easy for humans to read and write. It is based on the already successful JSON format and provides a way to help JSON data interoperate at Web-scale.” (tłumaczenie) „JSON-LD to lekki format danych połączonych. Jest łatwy do czytania i zapisywania przez ludzi. Opiera się na sprawdzonym formacie JSON i umożliwia współdziałanie danych JSON w skali internetu”. Przejdź do cytatu
Składnia JSON-LD — szybka ściąga
Znacznik otaczający
<script type="application/ld+json">
{ ...your markup... }
</script>Zastrzeżone słowa kluczowe
| Słowo kluczowe | Działanie | Typowa wartość |
|---|---|---|
@context | Deklaruje słownik (wymagane) | "https://schema.org" |
@type | Deklaruje typ encji | "Article", "Product", "Organization" |
@id | Stabilny URI identyfikujący encję lub służący do odwołań | "https://example.com/#org" |
@graph | Tablica wielu encji w jednym bloku | [ {…}, {…} ] |
Jedna encja
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Widget",
"offers": { "@type": "Offer", "price": "19.99", "priceCurrency": "USD" }
}Zagnieżdżanie — encja podrzędna jest obiektem zagnieżdżonym lub tablicą obiektów:
"author": { "@type": "Person", "name": "Patrick Stox" }Wzorzec @graph — zdefiniuj raz i odwołuj się przez @id:
{
"@context": "https://schema.org",
"@graph": [
{ "@type": "Organization", "@id": "https://ex.com/#org", "name": "Ex Co" },
{ "@type": "WebSite", "publisher": { "@id": "https://ex.com/#org" } }
]
}Częste właściwości według typu
Article/BlogPosting:headline,author,datePublished,image,publisherProduct:name,image,brand,offers(→price,priceCurrency,availability)Organization:name,url,logo,sameAs(social/Wikidata URIs)BreadcrumbList:itemListElement→ListItem(position,name,item)FAQPage:mainEntity→Question→acceptedAnswer→Answer
Reguły praktyczne
- W większości znaczników SEO
@contextma wartość"https://schema.org", lecz jest to konwencja, a nie wymóg specyfikacji. Używaj prostych cudzysłowów kodowych. - Bez końcowych przecinków — JSON ma rygorystyczną składnię.
- Wybieraj najbardziej szczegółowy dostępny
@type. - Oznaczaj wyłącznie treść widoczną na stronie.
- Kod może znajdować się w
<head>lub<body>. @idi@graphpomagają łączyć i porządkować encje, ale nie są wymagane; poprawne są również puste węzły i inne układy.- Dla robotów, których obsługi JavaScript nie potwierdzono, renderuj kod po stronie serwera. W testach dotyczyło to m.in. GPTBot i ClaudeBot.
- Waliduj osobne warstwy: Rich Results Test na podstawie URL-a sprawdza kwalifikację Google, a Schema.org Validator — słownik. Zaliczenie jednego testu nie oznacza zaliczenia drugiego.
Narzędzia do walidacji JSON-LD
- Schema.org Validator — sprawdza szeroki słownik. Blok może przejść ten test, a nadal nie spełniać wymagań konkretnej funkcji Google.
- Google Rich Results Test — testuj wdrożony URL, gdy znaczenie ma renderowanie, zwłaszcza przy kodzie wstrzykiwanym po stronie klienta. Narzędzie obejmuje wyniki rozszerzone obsługiwane przez Google, a nie każdy typ schema.org.
Błędy JSON-LD, których należy unikać
Oznaczanie faktów niewidocznych dla użytkownika. Ocena, cena, autor lub inna informacja w JSON-LD musi odpowiadać widocznej stronie. Ukryte albo mylące dane mogą pozbawić stronę wyników rozszerzonych. Zamiast tego: generuj znaczniki z tego samego źródła prawdy co widoczną treść.
Uznawanie poprawnego JSON-u za poprawny schemat. Parser może przyjąć idealnie zapisany JSON z właściwościami, których nie ma w schema.org. Zamiast tego: sprawdź zarówno słownik JSON-LD, jak i wymagania docelowej funkcji Google.
Typograficzne cudzysłowy lub końcowe przecinki. JSON jest rygorystyczny; takie znaki mogą unieważnić cały blok. Zamiast tego: serializuj dane, zamiast ręcznie składać ciągi JSON.
Zbyt ogólny typ mimo istnienia szczegółowego. Thing lub szeroki Article
traci użyteczne znaczenie, gdy strona opisuje Recipe, Product lub NewsArticle.
Zamiast tego: wybierz najbardziej szczegółowy właściwy typ schema.org.
Powielanie encji ze sprzecznymi danymi. Różne bloki Organization z innymi
nazwami, logo lub adresami URL czynią graf niejednoznacznym. Zamiast tego: nadaj
encji stabilny @id, zdefiniuj ją raz i odwołuj się do tego identyfikatora.
Założenie, że poprawność schema.org gwarantuje wynik rozszerzony Google. Google obsługuje tylko część typów i dodaje własne wymagane właściwości oraz zasady treści. Zamiast tego: najpierw sprawdź słownik, a następnie kwalifikację do konkretnej funkcji.
Wstrzykiwanie JSON-LD przez JavaScript z założeniem, że każdy robot go widzi. Google renderuje kod klienta, ale roboty AI pomijające JS mogą go nie otrzymać. Zamiast tego: renderuj JSON-LD po stronie serwera, gdy ma to znaczenie, i testuj aktywny URL, a nie wyłącznie wklejony kod.
Jak potwierdzić skuteczne wdrożenie JSON-LD
Test 1 — Aktywna strona zawiera poprawny JSON-LD zgodny z treścią
- Test — Pobierz wdrożony URL przez walidator znaczników Schema i porównaj wykryte encje oraz wartości z widoczną stroną.
- Oczekiwany wynik — JSON jest parsowany, właściwości należą do schema.org,
odwołania
@idrozwiązują się we właściwych miejscach, a nazwy, ceny, oceny i daty odpowiadają temu, co widzą użytkownicy. - Interpretacja awarii — Błędy parsera oznaczają złą składnię; ostrzeżenia słownika wskazują literówki lub nieobsługiwane właściwości; rozbieżne wartości sugerują, że treść i schema korzystają z różnych źródeł danych.
- Okno monitorowania — Natychmiast po wdrożeniu i wyczyszczeniu pamięci podręcznej.
- Przesłanka wycofania — Usuń lub przywróć blok, jeśli publikuje nieprawdziwe informacje, psuje wcześniej poprawny graf albo nie daje się sparsować.
Test 2 — Docelowa funkcja wyszukiwania rozpoznaje wyrenderowane znaczniki
- Test — Uruchom wdrożony URL w teście wyników rozszerzonych, a następnie użyj narzędzia do sprawdzania kwalifikacji do wyników rozszerzonych, aby znaleźć brakujące pola wymagane i zalecane dla danego typu.
- Oczekiwany wynik — Google wykrywa obsługiwany typ bez błędów krytycznych, a blok generowany po stronie klienta pojawia się w wyrenderowanym HTML.
- Interpretacja awarii — Zaliczenie Schema.org Validator przy błędzie Google zwykle oznacza nieobsługiwany typ, brak pola wymaganego przez Google, naruszenie zasad treści albo brak bloku w wyniku renderowania.
- Okno monitorowania — Natychmiast w obu testach; Search Console zaktualizuje dane dopiero po ponownym indeksowaniu.
- Przesłanka wycofania — Wycofaj wstrzykiwanie po stronie klienta, jeśli usuwa wcześniej widoczne dane z renderowanego wyniku, lub wstrzymaj deklarację wsparcia funkcji do czasu uzupełnienia wymaganej treści.
Sprawdź swoją wiedzę o JSON-LD
Pięć krótkich pytań o format JSON-LD. Wybierz odpowiedź przy każdym pytaniu, a następnie sprawdź wynik.
Przydatne zasoby
Moje powiązane materiały
- Schema Markup: prosty sposób na wyniki rozszerzone — poradnik Ahrefs o danych strukturalnych, typach schema i wynikach rozszerzonych, czyli warstwie funkcji opartej na JSON-LD.
- Przewodnik dla początkujących po technicznym SEO — miejsce danych strukturalnych w szerszym obrazie technicznego SEO.
- Problemy i dobre praktyki JavaScript SEO — o renderowaniu i powodach, dla których znaczniki wstrzykiwane przez JavaScript mogą być inaczej widoczne dla robotów, które go nie wykonują.
- Poznaj nowe roboty internetowe — moja analiza danych Cloudflare Radar o robotach AI, takich jak GPTBot i ClaudeBot, które mogą pomijać schemat wstrzykiwany przez JavaScript.
Materiały oficjalne
- Google: Wprowadzenie do działania znaczników danych strukturalnych — źródło rekomendacji JSON-LD oraz wyjaśnienia, że obsługiwane są wszystkie trzy formaty.
- Google: Generowanie danych strukturalnych za pomocą JavaScriptu — metody dynamicznego wstrzykiwania i zastrzeżenie dotyczące danych produktowych.
- JSON-LD 1.1 — rekomendacja W3C i json-ld.org — specyfikacja samego formatu.
Materiały branżowe
- Google o preferowanym formacie danych strukturalnych — Search Engine Journal — omówienie wypowiedzi Muellera „we currently prefer JSON-LD” z zachowaniem jej oryginalnego brzmienia.
- Microsoft: Bing Copilot wykorzystuje schema w swoich modelach LLM — Search Engine Land — relacja z potwierdzenia Fabrice’a Canela podczas SMX Munich 2025, że schema pomaga modelom LLM Bing.
- Czym są dane strukturalne JSON-LD i dlaczego ich potrzebujesz? — Ignite Visibility — przystępne omówienie dla początkujących.
- Przewodnik dla początkujących SEO po schema JSON-LD — SALT.agency — praktyczny poradnik o składni i wdrożeniu skierowany do specjalistów SEO.
Dziennik zmian
Zaktualizowano 11 sie 2026.
Podsumowanie redakcyjne i zapisane szczegóły zmian.Szczegóły zmian
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
Pełne porównanie jest niedostępne — dla tej wersji nie zarchiwizowano wcześniejszej migawki.
Zaktualizowano 11 sie 2026.
Podsumowanie redakcyjne i zapisane szczegóły zmian.Szczegóły zmian
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
Pełne porównanie jest niedostępne — dla tej wersji nie zarchiwizowano wcześniejszej migawki.
Zaktualizowano 11 sie 2026.
Podsumowanie redakcyjne i zapisane szczegóły zmian.Szczegóły zmian
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
Pełne porównanie jest niedostępne — dla tej wersji nie zarchiwizowano wcześniejszej migawki.
Zaktualizowano 11 sie 2026.
Podsumowanie redakcyjne i zapisane szczegóły zmian.Szczegóły zmian
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
Pełne porównanie jest niedostępne — dla tej wersji nie zarchiwizowano wcześniejszej migawki.
Zaktualizowano 18 lip 2026.
Podsumowanie redakcyjne i zapisane szczegóły zmian.Szczegóły zmian
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
Pełne porównanie jest niedostępne — dla tej wersji nie zarchiwizowano wcześniejszej migawki.
Zaktualizowano 17 lip 2026.
Podsumowanie redakcyjne i zapisane szczegóły zmian.Szczegóły zmian
-
Szczegółowe uwagi dotyczące zmian są obecnie dostępne po angielsku.
Pełne porównanie jest niedostępne — dla tej wersji nie zarchiwizowano wcześniejszej migawki.