Product schema na Shopify dla AI shoppingu — kompletny przewodnik
Product schema to fundament AI shopping. Pełny przewodnik audytu i wdrożenia Product schema na Shopify — wraz z gtin, brand, AggregateRating i AggregateOffer.
Product schema na Shopify decyduje, czy AI agent (Perplexity Shopping, Microsoft Copilot Checkout, Gemini, ChatGPT Shopping) widzi Twój produkt. Shopify generuje podstawowe Product schema z theme'a, ale 70% sklepów ma niekompletne schema — brak `gtin13`, brak `AggregateRating`, brak `brand.url`. Audyt i naprawa Product schema to typowo pierwszy krok GEO foundation dla Shopify.
Anatomia kompletnego Product schema
| Pole | Wymagalność | Co daje |
|---|---|---|
| `@type: Product` | Wymagane | Identyfikuje typ |
| `name` | Wymagane | Tytuł produktu |
| `image` (lista) | Wymagane | AI scan |
| `description` | Wymagane | Cytowany fragment |
| `brand` | Wymagane | Knowledge graph link |
| `sku` | Mocno zalecane | Internal tracking |
| `gtin13 / gtin8 / mpn` | Krytyczne dla AI shopping | Cross-reference w katalogach |
| `offers.price` | Wymagane (jeśli sprzedajesz) | Pricing display |
| `offers.availability` | Wymagane | Stock check |
| `offers.priceCurrency` | Wymagane | Locale |
| `aggregateRating` | Wysokie weight | Rich snippets + AI trust |
| `review` (pojedyncze) | Wysokie weight | AI cytuje |
| `category` | Średnie weight | Taxonomy |
| `isAccessoryOrSparePartFor` | Niche | Compatibility queries |
Jak Shopify generuje Product schema (out of the box)
Większość themes Shopify automatycznie wstawia podstawowy Product schema w `
` PDP. Możesz to zweryfikować:Typowe braki w stock theme:
Jak dodać brakujące pola
Metoda 1: Theme metafields (rekomendowane)
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": {{ product.title | json }},
"image": {{ product.images | map: 'src' | json }},
"description": {{ product.description | strip_html | json }},
"sku": {{ product.selected_or_first_available_variant.sku | json }},
"gtin13": {{ product.metafields.specs.gtin | json }},
"brand": {
"@type": "Brand",
"name": {{ product.vendor | json }},
"url": {{ product.metafields.specs.brand_url | json }}
},
"offers": {
"@type": "Offer",
"url": {{ shop.url | append: product.url | json }},
"priceCurrency": "PLN",
"price": "0.00",
"availability": "https://schema.org/{% if product.available %}InStock{% else %}OutOfStock{% endif %}"
}
}
</script>Metoda 2: Aplikacja
JSON-LD for SEO, Schema App, SEO Manager — automatyczne wdrożenie. Plus: zero-touch. Minus: subskrypcja.
Metoda 3: Hardcoded
Wprost w theme — nieskalowalne przy 100+ produktach.
AggregateRating + Review
Najmocniejszy boost AI cytowalności. Wymagania:
Jeśli używasz Yotpo / Stamped / Judge.me — zwykle automatycznie wstrzykują AggregateRating do Product schema. Audytuj w Rich Results Test.
Najczęstsze błędy
| Błąd | Konsekwencja |
|---|---|
| Brak gtin13 | Perplexity / Copilot nie cross-link produktu |
| Image-only description | AI nie czyta obrazków — skopiuj key info do tekstu |
| AggregateRating bez review count | Google odrzuca rich snippet |
| Schema z nieaktualnymi cenami | Catalog mismatch, downranking |
| Variants bez własnego schema | AI nie matchuje variant z query |
Walidacja
Najczęściej zadawane pytania
Czy GTIN jest wymagany?
Dla Google Shopping, Perplexity Shopping, Microsoft Copilot Checkout — tak. Bez GTIN nie będziesz w shopping search results. EAN (EU) lub UPC (US) wystarczy.
Czy Shopify Markets generuje schema per locale?
Tak — z poprawnym `priceCurrency` per market. Audytuj każdy locale osobno.
Co z variants — osobne schema?
Najprościej: jeden Product schema z `AggregateOffer` zawierającym low/high price. Alternatywa: `Product` z `hasVariant` array (Shopify nie generuje tego automatycznie).
Jak często aktualizować schema?
Schema generuje się dynamicznie z product.liquid przy każdym renderze, więc jest zawsze świeży. Audytuj implementation co kwartał.
Czy schema ma wpływ na klasyczne SEO?
Tak — Google używa Product schema do rich snippets w SERPs. Bez schema brak ratingu, ceny w SERP.
Co robić z produktami bez ceny (custom quote)?
Użyj `offers.priceSpecification` z `PriceSpecification` types. Lub schema z `@type: AggregateOffer` i polem opisowym.
Czy potrzebuję Product schema na collection pages?
Nie. Collection page używa `CollectionPage` lub `ItemList` — z linkami do PDP, na których jest pełny Product schema.