Dobrze ustawiony schema markup typu Product daje Twojemu produktowi w wynikach Google: ⭐ gwiazdki, cenę w PLN, status dostępności i nazwę marki — wprost w SERP-ie. CTR rośnie o 20–40%. Pokażemy, jak wdrożyć kompletny schema.org Product na WooCommerce — bez wtyczki, z wtyczką, i jak zwalidować, że Google go widzi.

Czym jest schema markup i czemu jest ważny

Schema.org to wspólny słownik metadanych, którym Google (i Bing, Yandex) opisuje treść strony. Dla e-commerce najważniejsze typy to Product, Offer, AggregateRating, Brand, Review, BreadcrumbList. Dodanie poprawnego JSON-LD na stronie produktu odblokuje w Google Search:

  • Rich Snippets Product — w wynikach: zdjęcie miniaturki, gwiazdki, „od 199 zł”, „W magazynie”
  • Google Merchant Listings (free listings) — produkty pokazują się w Google Shopping tab bez płacenia za Ads (jeśli masz Merchant Center + dobry feed)
  • Knowledge Panel — przy popularnych markach Google buduje panel boczny z waszymi produktami
  • Mobile rich cards — na mobile Google pokazuje karuzelę produktów zamiast standardowych linków

Mierzony wpływ na CTR: średnio +25% organic CTR po poprawnym wdrożeniu rich snippets na sklepie e-commerce. To 25% więcej kliknięć na tym samym ranking — czysta wartość, bez budżetu mediowego.

Anatomia poprawnego schema Product

Pełen schema Product w JSON-LD, ze wszystkimi rekomendowanymi polami:

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Łóżko tapicerowane Otello 160x200",
  "image": [
    "https://sklep.pl/wp-content/uploads/otello-1.jpg",
    "https://sklep.pl/wp-content/uploads/otello-2.jpg"
  ],
  "description": "Łóżko tapicerowane Otello z pojemnikiem...",
  "sku": "OTELLO-160-GREY",
  "gtin13": "5901234567890",
  "mpn": "OTL160G",
  "brand": {
    "@type": "Brand",
    "name": "Mebstyle"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://sklep.pl/lozko-otello-160/",
    "priceCurrency": "PLN",
    "price": "2499.00",
    "priceValidUntil": "2026-12-31",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition",
    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "applicableCountry": "PL",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "merchantReturnDays": 14
    },
    "shippingDetails": {
      "@type": "OfferShippingDetails",
      "shippingRate": {
        "@type": "MonetaryAmount",
        "value": 0,
        "currency": "PLN"
      },
      "shippingDestination": {
        "@type": "DefinedRegion",
        "addressCountry": "PL"
      }
    }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "23"
  }
}

Krytyczne pola (bez nich Google nie pokaże rich snippet): name, image, offers.price, offers.priceCurrency, offers.availability. Reszta opcjonalna, ale dodawanie znacząco poprawia jakość wyników.

Wdrożenie w WooCommerce — 3 ścieżki

Ścieżka 1: Yoast SEO + Yoast WooCommerce SEO (najprostsze)

Płatna wtyczka (~10 EUR/mc) — generuje schema Product automatycznie z danych WooCommerce. Plusy: zero kodu, działa out-of-the-box, aktualizuje się pod nowe wymagania Google. Minusy: ograniczona kontrola nad polami, czasem dodaje nadmiarowe pola, które konfliktują z innymi wtyczkami.

Ścieżka 2: RankMath Pro (popularne)

Bezpłatna wersja podstawowa, Pro ~30 USD/rok. Bardzo elastyczny schema generator — możesz dostosować każde pole. Plusy: świetne UI, bogata dokumentacja, dobre wsparcie WooCommerce. Minusy: dużo features, których nie używasz (zaśmieca admin).

Ścieżka 3: Własny kod w functions.php (max kontrola, brak overhead)

Dla zaawansowanych — własna funkcja PHP w functions.php motywu, która generuje schema na podstawie WC product:

add_action('wp_head', 'els_product_schema', 20);
function els_product_schema() {
  if (!is_product()) return;
  global $product;
  if (!$product) return;

  $schema = [
    '@context' => 'https://schema.org/',
    '@type' => 'Product',
    'name' => $product->get_name(),
    'sku' => $product->get_sku(),
    'description' => wp_strip_all_tags($product->get_short_description()),
    'image' => wp_get_attachment_url($product->get_image_id()),
    'offers' => [
      '@type' => 'Offer',
      'url' => get_permalink($product->get_id()),
      'priceCurrency' => get_woocommerce_currency(),
      'price' => $product->get_price(),
      'availability' => $product->is_in_stock()
        ? 'https://schema.org/InStock'
        : 'https://schema.org/OutOfStock',
    ],
  ];

  echo '';
}

Zalety: pełna kontrola, zero overhead z wtyczek. Wady: trzeba aktualizować przy zmianach wymagań Google, własna odpowiedzialność za poprawność.

Walidacja — czy Google widzi twój schema

Po wdrożeniu KONIECZNIE waliduj. Najczęstsze błędy: literówka w nazwie pola, brak waluty, pusta wartość, nieprawidłowe URL, podwójny schema na tej samej stronie (np. wtyczka + własny kod). Narzędzia:

  • Schema Markup Validator (validator.schema.org) — sprawdza zgodność z schema.org, bez warunków Google
  • Rich Results Test (search.google.com/test/rich-results) — pokazuje, czy Google widzi schema i czy zakwalifikuje do rich results. KRYTYCZNE narzędzie.
  • Google Search Console → Enhancements → Products — po 2–4 tygodniach od wdrożenia pokazuje, ile produktów ma poprawny schema, ile ma warnings, ile errors
  • SiteSpeed Insights — pokazuje schema preview obok metryk performance

Schema poza Product — czego jeszcze brakuje

  • BreadcrumbList na każdej stronie produktu — pokazuje hierarchy w SERP-ie (Strona główna > Sypialnia > Łóżka > Otello)
  • Organization + WebSite w head całej strony — pomaga w Knowledge Panel
  • LocalBusiness jeśli masz showroom — dla local SEO
  • FAQPage na stronach kategorii i pillarach — daje rozszerzone wyniki FAQ w SERP-ie
  • Article na blog postach — pokazuje thumbnail i datę publikacji
  • Review jako osobny markup do recenzji produktów (oprócz AggregateRating w Product)

Łączność schema z Google Merchant Center

Od 2023 Google używa schema z twojej strony jako uzupełnienie feedu w Merchant Center. Jeśli feed mówi, że produkt kosztuje 2 499 zł, a schema na stronie mówi 2 199 zł — Google flagi jako „price mismatch” w GMC. Może skutkować disapproval feedu albo, w skrajnym wypadku, suspension konta.

Reguła: schema na stronie i feed w Merchant Center muszą być spójne co do price, availability, GTIN, image. Najlepiej oba źródła ciągną dane z tej samej tabeli WooCommerce.

Pełen guide jak prowadzić feed produktowy — Google Merchant Center. Pełen pakiet SEO sklepu — SEO dla e-commerce.