Schema dla wydarzeń: jak wdrożyć dane strukturalne Event

Schema dla wydarzeń krok po kroku: wymagane pola Event, przykład JSON-LD, wydarzenia online, odwołane i przełożone, testy i najczęstsze błędy.

Schema dla wydarzeń: jak wdrożyć dane strukturalne Event

Schema dla wydarzeń to dane strukturalne typu Event, zwykle zapisane w formacie JSON-LD. Mówią wyszukiwarce, jak nazywa się Twoje wydarzenie, kiedy się odbywa, gdzie, czy odbędzie się zgodnie z planem i jak kupić bilet. Google opisuje ten typ w oficjalnej dokumentacji znaczników wydarzeń i zaznacza, że poprawne oznaczenie może zakwalifikować stronę do rozszerzonego wyniku, ale go nie gwarantuje. W tym poradniku pokazuję, które pola są obowiązkowe, jak wygląda gotowy kod dla wydarzenia w Polsce, jak oznaczyć webinar, wydarzenie odwołane albo przełożone, i gdzie najczęściej popełniane są błędy.

Marcinrezulak
marcinrezulak.pl
Zadbaj o widoczność strony wydarzenia
Marcin Rezulak tworzy strony internetowe, łącząc projektowanie, kodowanie i SEO, także z myślą o skutecznym pozyskiwaniu klientów.
Zobacz realizacje i ofertę

TL;DR

  • Minimum według Google to trzy elementy: name, startDate oraz location z nazwą obiektu i pełnym adresem.
  • Każde wydarzenie potrzebuje osobnej, indeksowalnej podstrony z unikalnym adresem URL. Jedna lista wydarzeń z kodem dla wszystkich to za mało.
  • Dane w schema muszą zgadzać się z tym, co widać na stronie: data, miejsce, cena biletu.
  • Gdy wydarzenie zostaje odwołane lub przełożone, nie usuwasz danych, tylko zmieniasz eventStatus i aktualizujesz daty.
  • Kod sprawdzasz w Teście wyników z elementami rozszerzonymi i w Schema Markup Validator, a potem monitorujesz w Google Search Console.

Czym jest schema Event i co realnie daje

Słownik Schema.org definiuje Event jako wydarzenie, które odbywa się w określonym czasie i miejscu, na przykład koncert, wykład lub festiwal. Ten sam model obsługuje organizatora, wykonawców, uczestników, pojemność sali, bilety, wydarzenia nadrzędne i podrzędne (np. konferencja i jej sesje) oraz harmonogram.

Google korzysta tylko z części tego słownika. Jeśli Twoja podstrona spełnia wymagania, wydarzenie może pojawić się w wyszukiwarce w formie rozszerzonej, z datą, miejscem i linkiem do biletów. Warto przy tym rozróżnić dwie rzeczy:

  1. Poprawność techniczną. Kod nie zawiera błędów i zawiera wymagane pola.
  2. Kwalifikację do wyniku rozszerzonego. Google sam decyduje, czy pokaże Twoje wydarzenie w specjalnej formie. Poprawny kod jest warunkiem koniecznym, ale nie wystarczającym.

Dane strukturalne nie są też sposobem na wyższą pozycję. Pomagają wyszukiwarce zrozumieć stronę i dają szansę na bardziej widoczny wynik, a o kliknięciu decyduje już sama podstrona: jasny termin, czytelny program i widoczny przycisk zakupu biletu.

Czy ten typ danych nadal ma sens? Tak. W czerwcu 2025 roku Google zapowiedział wycofanie siedmiu rzadziej używanych typów wyników rozszerzonych, m.in. Course Info, Claim Review i Special Announcement. Event nie znalazł się na tej liście i wciąż ma aktualną dokumentację w Centrum wyszukiwarki Google.

Pola wymagane i zalecane: co wpisać

Google dzieli właściwości na wymagane i zalecane. Bez wymaganych strona nie kwalifikuje się do wyniku rozszerzonego. Zalecane zwiększają kompletność informacji i to właśnie one zwykle odróżniają przeciętne wdrożenie od dobrego.

Właściwość Status Co wpisać Na co uważać
name wymagana Pełna nazwa wydarzenia Bez ceny, adresu i haseł typu „ostatnie bilety”
startDate wymagana Data i godzina w ISO 8601, np. 2026-11-21T19:00+01:00 Sama data bez godziny to słabsza informacja
location wymagana Place z name i pełnym address Nie tylko „Poznań”, lecz obiekt, ulica, kod, miasto, kraj
description zalecana Krótki opis programu Nie powtarzaj daty ani miejsca, mają własne pola
endDate zalecana Data i godzina zakończenia Ważne przy wydarzeniach wielodniowych
eventStatus zalecana EventScheduled, EventCancelled, EventPostponed, EventRescheduled Aktualizuj od razu po zmianie
eventAttendanceMode zalecana Offline, Online lub Mixed Kluczowe dla webinarów i wydarzeń hybrydowych
image zalecana Grafika przedstawiająca to wydarzenie Szerokość zalecana 1920 px, minimum 720 px
offers zalecana Cena, waluta, dostępność, link do zakupu Osobna oferta dla każdego rodzaju biletu
organizer zalecana Firma lub osoba organizująca Z adresem strony organizatora
performer zalecana Prelegent, zespół, artysta Tylko osoby faktycznie występujące

Kilka szczegółów z dokumentacji Google, które łatwo przeoczyć:

  • Obrazy powinny być dostępne do indeksowania i rzeczywiście pokazywać oznaczone wydarzenie. Google zaleca kilka proporcji: 16:9, 4:3 i 1:1, oraz obrazy o iloczynie szerokości i wysokości co najmniej 50 000 pikseli.
  • Dostępność biletów opisujesz wartościami takimi jak InStock, SoldOut lub PreOrder.
  • Nazwa to nazwa wydarzenia, nie nagłówek reklamowy. „Konferencja Marketing Poznań 2026” jest w porządku, „Konferencja Marketing, bilety od 149 zł, -20% do piątku” już nie.

Przykład JSON-LD dla wydarzenia stacjonarnego

Poniżej przykładowy kod dla fikcyjnej konferencji w Poznaniu. Nazwy, adres i cena są wyłącznie ilustracją, w Twoim kodzie muszą odpowiadać danym widocznym na stronie wydarzenia. Kod wklejasz w sekcji head lub body podstrony, w znaczniku script typu application/ld+json.

{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "Konferencja Sprzedaż B2B 2026",
  "description": "Jednodniowa konferencja o pozyskiwaniu klientów B2B: prelekcje, panel dyskusyjny i warsztaty.",
  "startDate": "2026-11-21T09:00+01:00",
  "endDate": "2026-11-21T17:00+01:00",
  "eventStatus": "https://schema.org/EventScheduled",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "location": {
    "@type": "Place",
    "name": "Centrum Konferencyjne Przykład",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "ul. Przykładowa 10",
      "addressLocality": "Poznań",
      "postalCode": "60-001",
      "addressCountry": "PL"
    }
  },
  "image": [
    "https://example.pl/img/konferencja-16x9.jpg",
    "https://example.pl/img/konferencja-4x3.jpg",
    "https://example.pl/img/konferencja-1x1.jpg"
  ],
  "offers": {
    "@type": "Offer",
    "name": "Bilet standardowy",
    "price": "149.00",
    "priceCurrency": "PLN",
    "availability": "https://schema.org/InStock",
    "validFrom": "2026-10-01T10:00+02:00",
    "url": "https://example.pl/konferencja-sprzedaz-b2b/bilety"
  },
  "organizer": {
    "@type": "Organization",
    "name": "Organizator Przykład sp. z o.o.",
    "url": "https://example.pl"
  },
  "performer": {
    "@type": "Person",
    "name": "Jan Kowalski"
  }
}

Zwróć uwagę na strefę czasową. Listopad w Polsce to czas zimowy, więc przesunięcie wynosi +01:00. Październikowy początek sprzedaży biletów wypada jeszcze w czasie letnim, stąd +02:00. To drobiazg, ale przy wydarzeniach o określonej godzinie lepiej podać go jawnie, niż liczyć na domysły wyszukiwarki.

Jeśli sprzedajesz kilka rodzajów biletów, na przykład wczesny, standardowy i VIP, właściwość offers może być tablicą z osobnym obiektem Offer dla każdego z nich. Każdy ma wtedy własną cenę, dostępność i adres zakupu.

Webinary i wydarzenia hybrydowe

Coraz więcej firm organizuje spotkania online albo łączy salę z transmisją. Schema.org przewiduje na to trzy tryby uczestnictwa:

  • OfflineEventAttendanceMode dla wydarzeń wyłącznie stacjonarnych,
  • OnlineEventAttendanceMode dla wydarzeń wyłącznie w internecie,
  • MixedEventAttendanceMode dla wydarzeń hybrydowych.

Przy webinarze location przyjmuje typ VirtualLocation z adresem URL, pod którym odbywa się transmisja lub rejestracja. Przy wydarzeniu hybrydowym location staje się tablicą: jeden element to Place z pełnym adresem sali, drugi to VirtualLocation z linkiem do streamu.

Praktyczna wskazówka: jeśli link do spotkania jest prywatny i wysyłasz go dopiero po rejestracji, w VirtualLocation podaj adres podstrony rejestracji. Nie publikuj w kodzie linku, którego nie chcesz pokazywać publicznie, bo dane strukturalne są widoczne dla każdego, kto zajrzy w źródło strony.

Wydarzenia odwołane, przełożone i cykliczne

W tym miejscu schema przestaje być jednorazowym zadaniem i staje się częścią codziennej obsługi wydarzenia. Google opisuje kilka sytuacji, które warto znać, zanim się wydarzą.

Wydarzenie odwołane

Zmieniasz eventStatus na EventCancelled. Nie usuwasz startDate ani location. Dzięki temu wyszukiwarka rozpoznaje, że chodzi o to samo wydarzenie, i może pokazać jego aktualny stan zamiast nieaktualnego terminu.

Wydarzenie przełożone bez nowej daty

Ustawiasz EventPostponed i zostawiasz pierwotną datę w startDate, dopóki nie znasz nowej. Na stronie wyraźnie informujesz uczestników o zmianie.

Nowy termin

Ustawiasz EventRescheduled, wpisujesz nowe startDate i endDate, a poprzedni termin możesz zachować w previousStartDate. Podstrona i jej adres URL pozostają te same.

Wydarzenia cykliczne

Jeśli organizujesz na przykład comiesięczne spotkania networkingowe, każdy termin najlepiej opisać jako osobny obiekt Event. Schema.org dopuszcza też właściwość eventSchedule, ale przy pojedynczych obiektach Event każdy termin ma własną datę, bilety i lokalizację, co ogranicza niejednoznaczność. Google dodatkowo wymaga, aby każde wydarzenie miało unikalny adres URL, więc przy cyklu warto zaplanować osobne podstrony dla poszczególnych edycji.

Separate event entries with their own details

Wdrożenie krok po kroku

Tak wygląda proces, który sprawdza się na polskich stronach firmowych, od małego warsztatu po wielodniową konferencję.

  1. Utwórz osobną podstronę dla każdego wydarzenia. Ma być dostępna dla robota Google: bez blokady w robots.txt, bez noindex, z treścią widoczną bez logowania.
  2. Przygotuj widoczne dane. Nazwa, data z godziną, adres, program, prelegenci, ceny biletów i przycisk zakupu muszą być na stronie w formie tekstu, nie tylko na grafice.
  3. Dodaj kod JSON-LD typu Event. Najlepiej generowany automatycznie z tych samych danych, które wyświetla strona. Wtedy zmiana daty w panelu zmienia ją jednocześnie w treści i w schema.
  4. Przetestuj kod. Test wyników z elementami rozszerzonymi od Google pokazuje, czy strona kwalifikuje się do wyniku rozszerzonego. Schema Markup Validator sprawdza poprawność względem całego słownika Schema.org.
  5. Opublikuj i poproś o indeksowanie. W Google Search Console możesz sprawdzić adres URL i zgłosić go do ponownego zindeksowania.
  6. Monitoruj. Search Console pokazuje raporty dotyczące danych strukturalnych, błędy i ostrzeżenia. Sprawdzaj je szczególnie po każdej zmianie szablonu strony.
  7. Aktualizuj status. Każda zmiana terminu, miejsca lub dostępności biletów to również zmiana w schema, tego samego dnia.

Jeśli Twoja strona działa na WordPressie, część wtyczek SEO generuje dane strukturalne automatycznie, ale zwykle obejmują one artykuły i strony, a nie wydarzenia z pełnym zestawem pól. W systemach pisanych pod konkretny proces dane Event można budować bezpośrednio z bazy wydarzeń, co eliminuje ręczne przepisywanie.

Najczęstsze błędy przy schema Event

Przy przeglądach stron organizatorów powtarza się kilka problemów. Większość z nich nie wynika z trudności technicznych, tylko z tego, że schema dodano na końcu, jako osobny dodatek.

  • Dane niezgodne z treścią. Kod mówi o 19:00, strona o 18:30. Albo cena w schema dotyczy biletu, którego już nie ma w sprzedaży. Google wymaga zgodności, a fikcyjne ceny lub terminy dodane tylko po to, by uzyskać wynik rozszerzony, są sprzeczne z wytycznymi.
  • Oznaczenie strony z listą wydarzeń zamiast podstron. Kalendarz z dziesięcioma wydarzeniami nie zastąpi dziesięciu podstron.
  • Sama nazwa miasta w location. „Warszawa” to za mało. Potrzebny jest obiekt, ulica, kod pocztowy i kraj.
  • Brak godziny w startDate. Data bez godziny utrudnia pokazanie wydarzenia w czytelnej formie.
  • Nieaktualny status. Wydarzenie odwołane tydzień temu, a w kodzie wciąż EventScheduled.
  • Obraz, który nie przedstawia wydarzenia. Logo firmy lub zdjęcie stockowe zamiast grafiki konkretnego eventu.
  • Opis z datą i adresem. Pole description służy do opisu programu, a termin i lokalizacja mają swoje właściwości.
  • Treść ładowana tylko przez JavaScript bez kontroli renderowania. Jeśli program i bilety pojawiają się dopiero po załadowaniu skryptu, sprawdź w narzędziu do testowania, czy Google widzi je tak samo jak użytkownik.

Jeśli nie masz pewności, ile z tych problemów dotyczy Twojej strony, dobrym punktem wyjścia jest audyt SEO strony, który obejmuje także dane strukturalne i indeksowanie podstron.

Jak projektuję strony wydarzeń z myślą o schema

Z mojego doświadczenia największą wartość daje nie sam znacznik, tylko aktualność danych. Schema Event dopisana ręcznie do gotowej strony działa do pierwszej zmiany terminu. Potem ktoś poprawia datę w treści, zapomina o kodzie i wyszukiwarka dostaje dwie sprzeczne informacje.

Dlatego projektuję podstronę wydarzenia razem z jej danymi strukturalnymi, w jednym procesie. Projekt, kod i SEO robię sam, więc nie ma momentu, w którym grafik oddaje makietę programiście, a programista zapomina o polach potrzebnych do SEO. Harmonogram, prelegenci, rodzaje biletów i status wydarzenia trafiają do panelu jako konkretne pola. Strona wyświetla je użytkownikowi, a ten sam zestaw danych zasila JSON-LD.

Jak projektuję strony wydarzeń z myślą o schema — overview diagram

Takie podejście ma jeszcze jedną zaletę. Model danych wydarzenia, z organizatorem, prelegentami, sesjami i ofertami, przydaje się nie tylko Google. Ten sam układ można wykorzystać w CRM, w aplikacji dla uczestników czy w eksporcie do kalendarza. Przykład takiego połączenia strony i panelu dla branży eventowej pokazuję w realizacji naevent, czyli strona i CRM dla marki aplikacji na eventy.

I ostatnia rzecz, o której mówię każdemu klientowi: poprawny kod nie zastąpi dobrej strony. Jeśli podstrona nie odpowiada od razu na pytania „kiedy, gdzie, ile kosztuje i jak się zapisać”, wynik rozszerzony najwyżej przyprowadzi więcej osób, które szybko z niej wyjdą.

— Marcin

Strona wydarzenia, która od razu działa w Google

Jeśli organizujesz konferencje, warsztaty albo cykliczne spotkania i chcesz, żeby każde wydarzenie miało własną, szybką podstronę z poprawnymi danymi strukturalnymi, mogę zaprojektować i wdrożyć ją od zera, bez szablonów. Zajmuję się stronami internetowymi z łatwym CMS, w którym zmiana daty czy statusu wydarzenia aktualizuje też schema. Jeśli masz już stronę i chcesz uporządkować jej widoczność w Google, zobacz, jak wygląda moje SEO techniczne i pozycjonowanie. Większe projekty, z rejestracją uczestników i panelem dla organizatora, realizuję jako aplikacje webowe.

FAQ

Czy schema Event poprawi pozycję mojej strony w Google?

Nie bezpośrednio. Dane strukturalne pomagają wyszukiwarce zrozumieć, o jakim wydarzeniu jest strona, i mogą zakwalifikować ją do rozszerzonego wyniku. Google nie gwarantuje jego wyświetlenia nawet przy poprawnym kodzie.

Które pola są absolutnie konieczne?

Według Google wymagane są trzy: name, startDate oraz location jako Place z nazwą obiektu i pełnym adresem. Przy wydarzeniu online location to VirtualLocation z adresem URL. Pozostałe pola, takie jak offers, image czy eventStatus, są zalecane i warto je dodać.

Czy mogę oznaczyć wydarzenie na stronie z listą wszystkich eventów?

Google oczekuje, że każde wydarzenie będzie miało własną podstronę z unikalnym adresem URL. Strona z listą może prowadzić do tych podstron, ale to na nich powinien znaleźć się pełny kod Event.

Co zrobić, gdy wydarzenie zostanie odwołane?

Zmień eventStatus na EventCancelled i zostaw pozostałe dane, w tym datę i miejsce. Nie usuwaj podstrony od razu, bo uczestnicy będą jej szukać, żeby potwierdzić odwołanie. Ta sama informacja powinna być wyraźnie widoczna w treści strony.

Jak sprawdzić, czy kod działa?

Użyj Testu wyników z elementami rozszerzonymi od Google, aby sprawdzić kwalifikację, oraz Schema Markup Validator do ogólnej poprawności. Po publikacji obserwuj raporty danych strukturalnych w Google Search Console.

Źródła

Rekomendacje

Potrzebujesz strony, która działa tak, jak opisuję?

Bezpłatna rozmowa, konkretna wycena w 24 h.

Porozmawiajmy

Czytaj dalej

Kolejne wpisy

Gotowy na współpracę?

Zbudujmy stronę, która pracuje na Twój biznes.

Bezpłatna rozmowa, konkretna wycena w 24 godziny. Opowiedz o projekcie, a powiem Ci, jak mogę pomóc. Bez zobowiązań.