Jak poprawnie wdrożyć dane strukturalne (schema.org) w WordPressie

Dane strukturalne to sposób, w jaki możemy pomóc wyszukiwarkom (takim jak Google) lepiej zrozumieć zawartość naszej strony.
Dzięki nim Google może wyświetlać tzw. rich snippets — rozszerzone wyniki wyszukiwania z ocenami, datą publikacji, przepisem, FAQ czy ceną produktu.

W tym artykule pokażę Ci, jak poprawnie wdrożyć schema.org w WordPressie, zarówno ręcznie, jak i przy użyciu motywu lub własnego kodu PHP.


1. Czym są dane strukturalne (schema.org)

Schema.org to otwarty standard opracowany przez Google, Microsoft, Yahoo i Yandex.
Pozwala oznaczać elementy strony w formacie JSON-LD, Microdata lub RDFa, aby wyszukiwarki wiedziały, że np.:

  • name to tytuł artykułu,
  • author to autor,
  • datePublished to data publikacji,
  • aggregateRating to ocena produktu,
  • recipeIngredient to składnik przepisu.

Dzięki temu Google może wyświetlać wyniki z dodatkowymi informacjami, co zwiększa CTR (click-through rate) nawet o kilkadziesiąt procent.


2. Jak sprawdzić, czy WordPress już ma dane strukturalne

Wiele nowoczesnych motywów (np. Astra, GeneratePress, Blocksy) oraz wtyczek SEO (np. Yoast SEO, Rank Math) już generuje podstawowe dane strukturalne automatycznie.

Aby to sprawdzić:

  1. Wejdź na Rich Results Test.
  2. Wklej adres swojej strony lub fragment kodu HTML.
  3. Sprawdź, jakie typy danych są wykryte (Article, WebPage, Product, BreadcrumbList itd.).

Jeśli wynik pokazuje błędy lub braki, możesz je uzupełnić ręcznie.


3. Najlepszy format: JSON-LD

Google zaleca, aby dane strukturalne były dodawane w formacie JSON-LD, czyli skryptu w sekcji <head> strony:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Jak poprawnie wdrożyć dane strukturalne w WordPressie",
  "author": {
    "@type": "Person",
    "name": "Jan Kowalski"
  },
  "datePublished": "2025-10-17",
  "publisher": {
    "@type": "Organization",
    "name": "Twoja Firma",
    "logo": {
      "@type": "ImageObject",
      "url": "https://twojastrona.pl/logo.png"
    }
  }
}
</script>

Taki kod można dodać do motywu, wtyczki lub przez wp_head() w funkcjach WordPressa.


4. Dodanie danych strukturalnych ręcznie (functions.php)

Najprostszy sposób to wklejenie kodu JSON-LD w plik functions.php Twojego motywu:

add_action( 'wp_head', 'pp_add_article_schema' );

function pp_add_article_schema() {
    if ( is_single() ) {
        global $post;
        $author_name = get_the_author_meta( 'display_name', $post->post_author );
        $date = get_the_date( 'Y-m-d', $post );
        $title = get_the_title( $post );
        $url = get_permalink( $post );
        ?>
        <script type="application/ld+json">
        {
          "@context": "https://schema.org",
          "@type": "Article",
          "headline": "<?php echo esc_js( $title ); ?>",
          "author": {
            "@type": "Person",
            "name": "<?php echo esc_js( $author_name ); ?>"
          },
          "datePublished": "<?php echo esc_js( $date ); ?>",
          "mainEntityOfPage": {
            "@type": "WebPage",
            "@id": "<?php echo esc_url( $url ); ?>"
          }
        }
        </script>
        <?php
    }
}

Ten kod automatycznie generuje dane strukturalne dla każdego wpisu WordPressa.


5. Dodawanie danych schema.org dla produktów (WooCommerce)

Jeśli korzystasz z WooCommerce, dane schema.org często są już wbudowane.
Jeżeli jednak chcesz dodać własne (np. do niestandardowego motywu), możesz to zrobić tak:

add_action( 'wp_head', 'pp_add_product_schema' );

function pp_add_product_schema() {
    if ( is_product() ) {
        global $product;
        ?>
        <script type="application/ld+json">
        {
          "@context": "https://schema.org",
          "@type": "Product",
          "name": "<?php echo esc_js( $product->get_name() ); ?>",
          "image": "<?php echo esc_url( wp_get_attachment_url( $product->get_image_id() ) ); ?>",
          "description": "<?php echo esc_js( wp_strip_all_tags( $product->get_description() ) ); ?>",
          "sku": "<?php echo esc_js( $product->get_sku() ); ?>",
          "offers": {
            "@type": "Offer",
            "priceCurrency": "<?php echo esc_js( get_woocommerce_currency() ); ?>",
            "price": "<?php echo esc_js( $product->get_price() ); ?>",
            "availability": "https://schema.org/<?php echo $product->is_in_stock() ? 'InStock' : 'OutOfStock'; ?>"
          }
        }
        </script>
        <?php
    }
}

Dzięki temu Twoje produkty będą poprawnie oznaczone dla wyszukiwarek i mogą pojawić się w Google Shopping.


6. Najczęstsze błędy w danych strukturalnych

ProblemPrzyczynaRozwiązanie
„Missing field ‘author’”Brak autora w JSON-LDDodaj pole author
„Invalid URL in field ‘logo’”Niepoprawny adres grafikiUżyj pełnego URL z https://
„Duplicate schema types”Wtyczka SEO i motyw dodają te same daneWyłącz dane schema w jednej z nich
„Unparsable structured data”Błąd składni JSONSprawdź kod w Google Structured Data Testing Tool

7. Testowanie wdrożenia

Po dodaniu schema.org zawsze sprawdź poprawność kodu:

Zwróć uwagę na komunikaty typu „Valid with warnings” – nie zawsze oznaczają błąd, ale mogą sugerować brak opcjonalnych danych.


8. Rozszerzanie schema.org o dodatkowe typy

W zależności od rodzaju strony możesz zastosować różne typy danych:

Typ schemaZastosowanie
Articleblog, news
Productsklep internetowy
Recipeprzepisy kulinarne
Eventwydarzenia, koncerty
FAQPagesekcje FAQ
LocalBusinessfirmy lokalne
Reviewopinie użytkowników

Możesz też łączyć różne typy w jednym dokumencie JSON-LD.


9. Automatyzacja danych strukturalnych

Jeśli nie chcesz dodawać kodu ręcznie, możesz:

  • użyć wtyczki Yoast SEO lub Rank Math, które generują schema automatycznie,
  • dodać własne filtry i pola ACF, by dane schema pobierały się z metadanych,
  • stworzyć własny plugin, który dodaje różne typy schema w zależności od post type’u.

10. Podsumowanie

Dane strukturalne (schema.org) są jednym z najważniejszych elementów technicznego SEO.
Pomagają wyszukiwarkom zrozumieć Twoją treść, a Tobie — zyskać lepsze pozycje i wyższy CTR.

Wdrożenie schema.org w WordPressie jest proste — wystarczy kilka linijek kodu lub konfiguracja w wtyczce SEO.
Kluczem jest jednak testowanie i walidacja po każdej zmianie.

KROK 1 Z 4

Z CZYM POTRZEBUJESZ POMOCY?