Dane strukturalne w WooCommerce: Product, FAQ, Breadcrumbs

Po co w ogóle dane strukturalne w sklepie internetowym

Wyobraź sobie, że Google wchodzi na Twoją stronę produktową. Widzi cenę gdzieś w HTML, nazwę produktu pewnie w H1, dostępność ukrytą w jakimś divie z klasą “stock-status”. Musi to wszystko samodzielnie połączyć i zrozumieć. Dane strukturalne (Schema.org) to sposób na powiedzenie mu wprost: “to jest produkt, kosztuje 149 zł, jest dostępny, ma ocenę 4.7 na 5”. Zamiast zgadywać, dostaje gotową informację w ustandaryzowanym formacie.

Praktyczny efekt? Wzbogacone wyniki wyszukiwania (rich snippets). Zamiast zwykłego linku z tytułem i opisem, Twój produkt w wynikach Google może wyświetlać:

  • gwiazdki ocen (AggregateRating)
  • cenę i walutę
  • informację o dostępności (“W magazynie” / “Brak w magazynie”)
  • breadcrumbs (ścieżkę nawigacji)
  • odpowiedzi na pytania (FAQ)

Wzbogacone wyniki nie gwarantują wyższej pozycji. Ale wyraźnie podnoszą CTR (współczynnik klikalności), bo wyróżniają się wizualnie na tle konkurentów, którzy tych danych nie mają. W e-commerce, gdzie na jedną frazę wyświetla się 10-20 sklepów z podobnymi produktami, ta różnica ma znaczenie.

Co generują automatycznie wtyczki SEO

WooCommerce sam w sobie nie generuje żadnych danych strukturalnych. Odpowiadają za to wtyczki SEO i sam motyw. Zanim zaczniesz cokolwiek dodawać ręcznie, sprawdź, co już masz.

Yoast SEO + Yoast WooCommerce SEO

Yoast SEO w wersji podstawowej (bezpłatnej) generuje schemat ogólny: Organization, WebSite, WebPage i BreadcrumbList. Natomiast pełny schemat Product wymaga dodatku Yoast WooCommerce SEO (płatny, w cenie Yoast SEO Premium).

Po instalacji Yoast WooCommerce SEO automatycznie generuje na stronach produktów:

  • Product z polami: name, description, image, sku, offers (cena, waluta, dostępność)
  • BreadcrumbList z pełną ścieżką nawigacji (Strona główna > Kategoria > Produkt)
  • Organization z nazwą firmy i logo (jeśli skonfigurowane w Yoast > Ustawienia ogólne)
  • WebSite z polem SearchAction (umożliwia wyszukiwanie sitelinks w Google)

Rank Math Pro

Rank Math Pro generuje te same schematy co Yoast, ale ma kilka dodatkowych funkcji:

  • automatycznie wykrywa i dodaje pole brand, jeśli używasz atrybutu “Marka” w WooCommerce
  • pozwala na wybór typu schematu bezpośrednio w edytorze produktu (Product, Software, Book itd.)
  • ma wbudowany generator FAQ schema, który pozwala dodawać pytania i odpowiedzi bezpośrednio w edytorze Gutenberg
  • generuje AggregateRating, jeśli włączone są recenzje WooCommerce

Motywy WooCommerce

Tu pojawia się pierwszy problem. Wiele motywów premium (Flatsome, Woodmart i inne popularne motywy) generuje własne dane strukturalne niezależnie od wtyczki SEO. Efekt: na jednej stronie produktu pojawiają się dwa bloki <script type="application/ld+json"> z danymi Product, które mogą się wzajemnie wykluczać.

Google traktuje to jako błąd. W Rich Results Test zobaczysz ostrzeżenie o zduplikowanym schemacie. Rozwiązanie: sprawdź źródło strony (Ctrl+U) i wyszukaj “application/ld+json”. Jeśli znajdziesz więcej niż jeden blok Product, musisz wyłączyć generowanie schematu w motywie (zwykle w opcjach motywu lub w pliku functions.php) i zostawić tylko dane z wtyczki SEO.

Czego wtyczki SEO nie generują

Nawet najlepsza wtyczka SEO nie pokrywa wszystkich schematów, które mają wartość w e-commerce. Poniżej lista tego, co musisz dodać samodzielnie.

GTIN, EAN, MPN, ISBN

Google coraz mocniej naciska na identyfikatory produktów w danych strukturalnych. Pola gtin, gtin13, gtin14, mpn i isbn nie są wymagane, ale ich brak to wyraźny sygnał: “Hej Google, nie traktuj mnie poważnie”. Ich obecność zwiększa szanse na wyświetlenie wzbogaconych wyników, szczególnie w zakładce Zakupy.

WooCommerce nie ma domyślnych pól na te identyfikatory. Yoast WooCommerce SEO dodaje pole GTIN/EAN w panelu edycji produktu (od wersji 15.0). Rank Math pozwala dodać GTIN w ustawieniach schematu produktu. Jeśli używasz innej wtyczki SEO, musisz dodać pola ręcznie przez wtyczkę ACF (Advanced Custom Fields) lub dedykowaną wtyczkę typu Product GTIN for WooCommerce.

Pole brand

WooCommerce nie ma domyślnego pola “marka”. Większość sklepów używa atrybutu produktu o nazwie “Marka” lub taksonomii “pa_marka”. Problem w tym, że Yoast SEO nie mapuje automatycznie atrybutów WooCommerce na pole brand w schemacie Product. Musisz to skonfigurować ręcznie w Yoast > Ustawienia > Wygląd w wyszukiwarce > Typy treści > Produkty, gdzie możesz wskazać, który atrybut odpowiada marce.

Rank Math robi to automatycznie, jeśli atrybut nazywa się dokładnie “Marka” lub “Brand”.

AggregateRating

Gwiazdki ocen w wynikach wyszukiwania wymagają schematu AggregateRating z polami ratingValue i reviewCount. Wtyczki SEO generują te dane automatycznie, ale tylko jeśli:

  • recenzje WooCommerce są włączone (WooCommerce > Ustawienia > Produkty > zaznacz “Włącz oceny produktów”)
  • przynajmniej jeden produkt ma co najmniej jedną recenzję z oceną

Jeśli korzystasz z zewnętrznego systemu recenzji (np. Trustmate, Opineo, Judge.me), musisz sprawdzić, czy ten system generuje poprawny schemat AggregateRating i czy nie koliduje z danymi z wtyczki SEO. Dwa bloki AggregateRating na jednej stronie to błąd.

FAQ na stronach kategorii

To jest niedoceniana broń w arsenale SEO. Sekcja FAQ na stronie kategorii to jedna z najskuteczniejszych taktyk w e-commerce. Pozwala dodać treść na stronach, które z natury mają mało tekstu (lista produktów), i jednocześnie celować w frazy typu “jaki [produkt] wybrać”, “czym się różni [A] od [B]”.

Żeby Google wyświetlił te pytania jako rozwijane elementy w wynikach wyszukiwania, potrzebujesz schematu FAQPage. Żadna standardowa wtyczka SEO nie generuje go automatycznie na stronach kategorii. Masz trzy opcje:

Rank Math (wbudowany blok FAQ). Jeśli używasz Rank Math, masz do dyspozycji blok Gutenberg “FAQ by Rank Math”, który automatycznie generuje schemat FAQPage. Problem: strony kategorii WooCommerce nie używają standardowego edytora Gutenberg, więc musisz dodać blok FAQ do opisu kategorii przez customowy edytor lub shortcode.

Wtyczka dedykowana. Wtyczki typu Schema Pro lub All In One Schema Rich Snippets pozwalają dodawać schematy do dowolnej strony. Konfiguracja jest bardziej techniczna, ale daje pełną kontrolę.

Kod PHP w motywie. Najbardziej elastyczna opcja. Dodajesz schemat FAQPage bezpośrednio w szablonie kategorii (taxonomy-product_cat.php lub przez hook woocommerce_archive_description). Dane FAQ możesz przechowywać w polach ACF przypisanych do kategorii.

Offers z wariantami

Produkt z wariantami (np. koszulka w trzech kolorach i pięciu rozmiarach) powinien mieć w schemacie Product wiele obiektów Offer, po jednym dla każdego wariantu. Każdy Offer powinien mieć własną cenę, dostępność i SKU.

Yoast WooCommerce SEO i Rank Math Pro obsługują warianty automatycznie, ale warto zweryfikować wynik w Rich Results Test. Sprawdź, czy:

  • każdy wariant ma osobny obiekt Offer
  • ceny wariantów są poprawne (nie wszystkie wskazują na cenę główną)
  • dostępność odzwierciedla faktyczny stan magazynowy wariantu, a nie produktu głównego
  • waluta jest poprawna (PLN, nie “zł”)

Jeśli masz produkt z 50 wariantami, schemat będzie zawierał 50 obiektów Offer. To jest poprawne i Google sobie z tym radzi.

Jak wdrożyć schemat ręcznie

Nie każdy schemat da się dodać przez wtyczkę. Czasem potrzebujesz kontroli nad kodem JSON-LD. Poniżej schemat wdrożenia krok po kroku.

Struktura JSON-LD

Dane strukturalne w formacie JSON-LD umieszczasz w tagu <script type="application/ld+json"> w sekcji <head> lub na końcu <body>. Przykład schematu FAQPage:

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Jaki rozmiar koszulki wybrać?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Nasza tabela rozmiarów znajduje się na stronie każdego produktu. Jeśli wahasz się między dwoma rozmiarami, zalecamy wybranie większego."
      }
    },
    {
      "@type": "Question",
      "name": "Ile trwa dostawa?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Standardowa dostawa trwa 2-3 dni robocze. Ekspresowa dostawa następnego dnia jest dostępna za dodatkową opłatą."
      }
    }
  ]
}

Gdzie umieścić kod w WooCommerce

Masz trzy opcje:

Hook w functions.php. Użyj hooka wp_head lub woocommerce_after_single_product, żeby wstrzyknąć JSON-LD na stronach produktów lub kategorii. Możesz warunkować wyświetlanie za pomocą is_product(), is_product_category() itd.

Wtyczka Insert Headers and Footers. Prostsza opcja, jeśli nie chcesz edytować kodu motywu. Pozwala dodać dowolny kod do sekcji <head> globalnie lub warunkowo.

Google Tag Manager. Możesz wstrzyknąć JSON-LD przez niestandardowy tag HTML w GTM. Zaleta: zmienisz schemat bez dostępu do plików WordPressa. Wada: Google może ignorować dane strukturalne dodane przez GTM w niektórych scenariuszach (oficjalnie obsługuje je, ale w praktyce zdarzają się opóźnienia w rozpoznawaniu).

Testowanie i walidacja

Rich Results Test

Narzędzie Google Rich Results Test (search.google.com/test/rich-results) to Twoje główne narzędzie walidacji. Wklej URL strony produktu lub kategorii i sprawdź:

  • czy wszystkie schematy są rozpoznane (Product, BreadcrumbList, FAQPage, Organization)
  • czy nie ma błędów (czerwone komunikaty) ani ostrzeżeń (żółte)
  • czy podgląd wzbogaconego wyniku wygląda tak, jak oczekujesz

Typowe błędy, które zobaczysz w WooCommerce:

  • “Missing field: priceValidUntil” - Google wymaga daty ważności ceny. Yoast i Rank Math dodają ją automatycznie (zwykle rok do przodu), ale jeśli generujesz schemat ręcznie, musisz to pole dodać
  • “Missing field: review or aggregateRating” - Google woli, żebyś miał recenzje. Jeśli ich nie masz, to ostrzeżenie (nie błąd), ale zmniejsza szanse na wyświetlenie gwiazdek
  • “Missing field: brand” - coraz częstsze ostrzeżenie, szczególnie ważne dla produktów w Zakupach Google

Schema Markup Validator

Narzędzie Schema.org Validator (validator.schema.org) sprawdza poprawność składni JSON-LD niezależnie od Google. Przydatne, gdy Rich Results Test nie widzi błędu, ale schemat i tak nie działa. Validator sprawdza zgodność ze specyfikacją Schema.org, a nie z wymaganiami Google, więc niektóre ostrzeżenia mogą nie mieć praktycznego znaczenia.

Raport w Google Search Console

Po wdrożeniu danych strukturalnych monitoruj raport “Ulepszenia” w GSC. Znajdziesz tam osobne sekcje dla:

  • Produkty (schemat Product)
  • Breadcrumbs (schemat BreadcrumbList)
  • FAQ (schemat FAQPage)
  • Pole wyszukiwania w linkach witryny (schemat WebSite z SearchAction)

Raport pokazuje błędy i ostrzeżenia na poziomie całej witryny, a nie pojedynczej strony. Jeśli widzisz “100 stron z błędem w danych produktu”, to zazwyczaj jeden systemowy problem (np. brakujące pole brand na wszystkich produktach), a nie 100 różnych błędów.

Najczęstsze błędy

Zduplikowane schematy z motywu i wtyczki

Gdybym dostawał złotówkę za każdy sklep WooCommerce z podwójnym schematem Product, nie musiałbym pracować. Motyw generuje jeden blok, wtyczka SEO generuje drugi. Google widzi dwa sprzeczne zestawy danych i wyświetla błąd lub w ogóle ignoruje schemat.

Jak sprawdzić: otwórz źródło strony (Ctrl+U) i wyszukaj frazę “application/ld+json”. Policz bloki zawierające “@type”: “Product”. Powinien być dokładnie jeden.

Jak naprawić: wyłącz generowanie schematu w motywie. W Flatsome to Opcje motywu > Zaawansowane > Wyłącz schema markup. W Woodmart: Opcje motywu > SEO > Schema Markup > Wyłącz. Jeśli nie ma takiej opcji w panelu, dodaj w functions.php filtr usuwający schemat motywu.

Niezgodność ceny w schemacie z ceną na stronie

Google porównuje dane w schemacie z tym, co widzi na stronie. Jeśli schemat mówi “99 zł”, a na stronie wyświetla się “79 zł” (bo masz aktywną promocję), Google może uznać to za celowe wprowadzanie w błąd i nałożyć karę ręczną (manual action).

Wtyczki SEO z dedykowanym modułem WooCommerce (Yoast WooCommerce SEO, Rank Math Pro) automatycznie używają ceny promocyjnej, jeśli jest aktywna. Problem pojawia się przy niestandardowych systemach rabatów (wtyczki typu Dynamic Pricing, warunki cenowe per rola użytkownika), które zmieniają cenę na stronie, ale nie aktualizują jej w danych strukturalnych.

Schema na stronach paginacji

Strony paginacji kategorii (/kategoria/page/2/, /page/3/) nie powinny mieć schematu CollectionPage ani ItemList, bo to są strony duplikujące treść. Sprawdź, czy Twoja wtyczka SEO poprawnie obsługuje paginację i nie generuje schematu na tych stronach.

Nieaktualna dostępność

Schemat Product zawiera pole availability, które powinno odzwierciedlać aktualny stan magazynowy. Jeśli produkt jest wyprzedany, schemat powinien mieć wartość “https://schema.org/OutOfStock", a nie “https://schema.org/InStock".

Wtyczki SEO aktualizują to pole automatycznie na podstawie stanu magazynowego WooCommerce. Problem pojawia się, gdy:

  • używasz wtyczki cache, która serwuje starą wersję strony z nieaktualnym schematem. Rozwiązanie: skonfiguruj cache tak, żeby czyścił się po zmianie stanu magazynowego
  • zarządzasz stanem magazynowym w zewnętrznym systemie (ERP), a synchronizacja jest opóźniona

Plan wdrożenia krok po kroku

Jeśli zaczynasz od zera z danymi strukturalnymi w WooCommerce, oto rekomendowana kolejność:

  1. zainstaluj jedną wtyczkę SEO z modułem WooCommerce (Yoast + Yoast WooCommerce SEO lub Rank Math Pro) i skonfiguruj dane firmy (nazwa, logo, adres)
  2. sprawdź, czy motyw nie generuje własnego schematu. Jeśli tak, wyłącz go
  3. przetestuj jedną stronę produktu w Rich Results Test i napraw błędy
  4. dodaj pola GTIN/EAN i brand do produktów (priorytetyzuj bestsellery)
  5. włącz recenzje WooCommerce, jeśli jeszcze nie są aktywne
  6. dodaj FAQ na najważniejszych stronach kategorii z odpowiednim schematem FAQPage
  7. skonfiguruj monitoring w GSC (raport Ulepszenia)
  8. po miesiącu sprawdź, które strony uzyskały wzbogacone wyniki i rozszerz wdrożenie

Całość opisuję szerzej w kontekście pełnego audytu technicznego WooCommerce, który obejmuje nie tylko dane strukturalne, ale też wydajność, indeksację i strukturę URL-i. Jeśli szukasz wsparcia we wdrożeniu, opisujemy nasze podejście do SEO dla WooCommerce tutaj.

FAQ

Czy dane strukturalne wpływają bezpośrednio na pozycję w Google?

Google oficjalnie mówi, że dane strukturalne nie są bezpośrednim czynnikiem rankingowym. W praktyce jednak poprawne dane strukturalne podnoszą CTR dzięki wzbogaconym wynikom, a wyższy CTR to sygnał behawioralny, który może pośrednio wpływać na pozycję. Dodatkowo, dane strukturalne Product są wymagane do wyświetlania produktów w zakładce Zakupy w Google (bezpłatne listy produktów), co jest osobnym kanałem ruchu.

Yoast czy Rank Math - co lepsze do danych strukturalnych w WooCommerce?

Rank Math Pro ma bogatsze możliwości konfiguracji schematu “z pudełka” - wbudowany blok FAQ, automatyczne mapowanie atrybutu brand, więcej typów schematu w edytorze produktu. Yoast wymaga płatnego dodatku WooCommerce SEO i jest mniej elastyczny. Jeśli dane strukturalne są dla Ciebie priorytetem, Rank Math Pro daje więcej za mniejszą cenę. Jeśli już masz skonfigurowanego Yoasta i wszystko działa, migracja nie jest konieczna.

Ile czasu potrzeba, żeby Google wyświetlił wzbogacone wyniki?

Od wdrożenia poprawnego schematu do pojawienia się wzbogaconych wyników mija zazwyczaj 2-6 tygodni. Google musi zaindeksować stronę z nowymi danymi, zwalidować je i zdecydować, czy wyświetlić rich snippet. Nie ma gwarancji, że wzbogacone wyniki pojawią się na każdej stronie. Google wybiera, kiedy i gdzie je pokazuje, na podstawie własnych kryteriów.

Czy mogę dodać fałszywe oceny do schematu, żeby mieć gwiazdki?

Technicznie możesz, ale Google to wykrywa i karze. Schemat AggregateRating musi odzwierciedlać rzeczywiste recenzje widoczne na stronie. Jeśli schemat mówi “4.8 na podstawie 127 recenzji”, a na stronie nie ma żadnych recenzji, Google nałoży karę ręczną (manual action) i usunie wzbogacone wyniki z całej domeny, nie tylko z tej jednej strony.

Mam 3000 produktów bez GTIN. Czy to pilne?

Nie jest krytyczne, ale staje się coraz ważniejsze. Google Merchant Center wymaga GTIN dla wielu kategorii produktów. Jeśli planujesz korzystać z bezpłatnych list produktów w zakładce Zakupy, GTIN będzie potrzebny. Priorytetyzuj dodanie identyfikatorów do produktów, które generują największy ruch organiczny i przychód. Nie musisz uzupełniać wszystkich 3000 naraz.

Gotowy na strategiczne partnerstwo w marketingu cyfrowym?

Porozmawiajmy o Twoich wyzwaniach i celach. Opracujemy dopasowaną strategię i plan działania, które przyniosą mierzalne rezultaty dla Twojego e-commerce lub instytucji.