Marketer · FREE

Schema JSON-LD do strony

Z typu strony i faktów składa jeden blok JSON-LD: główny typ zgodny z intencją plus BreadcrumbList. Wypisuje pola do uzupełnienia i rzeczy, których nie znaczy. Nie obiecuje rich results wyłączonych przez Google (FAQ 2026-05-07, HowTo 2023-09) i nie zmyśla gwiazdek, NIP-u ani adresu.

reviewed:

Jak zainstalować

  1. Uzupełnij pola poniżej (albo zostaw nazwy zmiennych i dopisz w czacie). Wartości z Skill creatora na liście podstawiają się same.
  2. Kopiuj, potem wklej w Claude.ai (instrukcje projektu) albo ChatGPT (Custom Instructions).
  3. Albo pobierz SKILL.md i połóż w folderze skilli Claude Code.
SKILL
Typ strony (article | organization | service | product | local | faq | inne słowo z wejścia): [TYP]. Fakty (nazwa, URL, autor, data, cena, adres, sameAs, okruszki, widoczne Q&A, albo [BRAK] przy polu): [FAKTY].

Puste [TYP] albo puste [FAKTY] = 2 pytania i stop. Nie zgaduj branży, NIP-u, logotypu, daty publikacji, ceny.

To jest znacznik maszynowy, nie treść. FAQ widoczne na stronie pisze dual-write albo faq-pomocy. Ten skill nie wymyśla pytań, żeby było co opakować.

Google: FAQ rich results zniknęły z Search 2026-05-07 (schema.org/FAQPage nadal istnieje). HowTo rich results zniknęły 2023-09. Google nie wymaga specjalnego schema.org, żeby wejść do AI Overviews / AI Mode. JSON-LD nie jest dźwignią "cytowań LLM w procentach". Obietnica rich result tylko tam, gdzie typ nadal ma dokumentację Search Central jako wygląd w SERP (Article/News, Product, LocalBusiness, Breadcrumb, Organization w rozsądnym zakresie). Inne typy: "maszynowo, bez obietnicy wyglądu".

Zwracasz dokładnie trzy bloki.

## 1. Werdykt typu
Tabela: wybrany @type | czemu ten, nie inny | drugi węzeł (zawsze BreadcrumbList, jeśli w [FAKTY] są okruszki albo URL do złożenia 2-4 poziomów) | czy FAQPage / HowTo / AggregateRating wchodzą (domyślnie NIE).

Mapa [TYP] -> @type:
- article / blog -> `Article` (albo `BlogPosting` tylko gdy [FAKTY] mówią "wpis bloga")
- organization / firma -> `Organization` + `WebSite` w @graph
- service / usługa -> `Service` (provider = Organization z faktów)
- product / narzędzie / app -> `Product` albo `SoftwareApplication` gdy [FAKTY] mówią "aplikacja / SaaS"
- local / gabinet / warsztat -> `LocalBusiness` TYLKO gdy w [FAKTY] są nazwa + ulica + miasto. Telefon opcjonalny. Brak ulicy = nie emituj LocalBusiness, zejdź do Organization i napisz dlaczego
- faq -> `FAQPage` TYLKO gdy [FAKTY] zawierają widoczne pary pytanie-odpowiedź 1:1 z HTML. Nota obowiązkowa: zero rich result Google od 2026-05-07. Brak par = odmów FAQPage
- howto / tutorial -> NIE emituj HowTo pod Google. Jeśli człowiek i tak chce maszynowy HowTo: emituj wyłącznie gdy kroki są w [FAKTY], plus nota "brak karuzeli od 2023-09". Inaczej odmów
- qa / forum -> `QAPage` tylko dla JEDNEGO pytania z odpowiedziami użytkowników. FAQ redakcyjne to nie QAPage

Nieznany [TYP] = 3 kandydaty i stop, bez JSON-a.

## 2. Blok JSON-LD
Jeden obiekt `@context` + `@graph`. Węzeł 1 = główny typ. Węzeł 2 = `BreadcrumbList` gdy da się złożyć z [FAKTY] (Home > dział > strona). Pomiń breadcrumb, gdy nie ma URL ani nazw poziomów; wtedy w sekcji 3 pozycja `[DO UZUPEŁNIENIA] okruszki`.

Wymagania pól (brak w [FAKTY] = nie zmyślaj, pole wypadasz do sekcji 3):
- Article: headline, datePublished (ISO YYYY-MM-DD), author (Person name), publisher (Organization name + url jeśli jest), mainEntityOfPage (URL), description jeśli jest. image TYLKO gdy URL obrazu jest w [FAKTY]. dateModified tylko gdy data korekty jest w [FAKTY]
- Organization: name, url. logo, sameAs, address, telephone, taxID / vatID tylko z [FAKTY]
- Service: name, url, provider, areaServed / serviceType tylko z [FAKTY]. offers tylko przy cenie z [FAKTY]
- Product / SoftwareApplication: name, url, description. offers.price + priceCurrency tylko przy cenie z [FAKTY]. availability tylko gdy stan magazynu jest w [FAKTY]
- LocalBusiness: name, address (PostalAddress), url, telephone jeśli jest. geo tylko przy współrzędnych z [FAKTY]
- FAQPage: mainEntity[] Question.name + Answer.text dosłownie z [FAKTY], zero parafraz "dla zwięzłości"
- BreadcrumbList: ListItem.position od 1, name, item jako absolutny URL

Szablon ramowy TYLKO gdy [TYP] to article albo blog. Przy innym [TYP] podmień węzeł 1 na wybrany @type i jego pola; nie zostawiaj Article "bo szablon". Puste klucze usuń, nie zostawiaj `""`. Article bez URL obrazu w [FAKTY] = bez `image` i bez obietnicy rich result artykułu.

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "headline": "",
      "description": "",
      "datePublished": "",
      "author": { "@type": "Person", "name": "" },
      "publisher": { "@type": "Organization", "name": "", "url": "" },
      "mainEntityOfPage": ""
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "", "item": "" }
      ]
    }
  ]
}
```

JSON musi się dać wkleić w `<script type="application/ld+json">`. Zero komentarzy w JSON, zero przecinka na końcu, UTF-8. W stringach zamień `</` na `<\/` (pułapka `</script>`).

## 3. Pola [DO UZUPEŁNIENIA] i "czego nie znaczymy"
Dwie listy wypunktowane.

Nie znaczymy nigdy z tego skilla:
- AggregateRating / Review, gdy nie ma w [FAKTY] liczby recenzji, skali i tego, że recenzje są na tej stronie
- gwiazdek "żeby CTR"
- FAQPage "bo AEO" na artykule bez widocznego FAQ
- HowTo "bo tutorial z 2023"
- QAPage na FAQ redakcyjnym
- NIP, KRS, adresu, telefonu, ceny, daty, imienia autora spoza [FAKTY]
- speakable, chyba że [FAKTY] wskazują fragment CSS/id

Zasady:
- 1 główny typ + Breadcrumb, nie 7 typów "na wszelki wypadek"
- sameAs i nazwy bytów tylko z [FAKTY] (spójność z mapą bytów, nie z Wikidaty z pamięci)
- JSON-LD = to, co widać na stronie; sprzeczność z HTML = błąd, nie "uzupełnienie"
- nie waliduj w Rich Results Test FAQPage jako sukcesu wyglądu (wsparcie FAQ w teście Google zdjęte w 2026-06)
- dywiz "-"

Zanim wkleisz

Skill vs zły prompt

Zły prompt

Dorzuć FAQPage i AggregateRating 4.9 z 847 opiniami, HowTo i gwiazdki, nawet bez recenzji.

Skill

Typ strony (article | organization | service | product | local | faq | inne słowo z wejścia): [TYP]. Fakty (nazwa, URL, autor, data, cena, adres, sameAs, okruszki, widoczne Q&A, albo [BRAK] przy polu): [FAKTY].

Puste [TYP] albo puste [FAKTY] = 2 pytania i stop. Nie zgaduj branży, NIP-u, logotypu, daty publikacji, ceny.

To jest znacznik maszynowy, nie treść. FAQ widoczne na stronie pisze dual-write albo faq-pomocy. Ten skill nie wymyśla pytań, żeby było co opakować.

Google: FAQ rich results zniknęły z Search 2026-05-07 (schema.org/FAQPage nadal istnieje). HowTo rich results zniknęły 2023-09. Google nie wymaga specjalnego schema.org, żeby wejść do AI Overviews / AI Mode. JSON-LD nie jest dźwignią "cytowań LLM w procentach". Obietnica rich result tylko tam, gdzie typ nadal ma dokumentację Search Central jako wygląd w SERP (Article/News, Product, LocalBusiness, Breadcrumb, Organization w rozsądnym zakresie). Inne typy: "maszynowo, bez obietnicy wyglądu".

Użyj z tym narzędziem

Lekcja: claude-start-04-claude-dla-marketera

Pytania

Jak użyć skilla "Schema JSON-LD do strony" w Claude?

Uzupełnij pola w nawiasach (albo weź je z profilu Skill creator na /skille), kliknij Kopiuj i wklej treść do instrukcji projektu w Claude.ai. W Claude Code kliknij Pobierz SKILL.md i połóż plik w folderze skilli. Skill działa też w ChatGPT (Custom Instructions). Nie chowa się za paywallem: kopia jest darmowa.

Kiedy tego skilla NIE używać?

Nie FAQPage pod rich result Google (wyłączone 2026-05-07). Nie HowTo pod karuzelę (wyłączone 2023-09). Nie zmyślaj NIP, adresu, liczby opinii. Nie zamieniaj faq-pomocy w JSON.