Najważniejsze w 30 sekund:

  • Schema markup (mikrodane - oznaczenia w kodzie strony pomagające Google zrozumieć kontekst) to obowiązkowy element SEO strony internetowej i jednocześnie najczęściej pomijany w wycenach wykonawców. Strona z pełnym schema ma 20-40% wyższy CTR (Click-Through Rate, współczynnik klikalności) niż strona bez schemy - bo pojawia się w wynikach jako rich snippet (wzbogacony wynik z gwiazdkami, godzinami, cenami widocznymi w SERP).
  • 5 typów schema kluczowych dla lokalnej firmy w 2026: LocalBusiness (nazwa firmy, adres, telefon, godziny), Service per usługa (3-8 sztuk), FAQPage (najczęstsze pytania klientów), Person (autor strony z biogramem, E-E-A-T), Review (opinie klientów). Każdy z 5 ma konkretny szablon JSON-LD do skopiowania niżej.
  • FAQPage schema daje +30% wzrost cytowań w AI Search według raportów branżowych 2025/2026. To jednocześnie najprostsza schema do wdrożenia - 15-30 minut konfiguracji daje efekt widoczny w 4-8 tygodni.
  • Format JSON-LD (zalecany przez Google) wkleja się w <head> strony jako <script type="application/ld+json">. Można też wdrożyć przez wtyczki WordPress (Yoast SEO, Rank Math, WPSSO Core), ale gotowy kod JSON-LD daje większą kontrolę i lepszą jakość niż wtyczki generyczne.
  • Najczęstszy błąd przy schema markup: niezgodność danych w schemie z rzeczywistymi danymi na stronie. Przykład: NIP firmy w schemie 1234567890, na stronie 0987654321 - skutek to filtr ręczny od Google za “Spammy Structured Data”. Schema musi 1:1 odzwierciedlać widoczne dane.

Schema markup to “darmowy upgrade” pozycji w Google, którego nie da się obejść w 2026. Strona bez schemy nie pojawia się w rich snippets (gwiazdki, godziny otwarcia, ceny widoczne w SERP), nie jest cytowana w AI Search (ChatGPT, Perplexity), traci 20-40% CTR z pozycji 1-5. Ten poradnik daje 5 gotowych przykładów JSON-LD do skopiowania, narzędzia walidacji i praktyczny przewodnik wdrożenia.

Pracuję z lokalnymi firmami usługowymi od 4 lat. Schema markup wdrażam w każdym projekcie DamWeb od pierwszej publikacji - bo to jedna z najtańszych inwestycji z najwyższym zwrotem. Konkretne szablony JSON-LD poniżej to wzory używane w realnych projektach.

Aktualizacja: maj 2026.


Co to schema markup i jak wpływa na SEO strony internetowej?

Format zalecany w 2026 to JSON-LD (JavaScript Object Notation for Linked Data, format danych strukturalnych w JavaScript) - wklejasz go w <head> strony jako <script>. Schema dla SEO strony internetowej działa pośrednio: nie podnosi pozycji bezpośrednio, ale zwiększa CTR z SERP o 20-40% (przez rich snippets) i podnosi cytowalność w AI Search.

Bez schema Google widzi twoją stronę jako ciąg tekstu, z którego musi sam wywnioskować, że “Kancelaria Adwokacka Kowalski” to firma prawnicza, “Warszawa, ul. Marszałkowska 1” to adres, “Pn-Pt 9-17” to godziny. Z schema dostaje konkretne pola: name, address, openingHours, priceRange - bez interpretacji.

Trzy realne korzyści schema markup w 2026:

Rich snippets w wynikach Google. Strona z LocalBusiness schema pokazuje godziny otwarcia bezpośrednio w SERP, strona z Review schema - gwiazdki ocen, strona ze schema Product - cenę. CTR z pozycji 1-5 dla strony z rich snippets jest 20-40% wyższy niż dla strony bez (badania Mozcast, 2025).

Cytowalność w AI Search. ChatGPT, Perplexity, Google AI Overview cytują strony z dobrze strukturyzowanym schema częściej niż strony bez. FAQPage schema daje +30% cytowań według Frase i WPRiders raportów 2026. Pełny rozkład optymalizacji pod AI Search w poradniku o stronie pod AI Search.

Lepsze umiejscowienie w pakiecie lokalnym (Google Maps). Schema LocalBusiness pomaga Google połączyć stronę z profilem Google Moja Firma - co decyduje o pozycji w “3-paku lokalnym” (3 firmy pokazywane nad organicznymi wynikami dla zapytań z miastem).


Schema 1: LocalBusiness - dla każdej lokalnej firmy

LocalBusiness to obowiązkowy schema dla każdej lokalnej firmy usługowej. Zawiera nazwę firmy, adres, telefon, godziny otwarcia, zakres cen.

Gotowy kod JSON-LD do skopiowania:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "@id": "https://twojadomena.pl/#organization",
  "name": "Twoja Nazwa Firmy",
  "description": "Krótki opis firmy w 1-2 zdaniach (cel, główna usługa, dla kogo).",
  "url": "https://twojadomena.pl/",
  "telephone": "+48 600 700 800",
  "email": "kontakt@twojadomena.pl",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "ul. Przykładowa 1",
    "addressLocality": "Warszawa",
    "postalCode": "00-001",
    "addressRegion": "Mazowieckie",
    "addressCountry": "PL"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": "52.2297",
    "longitude": "21.0122"
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "09:00",
      "closes": "17:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "10:00",
      "closes": "14:00"
    }
  ],
  "priceRange": "$$",
  "image": "https://twojadomena.pl/logo.jpg",
  "sameAs": [
    "https://www.facebook.com/twojaFirma",
    "https://www.instagram.com/twojaFirma",
    "https://www.linkedin.com/company/twojaFirma"
  ]
}
</script>

Co podmienić:

  • name - dokładna nazwa firmy (zgodna z KRS/CEIDG)
  • telephone - numer w formacie międzynarodowym +48...
  • address - pełen adres (Twoja Firma w Krakowie ma addressLocality: "Kraków")
  • geo - współrzędne geograficzne (znajdź na Google Maps: prawym przyciskiem na markerze > “Co to za miejsce”)
  • openingHoursSpecification - godziny otwarcia (1 obiekt per blok godzin - np. osobno Pn-Pt i Sob)
  • priceRange - 1 do 4 znaków $ ($ = budżet, $$ = średnio, $$$ = drogo, $$$$ = luksusowy)
  • sameAs - linki do profili social media firmy

Wariant dla branż specjalistycznych:

Zamiast generycznego LocalBusiness użyj bardziej specyficznych typów:

  • Dentist dla gabinetu dentystycznego
  • LegalService dla kancelarii prawnej
  • MedicalBusiness dla kliniki medycznej
  • Restaurant dla restauracji
  • HairSalon dla salonu fryzjerskiego
  • RealEstateAgent dla biura nieruchomości

Pełna lista 200+ typów na schema.org/LocalBusiness.


Schema 2: Service - dla każdej oferowanej usługi

Schema Service tworzy się osobno dla każdej kluczowej usługi firmy. Dla kancelarii prawnej z 5 specjalizacjami - 5 osobnych Service schema.

Gotowy kod JSON-LD:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Service",
  "name": "Audyt SEO strony internetowej",
  "description": "Pełen audyt 47-punktowy techniczny i SEO strony WordPress dla małej firmy lokalnej.",
  "provider": {
    "@type": "LocalBusiness",
    "@id": "https://twojadomena.pl/#organization"
  },
  "serviceType": "SEO Audit",
  "areaServed": {
    "@type": "City",
    "name": "Warszawa"
  },
  "offers": {
    "@type": "Offer",
    "priceCurrency": "PLN",
    "price": "1500",
    "priceSpecification": {
      "@type": "PriceSpecification",
      "minPrice": "1500",
      "maxPrice": "2800",
      "priceCurrency": "PLN"
    },
    "availability": "https://schema.org/InStock"
  },
  "url": "https://twojadomena.pl/uslugi/audyt-seo/"
}
</script>

Co podmienić:

  • name - nazwa konkretnej usługi (np. “Operacja zaćmy metodą fakoemulsyfikacji”)
  • description - 1-2 zdania opisu (ten sam tekst, co masz na podstronie usługi)
  • provider.@id - powiązanie do LocalBusiness schema z punktu wyżej (ten sam @id)
  • serviceType - kategoria po angielsku (Google używa do klasyfikacji)
  • areaServed - miasto/region obsługi
  • offers.price i priceSpecification.minPrice/maxPrice - cena albo widełki cen
  • url - link do podstrony tej usługi

Praktyczna zasada: umieszczaj Service schema na podstronie konkretnej usługi (/uslugi/audyt-seo/), nie na stronie głównej. LocalBusiness schema umieszczasz na stronie głównej i powtarzasz w stopce każdej podstrony.


Schema 3: FAQPage - najwyższy zwrot z inwestycji

FAQPage to schema najtańsza do wdrożenia (15-30 minut) i z najwyższym zwrotem (+30% cytowań w AI Search według Frase 2026). Każda podstrona z sekcją FAQ powinna mieć osobne FAQPage schema.

Gotowy kod JSON-LD:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Ile kosztuje audyt strony internetowej?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Pełen audyt strony internetowej w 2026 kosztuje 800-2800 zł netto za raport z 30-50 punktami i mapą działań. Cena zależy od liczby podstron i złożoności strony."
      }
    },
    {
      "@type": "Question",
      "name": "Jak długo trwa audyt strony?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Audyt strony firmowej trwa 4-8 godzin solo albo 6-12 godzin u specjalisty. Raport otrzymujesz w 3-5 dni roboczych od zlecenia."
      }
    },
    {
      "@type": "Question",
      "name": "Czy mogę zrobić audyt sam?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Pierwszych 20-25 punktów z checklisty 47-punktowej - tak, jeśli umiesz obsługiwać przeglądarkę i panel WordPress. Pozostałe wymagają wiedzy technicznej."
      }
    }
  ]
}
</script>

Co podmienić:

  • mainEntity - lista pytań i odpowiedzi (możesz mieć 3-15 pytań)
  • Question.name - dokładnie ten sam tekst pytania, co masz na stronie w nagłówku H3
  • acceptedAnswer.text - dokładnie ta sama odpowiedź, co masz na stronie

Krytyczna zasada: FAQPage schema musi 1:1 odzwierciedlać widoczną treść strony. Jeśli w schema masz 5 pytań, a na stronie 3 - Google traktuje to jako “Spammy Structured Data” i nakłada filtr.

Realny wpływ FAQPage:

  • Rich snippet “akordeon FAQ” w wynikach Google (rozszerza twoją pozycję wizualnie 2-3 razy)
  • +30% cytowań w AI Search (ChatGPT, Perplexity)
  • Wyższy CTR z pozycji 1-3 (klient widzi odpowiedź przed kliknięciem)
  • Wpływ na pozycję: pośredni (FAQ schema nie podnosi pozycji bezpośrednio, działa przez wyższy CTR)

Schema 4: Person - dla autora strony i E-E-A-T

Person schema buduje sygnały E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness - doświadczenie, ekspertyza, autorytet, zaufanie). Google używa E-E-A-T do oceny strony - szczególnie dla branż YMYL (Your Money Your Life: finanse, medycyna, prawo).

Gotowy kod JSON-LD:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Person",
  "@id": "https://twojadomena.pl/#author",
  "name": "Imię Nazwisko",
  "givenName": "Imię",
  "familyName": "Nazwisko",
  "jobTitle": "Adwokat",
  "description": "Adwokat z 12-letnim doświadczeniem w prawie gospodarczym. Specjalizacja: spory podatkowe, RODO, e-commerce.",
  "url": "https://twojadomena.pl/o-mnie/",
  "image": "https://twojadomena.pl/zdjecia/foto-autora.jpg",
  "sameAs": [
    "https://www.linkedin.com/in/imie-nazwisko",
    "https://orcid.org/0000-0000-0000-0000"
  ],
  "alumniOf": {
    "@type": "EducationalOrganization",
    "name": "Uniwersytet Warszawski - Wydział Prawa i Administracji"
  },
  "memberOf": {
    "@type": "Organization",
    "name": "Okręgowa Rada Adwokacka w Warszawie"
  },
  "worksFor": {
    "@type": "LocalBusiness",
    "@id": "https://twojadomena.pl/#organization"
  }
}
</script>

Co podmienić:

  • name, givenName, familyName - dokładne dane personalne
  • jobTitle - tytuł zawodowy (Lekarz, Adwokat, Doktor Nauk Medycznych)
  • description - 1-2 zdania o doświadczeniu i specjalizacji
  • image - link do profesjonalnego zdjęcia portretowego
  • sameAs - linki do LinkedIn (kluczowe), ORCID dla naukowców, profilu zawodowego (np. Adwokatura.pl, NIL.org.pl dla lekarzy)
  • alumniOf - uczelnia, którą kończyłeś
  • memberOf - izba zawodowa albo stowarzyszenie branżowe

Krytyczne dla branż YMYL:

  • Lekarz: dodaj memberOf z Okręgową Izbą Lekarską, ewentualnie specjalizacją (hasOccupation)
  • Adwokat: memberOf z Okręgową Radą Adwokacką
  • Radca prawny: memberOf z Okręgową Izbą Radców Prawnych
  • Architekt: memberOf z Okręgową Izbą Architektów

Brak schema Person dla branż YMYL = trudność z rankingiem dla 50% fraz. Najszybsza dźwignia do podniesienia E-E-A-T.


Schema 5: Review - opinie klientów

Schema Review pokazuje gwiazdki ocen w wynikach Google. Strona z 4+ gwiazdkami w SERP ma 15-30% wyższy CTR niż strona bez gwiazdek (badania CompariSEO, 2025).

Gotowy kod JSON-LD - agregowane oceny:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "@id": "https://twojadomena.pl/#organization",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "147",
    "bestRating": "5",
    "worstRating": "1"
  },
  "review": [
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Anna K."
      },
      "datePublished": "2026-03-15",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5",
        "bestRating": "5"
      },
      "reviewBody": "Profesjonalna obsługa, szybka realizacja. Polecam każdemu, kto szuka rzetelnej firmy."
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Tomasz W."
      },
      "datePublished": "2026-02-22",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5",
        "bestRating": "5"
      },
      "reviewBody": "Współpraca przebiegała bez zarzutu, efekt zgodny z oczekiwaniami."
    }
  ]
}
</script>

Co podmienić:

  • aggregateRating.ratingValue - średnia ocen (z prawdziwych opinii)
  • aggregateRating.reviewCount - liczba opinii
  • review - tablica 2-5 najlepszych opinii z konkretną treścią

Krytyczna zasada Google: Review schema musi pokazywać tylko opinie, które są widoczne na Twojej stronie. Nie możesz dodać do schema 50 opinii, jeśli na stronie pokazujesz 3. Google sprawdza zgodność i karze za niezgodność.

Skąd brać opinie:

  • Google Moja Firma - eksportuj opinie i powiel na stronie
  • Facebook recenzje
  • Booksy/Calendly dla branży beauty/health
  • Strony branżowe (Booking, ZnanyLekarz, Rankinglekarzy.pl)
  • Bezpośrednie maile od klientów (z ich zgodą RODO)

Najczęstszy błąd: wymyślanie opinii. Google ma narzędzia do detekcji fake reviews - kara to filtr ręczny “Spammy Structured Data” i utrata całej widoczności w SERP.


Jak wdrożyć schema markup na stronie WordPress?

Trzy ścieżki w 2026, w kolejności jakości:

Ścieżka 1: Ręczne wklejenie JSON-LD w nagłówek. Najlepsza kontrola, najwyższa jakość. Skopiuj kod z poradnika, wklej w <head> strony przez wtyczkę typu Insert Headers and Footers albo bezpośrednio w pliku header.php motywu. Czas wdrożenia: 30-60 minut per podstrona. Zaleta: pełna kontrola, idealnie dostosowane do treści. Wada: wymaga ostrożności (błąd JSON-LD generuje błąd schema validator).

Ścieżka 2: Płatne wtyczki SEO. Yoast SEO Premium, Rank Math Pro, WPSSO Core - generują schema automatycznie na podstawie konfiguracji w panelu. Czas konfiguracji: 1-3 godziny dla całej strony. Zaleta: szybkie wdrożenie, brak ryzyka błędu syntaktycznego. Wada: generyczne schema, mniejsza kontrola nad detalami (np. precyzyjne pola Person dla E-E-A-T).

Ścieżka 3: Dedykowane wtyczki schema. SchemaPro, All In One Schema Rich Snippets. Bardziej zaawansowane niż wtyczki SEO ogólne. Czas wdrożenia: 2-4 godziny. Zaleta: rozbudowane typy schema. Wada: dodatkowy koszt (200-400 zł/rok), dodatkowy plugin do utrzymania.

Praktyczna rekomendacja: ścieżka 1 (ręczne JSON-LD) dla 5 najważniejszych podstron (główna, najważniejsze usługi), ścieżka 2 (Yoast/Rank Math) dla pozostałych podstron i bloga. To kombinacja jakości i efektywności.


Jak sprawdzić czy schema markup działa poprawnie?

Po wdrożeniu schema sprawdź w dwóch narzędziach.

Schema.org Validator (validator.schema.org) - oficjalne narzędzie weryfikacji składni JSON-LD. Wklejasz URL strony albo kod, dostajesz listę błędów i ostrzeżeń. Cel: 0 błędów (warnings akceptowalne dla pól opcjonalnych).

Google Rich Results Test (search.google.com/test/rich-results) - sprawdza, czy schema jest uznawana przez Google jako kwalifikująca do rich results. Wklejasz URL, dostajesz preview pokazujący, jak strona będzie wyglądać w SERP (gwiazdki, godziny, FAQ accordion).

Po publikacji schema sprawdzaj w Google Search Console pod “Doświadczenia > Ulepszenia” - widzisz, ile podstron ma wykrytą schemę i ile ma błędy.

Realny czas od wdrożenia do efektu w SERP: 4-8 tygodni. Google musi przecrawlować stronę, zindeksować schema, zdecydować o pokazaniu rich snippet. Wcześniej widać tylko walidację w Search Console.


FAQ - najczęstsze pytania o schema markup

Czy schema markup jest obowiązkowy?

Technicznie nie - strona działa bez schemy. Praktycznie tak, bo brak schemy oznacza 20-40% niższy CTR z pozycji 1-5, brak cytowań w AI Search i 5-15 miejsc niższą pozycję w branżach średnio konkurencyjnych. Schema to inwestycja 800-1500 zł jednorazowo ze zwrotem w 4-8 tygodni.

Czy mogę wdrożyć schema bez znajomości technicznej?

Dla podstawowych typów (LocalBusiness, FAQPage) - tak, używając wtyczek Yoast SEO Premium albo Rank Math Pro. Dla zaawansowanych (Person z pełnym E-E-A-T, Review z konkretnymi opiniami) - potrzebujesz albo specjalisty, albo cierpliwości do nauki przez 4-8 godzin tutoriali.

Czy schema markup wpływa bezpośrednio na pozycję w Google?

Nie ma bezpośredniego “boost” pozycji za schemę. Schema wpływa pośrednio przez 3 mechanizmy: wyższy CTR (Google ocenia strony z wyższym CTR jako bardziej trafne), lepsze rich snippets (zajmują więcej miejsca w SERP), wyższe E-E-A-T (przez Person schema). Realny efekt na ranking: 5-15 miejsc dla średnio konkurencyjnych fraz.

Co jeśli mam wtyczkę SEO, która już generuje schemę?

Sprawdź w Schema.org Validator co dokładnie generuje. Wtyczki generyczne tworzą podstawowe schema (Organization, WebPage, Article) bez konkretów. Realne wzbogacenie wymaga ręcznego JSON-LD dla LocalBusiness z dokładnym adresem, godzinami, koordynatami. Nie ma konfliktu między wtyczką a ręcznym JSON-LD - mogą współistnieć.

Czy schema dla mojej branży istnieje?

Prawdopodobnie tak. Schema.org ma 200+ typów - od Dentist przez ChildCare po RoofingContractor. Sprawdź na schema.org/docs/full.html. Jeśli specyficzny typ nie istnieje, użyj LocalBusiness z polem category jako fallback.

Co jeśli moje opinie są na Google Moja Firma, nie na stronie?

Schema Review wymaga, żeby opinie były widoczne na stronie. Skopiuj 5-10 najlepszych opinii z Google Moja Firma na stronę “Opinie” albo do widgetu na stronie głównej. Wtedy możesz dodać Review schema, które te opinie odzwierciedla. Niedopuszczalne: dodawanie do schemy opinii, których nie ma na stronie.

Jak często aktualizować schema markup?

Schema LocalBusiness aktualizuj przy każdej zmianie godzin otwarcia, adresu, telefonu. Schema FAQPage co 3-6 miesięcy (dodawanie nowych pytań). Schema Review co miesiąc (dokładać nowe opinie). Schema Person co 6-12 miesięcy (aktualizacja biogramu, dodanie nowych członkostw).


Co teraz - wdróż 3 najważniejsze schemy w 1 wieczór

Trzy najważniejsze schemy do wdrożenia w 90 minut:

Krok 1 (30 minut): LocalBusiness na stronie głównej. Skopiuj kod z sekcji wyżej, podmień dane Twojej firmy, dodaj koordynaty z Google Maps, wklej w <head> przez wtyczkę Insert Headers and Footers.

Krok 2 (30 minut): FAQPage na podstronie z FAQ (albo na stronie głównej, jeśli masz tam FAQ). Skopiuj kod, dodaj 5-10 pytań z konkretną odpowiedzią. Pytania muszą być takie same, jak masz na stronie - nie wymyślaj.

Krok 3 (30 minut): Person schema na podstronie “O mnie/O firmie”. Dodaj swój biogram, link do LinkedIn, członkostwa zawodowe (jeśli branża YMYL).

Po wklejeniu wszystkich 3 schem sprawdź w schema.org/validator. 0 błędów = sukces. Po 4-8 tygodniach sprawdź Google Search Console pod “Ulepszenia” - powinieneś zobaczyć “Witryny z poprawnymi danymi strukturalnymi”.

W moich projektach DamWeb schema markup pełny (LocalBusiness + Service per usługa + FAQPage + Person + Review) jest standardową częścią pakietu “Strona firmowa” od 3000 zł. Bez dopłat. Jeśli chcesz konsultacji co konkretnie wdrożyć dla Twojej branży, napisz na kontakt.

Sprawdź też

Sprawdzimy twoją widoczność za darmo

30-minutowa rozmowa, konkretny audyt wizytówki i strony. Bez zobowiązań.

Umów rozmowę