E-commerce: Promocja i uruchomienie sklepu internetowego
Przydatne artykuły i instrukcje dotyczące promocji, uruchomienia i rozwoju sklepów internetowych w branży E-commerce

Dane strukturalne Schema.org dla produktów — pełny poradnik z przykładami



Dane strukturalne Schema.org dla produktów: pełny przewodnik


O czym jest ten przewodnik

  • Czym jest Schema.org i po co jest mikroznaczenie
  • Jaki format używać (JSON-LD)
  • Pola obowiązkowe i zalecane dla karty produktu
  • Krok po kroku: od prostego do zaawansowanego przykładu
  • Weryfikacja, narzędzia i rekomendacje
  • Specyfika dla platform e-commerce

1. Czym jest Schema.org i dlaczego jest ważne

Schema.org to słownik (schemat neutralny wobec dostawców) dla danych strukturalnych, wspierany przez główne wyszukiwarki. Oznaczenia pomagają wyszukiwarkom poprawnie zrozumieć zawartość karty produktu i mogą prowadzić do rozszerzonych fragmentów (cena, dostępność, oceny, recenzje, zdjęcia oraz poprawne wyświetlanie w mediach społecznościowych poprzez Open Graph i Twitter Cards).

Oficjalne linki (zalecane):

2. Jaki format oznaczeń używać

Google zaleca JSON-LD. Nie ingeruje w DOM, łatwo wstawiać go po stronie serwera i dynamicznie generować z danych z bazy.

3. Pola obowiązkowe dla poprawnej karty produktu

Minimalne wymagania dla prawidłowej obsługi przez Google:

  • name — nazwa produktu
  • image — przynajmniej jedno zdjęcie (URL)
  • description — krótki opis
  • offers.price — cena
  • offers.priceCurrency — waluta (kod ISO, np. PLN, USD)
  • offers.availability — dostępność (https://schema.org/InStock itp.)
  • offers.url — URL strony produktu

4. Zalecane dodatkowe pola (pełna lista przydatnych atrybutów)

  • sku — numer katalogowy
  • mpn — numer części producenta
  • gtin8 / gtin12 / gtin13 / gtin14 — kod kreskowy
  • brand — marka
  • category — kategoria
  • color, material, size, weight — cechy produktu
  • aggregateRating — ocena zbiorcza
  • review — recenzje
  • itemCondition — stan produktu
  • additionalProperty — dowolne właściwości (PropertyValue)
  • shippingDetails / OfferShippingDetails — warunki wysyłki
  • seller — sprzedawca

5. Prosty działający przykład JSON-LD (minimum)

Kod: JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Słuchawki bezprzewodowe X100",
  "image": "https://site.com/images/headphones-x100.jpg",
  "description": "Bezprzewodowe słuchawki z redukcją szumów.",
  "offers": {
    "@type": "Offer",
    "url": "https://site.com/product/headphones-x100",
    "priceCurrency": "PLN",
    "price": "2499",
    "availability": "https://schema.org/InStock"
  }
}
</script>

Uwaga: price — podawaj jako liczbę lub string cyfr (bez symbolu waluty). availability używaj pełnego URL Schema.org (np. https://schema.org/InStock).

6. Szczegółowe oznaczenie produktu (pełny przykład)

Poniżej przykład z wieloma polami: GTIN, marka, SKU, wiele obrazów, aggregateRating, review, additionalProperty, shippingDetails.

Kod: JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Xiaomi Mi Band 7",
  "image": [
    "https://site.com/upload/mi-band-7-1.webp",
    "https://site.com/upload/mi-band-7-2.webp"
  ],
  "description": "Opaska fitness z ekranem AMOLED i pulsometrem.",
  "sku": "MI-BAND-7-BLACK",
  "mpn": "MB7-2025",
  "gtin13": "6954176850021",
  "brand": {
    "@type": "Brand",
    "name": "Xiaomi"
  },
  "additionalProperty": [
    {"@type": "PropertyValue","name": "Kolor","value": "Czarny"},
    {"@type": "PropertyValue","name": "Materiał","value": "Silikon, metal"}
  ],
  "offers": {
    "@type": "Offer",
    "url": "https://site.com/product/mi-band-7/",
    "priceCurrency": "PLN",
    "price": "1499",
    "priceValidUntil": "2026-12-31",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition",
    "seller": {"@type": "Organization","name": "Hotlist.biz"},
    "shippingDetails": {"@type": "OfferShippingDetails","shippingRate":{"@type": "MonetaryAmount","value":"50"}}
  },
  "aggregateRating": {"@type": "AggregateRating","ratingValue": "4.8","reviewCount": "238"},
  "review": [
    {"@type": "Review","author": "Olena","datePublished": "2025-02-10","reviewBody": "Świetna opaska, działa stabilnie!","reviewRating":{"@type": "Rating","ratingValue":"5"}}
  ]
}
</script>

7. Produkty wariantowe (rozmiar/kolor) — podejścia

Są dwa popularne podejścia:

  1. Jeden główny Product + lista offers (lub osobne Offer dla każdego wariantu).
  2. Kilka produktów Product (po jednym na unikalną stronę wariantu) — stosować, jeśli wariant ma własną stronę/URL.

Przykład: Product z dwoma Offer (dwa kolory, jedna strona):

Kod: JSON-LD
<script type="application/ld+json">
{
  "@context":"https://schema.org",
  "@type":"Product",
  "name":"Koszulka Classic",
  "image":["https://site.com/img/tshirt-red.jpg"],
  "description":"Klasyczna koszulka",
  "sku":"TSHIRT-001",
  "brand":{"@type":"Brand","name":"BrandCo"},
  "offers":[
    {"@type":"Offer","sku":"TSHIRT-001-RED","price":"599","priceCurrency":"PLN","availability":"https://schema.org/InStock","itemCondition":"https://schema.org/NewCondition","color":"Czerwony"},
    {"@type":"Offer","sku":"TSHIRT-001-BLUE","price":"599","priceCurrency":"PLN","availability":"https://schema.org/OutOfStock","itemCondition":"https://schema.org/NewCondition","color":"Niebieski"}
  ]
}
</script>

8. BreadcrumbList (okruszki) — przydatne do nawigacji

Okruszki pomagają wyszukiwarkom pokazać strukturę strony w snippetach.

Kod: JSON-LD
<script type="application/ld+json">
{
  "@context":"https://schema.org",
  "@type":"BreadcrumbList",
  "itemListElement":[
    {"@type":"ListItem","position":1,"name":"Strona główna","item":"https://site.com/"},
    {"@type":"ListItem","position":2,"name":"Kategoria: Opaski","item":"https://site.com/category/bracelets"},
    {"@type":"ListItem","position":3,"name":"Xiaomi Mi Band 7","item":"https://site.com/product/mi-band-7/"}
  ]
}
</script>

9. Jak weryfikować oznaczenia — narzędzia

  • Google Rich Results Test — szybko pokazuje błędy i ostrzeżenia dla rich snippets.
  • validator.schema.org — szczegółowa weryfikacja schematu.
  • Google Search Console — w sekcji „Ulepszenia” → „Produkty” można śledzić błędy po publikacji.

10. Best practices i zalecenia

  • Generuj JSON-LD po stronie serwera z bazy danych — cena, dostępność, sku, zdjęcia powinny być zsynchronizowane z treścią strony.
  • Nie używaj testowych/fałszywych danych w produkcji.
  • Jeśli pokazujesz kilka cen (promocje), używaj priceValidUntil i aktualnej ceny w offers.price.
  • Podawaj priceCurrency w formacie ISO (PLN, USD, EUR).
  • Nie twórz konfliktujących oznaczeń (różne ceny w widocznej treści i JSON-LD).
  • Dla sklepów międzynarodowych — podawaj lokalizacje, adres sprzedawcy i shippingDetails.

11. Częste błędy i jak je naprawić

  • Błąd: price zawiera symbol waluty — naprawa: przechowywać i wyświetlać tylko cyfry.
  • Błąd: brak image — naprawa: dodaj przynajmniej 1 poprawny URL.
  • Błąd: niezgodne URL — naprawa: używaj URL aktualnej strony produktu w offers.url.
  • Błąd: fałszowanie tablicy review/aggregateRating — naprawa: pokazuj tylko prawdziwe recenzje.

12. Wskazówki SEO

  • Dodaj dane strukturalne do każdej karty produktu — zwiększa szansę na rozszerzony snippet.
  • Dodawaj szczegółowe obrazy (ImageObject) z podaniem width/height jeśli możliwe.
  • Używaj BreadcrumbList i Product razem — poprawia nawigację w wynikach wyszukiwania.
  • Monitoruj Search Console i poprawiaj błędy oznaczeń.

13. Szablon do wstawienia w szablon produktu (dynamiczny)

Poniżej szablon, gdzie zmienne są podmieniane po stronie serwera (PHP/Twig/Smarty). Podstaw własne zmienne zamiast %VAR%.

Kod: JSON-LD
<script type="application/ld+json">
{
  "@context":"https://schema.org",
  "@type":"Product",
  "name":"%PRODUCT_NAME%",
  "image":[%IMAGE_LIST%],
  "description":"%SHORT_DESCRIPTION%",
  "sku":"%SKU%",
  "brand":{"@type":"Brand","name":"%BRAND%"},
  "offers":{
    "@type":"Offer",
    "url":"%PRODUCT_URL%",
    "priceCurrency":"%CURRENCY%",
    "price":"%PRICE%",
    "priceValidUntil":"%PRICE_VALID_UNTIL%",
    "availability":"%AVAILABILITY%"
  }
}
</script>

14. Ocena produktów (aggregateRating)

Ocena pozwala wyświetlać średnią wartość produktu i liczbę recenzji w rozszerzonym snippecie.

Kod: JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Słuchawki bezprzewodowe X100",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "154"
  }
}
</script>

Zalecenie: ratingValue — liczba z kropką dziesiętną (np. 4.7), reviewCount — liczba całkowita.

15. Recenzje klientów (review)

Recenzje pozwalają szczegółowo opisywać opinie użytkowników o produkcie, w tym autora, datę publikacji i ocenę.

Kod: JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Słuchawki bezprzewodowe X100",
  "review": [
    {"@type":"Review","author":"Olena","datePublished":"2025-05-10","reviewBody":"Bardzo wygodne słuchawki, świetny dźwięk!","reviewRating":{"@type":"Rating","ratingValue":"5"}},
    {"@type":"Review","author":"Igor","datePublished":"2025-05-12","reviewBody":"Dobre, ale trochę masywne.","reviewRating":{"@type":"Rating","ratingValue":"4"}}
  ]
}
</script>

Każda recenzja zawiera autora, datę publikacji, tekst i ocenę. Można dodawać dowolną liczbę recenzji.

Ważne dla użytkowników Hotlist.biz

Domyślnie platforma Hotlist.biz zawiera poprawne podstawowe mikroznaczenia (Product, Offer, Price, Availability, BreadcrumbList, ImageObject). Zwykle wystarczy rozszerzać je dodatkowymi polami (gtin, mpn i inne) w razie potrzeby.

Dodatkowo: na platformie automatycznie włączone są oznaczenia oceny (aggregateRating) i recenzje (review), co pozwala wyświetlać średnią ocenę i rzeczywiste opinie użytkowników w rozszerzonych snippetach.

Wybór platformy dla profesjonalnego sklepu internetowego z wieloma produktami i automatyzacją.
Pierwsze kroki po stworzeniu sklepu internetowego.
Responsywne projektowanie i mobilne menu dla sklepu internetowego: jak stworzyć responsywny sklep internetowy i mobilne menu