Jeśli masz sklep na PrestaShop i chcesz, żeby ChatGPT, Gemini i Google
widziały Twoje produkty jako ustrukturyzowane dane, wklej snippet
<script type="application/ld+json"> z danymi Product
schema do szablonu strony produktu. Bez pisania PHP.
Minimum to: name, image, offers (z
price, priceCurrency, availability) i
brand. Test po wklejeniu: Google Rich Results Test pod adresem
https://search.google.com/test/rich-results.
Jeśli masz sklep na PrestaShop, dodaj JSON-LD Product schema do pliku
product.tpl, bo agenty AI i Google Rich Results czytają te dane
niezależnie od wyglądu strony. Sprawdź: czy snippet ma name,
image, offers.price,
offers.availability i brand.
Klient pyta ChatGPT: „Gdzie kupię buty do biegania z karbonową płytką do 600 zł?" albo „Jaki suplement z magnezem dla sportowca?" Jeśli Twój sklep na PrestaShop nie ma Product schema, model AI nie wie, że masz ten produkt, jaką ma cenę i czy jest dostępny. Google i agenty AI czytają dane strukturalne jako tekst JSON — niezależnie od wyglądu strony.
Brak Product schema to najczęstszy błąd wykrywany przez Audit AI w polskich sklepach e-commerce. Naprawa nie wymaga programisty — wymaga wiedzieć gdzie wkleić gotowy kod i co w nim zmienić.
Najważniejsze wnioski
- JSON-LD to preferowany format dla danych strukturalnych według Google — nie wymaga zmian w HTML, wkleja się jako osobny blok
<script>. - Minimum Product schema to sześć pól:
name,image,description,brand,offers.price,offers.availability. Bez nich Google wyświetla błąd w Rich Results Test. - PrestaShop 1.7 i 8.x pozwalają dodać JSON-LD przez edycję pliku
product.tplw panelu administracyjnym — bez FTP, bez PHP. - Nie każdy sklep tego potrzebuje. Jeśli masz poniżej 5 produktów albo sprzedajesz wyłącznie usługi, priorytet jest niski.
- Test zajmuje 5 minut — wklej URL produktu do Rich Results Test i widzisz błędy od razu.
Dlaczego to ważne w 2026
Google od kilku lat pokazuje rich snippets — produkty ze schema pojawiają się w wynikach z gwiazdkami, ceną i dostępnością. To nie jest nowość. Nowością jest drugi wymiar: ChatGPT Search i Gemini korzystają z danych strukturalnych przy budowaniu odpowiedzi zakupowych.
Kiedy użytkownik pyta AI o produkt z ceną, model szuka danych, które może powtórzyć bez zgadywania. PrestaShop 1.7.x i 8.x domyślnie nie generuje pełnego Product schema — moduł ps_shoppingcart i domyślny motyw Classic tworzą tylko metadane Open Graph, nie JSON-LD zgodny z wymaganiami Google. Większość polskich sklepów na PrestaShop ma tę lukę bez świadomości, że to luka.
Schema.org/Product ma ponad 50 właściwości. Google i agenty AI wymagają zaledwie kilku kluczowych — reszta to bonus dla specyficznych kategorii (elektronika, odzież, suplementy).
Sprawdź to teraz, zanim przejdziesz dalej: wejdź na https://search.google.com/test/rich-results i wklej URL swojego głównego produktu. Jeśli nie widzisz zakładki „Produkt" w wynikach — masz tę lukę i ten artykuł jest dla Ciebie. Bez Product schema Google nie wyświetli ceny ani dostępności produktu w wynikach wyszukiwania, nawet jeśli strona jest w indeksie.
Czym JSON-LD różni się od innych formatów
Są trzy sposoby kodowania danych strukturalnych: JSON-LD, Microdata i RDFa. PrestaShop niekiedy generuje Microdata wbudowane w HTML — ale Google oficjalnie rekomenduje JSON-LD jako format preferowany, bo jest łatwiejszy w utrzymaniu.
| Format | Gdzie siedzi | Trudność edycji | Rekomendacja Google |
|---|---|---|---|
| JSON-LD | Osobny blok <script> | Łatwa | ✅ Preferowany |
| Microdata | Wpleciony w HTML | Trudna | ⚠️ Akceptowany |
| RDFa | Atrybuty w tagach HTML | Trudna | ⚠️ Akceptowany |
JSON-LD to jeden osobny blok. Edytujesz go bez ruszania struktury HTML — nie setki tagów rozsianych po szablonie.
Krok po kroku: jak dodać Product schema w PrestaShop
- Znajdź plik szablonu produktu
W panelu PrestaShop wejdź do Wygląd → Motywy i logo → Edytuj aktualny motyw. Szukasz pliku
catalog/product.tpl. Jeśli Twój hosting ma menedżer plików (cPanel File Manager albo Plesk), możesz edytować plik bezpośrednio pod ścieżką:themes/{nazwa-motywu}/templates/catalog/product.tplPrzed edycją: pobierz kopię pliku na komputer. 30 sekund, które może zaoszczędzić kilka godzin.
SłaboEdytuję plik bez kopii, bo „zawsze można cofnąć”.LepiejPobieram kopię product.tpl lokalnie. Jeśli coś się posypie, upload oryginalnego pliku przywraca sklep w 2 minuty. - Przygotuj snippet JSON-LD
Podstawowy snippet Product schema — zawiera wszystkie pola wymagane przez Google:
<script type="application/ld+json"> { "@context": "https://schema.org/", "@type": "Product", "name": "NAZWA PRODUKTU", "image": [ "URL DO ZDJECIA PRODUKTU" ], "description": "OPIS PRODUKTU (max 5000 znaków)", "brand": { "@type": "Brand", "name": "NAZWA MARKI" }, "offers": { "@type": "Offer", "url": "URL STRONY PRODUKTU", "priceCurrency": "PLN", "price": "CENA NUMERYCZNA", "priceValidUntil": "2026-12-31", "itemCondition": "https://schema.org/NewCondition", "availability": "https://schema.org/InStock" } } </script>To wersja statyczna — ręcznie wypełniona. Dla kilku produktów wystarczy.
Sklep obuwniczy: dla butów do biegania wpisz w
brandnazwę producenta (np."ASICS"), wnamepełną nazwę modelu z rozmiarem, wpriceaktualną cenę PLN.Sklep z suplementami: w
namepodaj pełną nazwę z gramatyką ("Magnez B6 forte 60 tabletek"), wdescriptionskład i dawkowanie. - Zamień wartości statyczne na dynamiczne (opcjonalnie)
Przy więcej niż 10 produktach ręczne wypełnianie każdego snippetu to za dużo roboty. PrestaShop używa silnika szablonów Smarty — pozwala wstawiać zmienne z bazy danych.
Wersja dynamiczna dla PrestaShop 1.7/8.x:
<script type="application/ld+json"> { "@context": "https://schema.org/", "@type": "Product", "name": "{$product.name|escape:'html':'UTF-8'}", "image": [ "{$product.cover.bySize.large_default.url}" ], "description": "{$product.description_short|strip_tags|escape:'html':'UTF-8'}", "brand": { "@type": "Brand", "name": "{if $product.manufacturer_name}{$product.manufacturer_name|escape:'html':'UTF-8'}{else}Sklep{/if}" }, "offers": { "@type": "Offer", "url": "{$product.url}", "priceCurrency": "{$currency.iso_code}", "price": "{$product.price_amount}", "priceValidUntil": "2026-12-31", "itemCondition": "https://schema.org/NewCondition", "availability": "{if $product.availability == 'available'}https://schema.org/InStock{else}https://schema.org/OutOfStock{/if}" } } </script>Nie znasz Smarty? Wklej wersję statyczną dla głównych produktów. Dynamiczna przydaje się gdy chcesz pokazać plik programiście lub obsłużyć cały katalog za jednym razem.
- Wklej snippet we właściwe miejsce
W pliku
product.tplznajdź zamykający tag</head>albo{'{block name=\'head_end\'}'}. Wklej snippet tuż przed tym tagiem.{_ JSON-LD Product schema — dodano 2026-05-27 _} <script type="application/ld+json"> {...snippet...} </script> {/block}Komentarz z datą pozwala zidentyfikować zmianę po roku, gdy nie będziesz pamiętał co edytowałeś.
Snippet musi być w sekcji
<head>albo bezpośrednio w<body>— nie poniżej stopki. - Zapisz plik i sprawdź w Rich Results Test
Po zapisaniu
product.tplotwórz stronę dowolnego produktu w sklepie. Skopiuj URL i wklej do:https://search.google.com/test/rich-results
Kliknij Test URL. Google pobierze stronę i pokaże wynik:
- ✅ Zielony checkmark: snippet poprawny, kwalifikuje się do rich results
- ❌ Błąd: lista brakujących lub niepoprawnych pól z opisem co zmienić
Jeśli widzisz
Missing field "offers"— sprawdź czy zmienna$product.price_amountzwraca wartość. Niektóre wersje PrestaShop używają$product.pricezamiast$product.price_amount. - Sprawdź dodatkowe właściwości dla swojej kategorii
Dla produktów, przy których klienci porównują szczegóły techniczne, dodaj pola specyficzne dla kategorii:
Dla odzieży i obuwia:
"color": "Czarny", "size": "42", "material": "skóra naturalna", "audience": { "@type": "PeopleAudience", "suggestedGender": "male" }Dla suplementów i kosmetyków:
"additionalProperty": [ { "@type": "PropertyValue", "name": "Gramatura", "value": "500g" } ]Dla elektroniki:
"model": "GX-500", "gtin13": "1234567890123"
Nie dodawaj pól, których wartości nie jesteś pewny — błędne dane structured data są gorsze niż brak danych.
- Monitoruj w Search Console co miesiąc
Rich Results Test sprawdza jeden URL na raz. Do regularnego monitoringu użyj Google Search Console — zakładka Ulepszenia pokazuje status danych strukturalnych dla całej witryny, pogrupowany według błędów i ostrzeżeń.
Sklep z 50 produktami widzi tam listę problemów od razu — zamiast sprawdzać każdą stronę osobno.
Gotowe snippety do skopiowania
Snippet minimalny (wersja statyczna)
Wypełnij CAPS_LOCK wartościami ze swojego sklepu:
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "PEŁNA NAZWA PRODUKTU",
"image": "https://twojsklep.pl/img/p/NAZWA-ZDJECIA.jpg",
"description": "KRÓTKI OPIS PRODUKTU",
"brand": {
"@type": "Brand",
"name": "MARKA"
},
"offers": {
"@type": "Offer",
"url": "https://twojsklep.pl/produkt/nazwa-produktu",
"priceCurrency": "PLN",
"price": "199.00",
"priceValidUntil": "2026-12-31",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock"
}
}
</script>Snippet z recenzjami (agregowane oceny)
Tylko jeśli masz recenzje widoczne na stronie produktu:
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "PEŁNA NAZWA PRODUKTU",
"image": "URL DO ZDJECIA",
"brand": { "@type": "Brand", "name": "MARKA" },
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "23"
},
"offers": {
"@type": "Offer",
"priceCurrency": "PLN",
"price": "199.00",
"availability": "https://schema.org/InStock"
}
}
</script>ratingValue i reviewCount muszą zgadzać się z recenzjami widocznymi na stronie. Jeśli nie masz recenzji — nie dodawaj aggregateRating. Google karze za fałszywe oceny.
Checklista wdrożenia Product schema w PrestaShop
- Pobrano kopię pliku product.tpl przed edycją
- Snippet JSON-LD dodany do sekcji <head> lub <body> strony produktu
- Pole name zawiera pełną nazwę produktu
- Pole image to działający pełny URL do zdjęcia produktu (nie ścieżka relatywna)
- Pole description wypełnione (min. 50 znaków)
- Pole brand.name zawiera nazwę producenta lub marki
- Pole offers.price to liczba bez symbolu waluty ("199.00", nie "199 zł")
- Pole offers.priceCurrency to kod ISO waluty ("PLN")
- Pole offers.availability to pełny URL schematu ("https://schema.org/InStock" lub "https://schema.org/OutOfStock")
- URL strony produktu w offers.url prowadzi do właściwego produktu
- Test w Rich Results Test — brak błędów krytycznych
- W Google Search Console brak ostrzeżeń dla sekcji "Produkt" w Ulepszeniach
- Dane strukturalne zgodne z tym, co widzi użytkownik (cena, dostępność, oceny)
- Cena w snippecie odpowiada cenie wyświetlanej na stronie (z VAT jeśli tak wyświetlasz)
- priceValidUntil ustawione na datę w przyszłości
- Przy wariantach produktu — snippet załadowany dynamicznie dla aktywnego wariantu
- Przy recenzjach: aggregateRating.reviewCount zgadza się z liczbą recenzji na stronie
- Przypomnienie do miesięcznego sprawdzenia w Search Console
Plan wdrożenia na 7 dni
Wybierz 3 produkty z największym ruchem. Sprawdź w Google Analytics lub Search Console które strony produktów mają najwięcej sesji. Zanotuj ich CTR — to linia bazowa do pomiaru efektów.
Pobierz product.tpl, zrób kopię. Przygotuj statyczny snippet dla każdego z 3 produktów — wypełnij ręcznie ceny, nazwy, URL zdjęcia.
Wklej snippet do product.tpl. Zapisz. Sprawdź każdy z 3 produktów w Rich Results Test. Popraw błędy.
Zaloguj się do Google Search Console. Sprawdź czy pojawia się zakładka "Produkt" w Ulepszeniach. Jeśli nie — czekaj 48h, Google jeszcze nie zindeksował zmian.
Jeśli masz ponad 10 produktów — skonwertuj snippet na wersję dynamiczną ze zmiennymi Smarty albo przekaż wersję statyczną programiście z prośbą o automatyzację.
Uzupełnij pola specyficzne dla kategorii: color/size dla odzieży, gtin13 dla elektroniki, additionalProperty dla suplementów.
Sprawdź Search Console ponownie. Ustaw przypomnienie na 14 i 30 dni. Wklej URL sklepu do Audit AI — pełny raport AI Readiness ze statusem wszystkich danych strukturalnych.
Najczęstsze błędy przy wdrażaniu Product schema
Google oczekuje liczby, nie tekstu. Przecinek dziesiętny też jest błędem — używaj kropki.
Google sprawdza zgodność danych strukturalnych z treścią strony. Niezgodność może skutkować wyłączeniem rich results.
JSON-LD wymaga pełnych URL. Ścieżka relatywna nie działa w kontekście parsowanym przez zewnętrzne narzędzia.
Niektóre motywy PrestaShop mają niestandardowe struktury szablonów. Snippet
wklejony po zamykającym </html> nie będzie wykryty przez
walidator.
Zawsze sprawdź w Rich Results Test — jeśli wynik jest pusty mimo wklejonego
snippetu, prawdopodobnie trafił poza <body>.
Jak mierzyć efekty po wdrożeniu
Google musi ponownie zindeksować strony po zmianie — dla aktywnych sklepów trwa to kilka godzin do kilku dni. Nie sprawdzaj efektów w pierwszej dobie.
Sygnały warte śledzenia:
- Rich Results w Search Console → Ulepszenia → Produkt: zielony status i liczba prawidłowych elementów
- CTR w Search Console: produkty z rich snippet mogą mieć wyższy CTR — zanotuj CTR dla 3 kluczowych produktów jeszcze dzisiaj i porównaj po 30 dniach
- Kliknięcia z AI Search: ruch z domen OpenAI, Google Gemini lub Perplexity — widoczny w Google Analytics 4 przy odpowiednich ustawieniach
- Rich snippet w wynikach Google: wpisz
site:twojsklep.pl nazwa-produktu— czy wynik pokazuje gwiazdki i cenę?
Ustaw przypomnienie w kalendarzu na 7 i 14 dni po wdrożeniu. Dla sklepów z małym ruchem organicznym zmiany mogą być widoczne dopiero po 30 dniach.
Dla kogo to nie jest dobre rozwiązanie
Nie musisz tego wdrażać jeśli:
- Sprzedajesz wyłącznie usługi, nie produkty fizyczne (
schema.orgma osobne typy:Service,LocalBusiness) - Sklep jest zamknięty dla ogółu, B2B z dostępem po logowaniu — Google nie zindeksuje tych stron
- Masz mniej niż 5 produktów i nie planujesz skalowania — nakład jest nieproporcjonalny do zysku
- Motyw PrestaShop jest mocno zmodyfikowany i nie masz dostępu do
product.tpl— bez edycji szablonu lub dedykowanej wtyczki wdrożenie nie jest możliwe
Poczekaj z wdrożeniem jeśli:
- Ceny lub dostępność zmieniają się kilka razy dziennie bez automatycznej aktualizacji — ryzyko niezgodności między snippet a stanem faktycznym jest zbyt duże
- Sklep jest w trakcie migracji na nowy motyw — wdrożenie schema po stabilizacji da pewniejszy wynik
Podsumowanie
Product schema JSON-LD w PrestaShop zajmuje jedno popołudnie: kopia pliku, wklejony snippet, test w Rich Results Test. Efekty widać w dwóch miejscach — rich snippets w Google i lepsza widoczność w odpowiedziach AI na zapytania zakupowe.
Zacznij od trzech produktów z największym ruchem. Sprawdź Rich Results Test. Wróć do Search Console po tygodniu. Jeśli chcesz zobaczyć pełny raport AI Readiness swojego sklepu — włącznie ze statusem danych strukturalnych, robots.txt, llms.txt i zgodnością z agentami AI — uruchom bezpłatny audyt na Audit AI.



