Dane strukturalne pomagają wyszukiwarkom jednoznacznie rozpoznać, czym są treści, osoby, firmy, produkty i inne obiekty opisane na stronie. Prawidłowe wdrożenie może zwiększyć szansę na uzyskanie rozszerzonego wyniku wyszukiwania, ale nie zastąpi dobrej treści, indeksowalności ani jakości serwisu.
Po lekturze zrozumiesz, jak działa Schema.org, które typy danych wybrać, jak budować graf encji w JSON-LD, testować wdrożenie i unikać błędów prowadzących do utraty rich results.
Czym są dane strukturalne Schema.org?
Dane strukturalne to informacje zapisane w formacie zrozumiałym dla maszyn. Opisują znaczenie elementów strony oraz relacje między nimi, na przykład:
- kto jest autorem artykułu,
- jaka organizacja publikuje treść,
- który produkt jest przedmiotem oferty,
- ile kosztuje produkt i czy jest dostępny,
- gdzie znajduje się firma,
- jakie pytania i odpowiedzi zawiera strona,
- jaki obiekt jest głównym tematem dokumentu.
Schema.org jest współdzielonym słownikiem typów i właściwości wykorzystywanym między innymi przez wyszukiwarki. Definiuje pojęcia takie jak Organization, Person, Article, Product, Offer, Event czy LocalBusiness oraz właściwości opisujące ich cechy i powiązania.
Przykładowo:
Productoznacza produkt,nameokreśla jego nazwę,brandwskazuje markę,offersłączy produkt z ofertą,priceopisuje cenę,availabilityinformuje o dostępności.
Dane te można zapisać w kodzie strony, najczęściej za pomocą JSON-LD.
Czym dane strukturalne nie są?
Dane strukturalne bywają mylone z innymi elementami technicznego SEO. Warto wyznaczyć granice tematu.
Schema.org nie jest:
- osobnym czynnikiem gwarantującym wyższą pozycję,
- zamiennikiem treści widocznej dla użytkownika,
- sposobem na wymuszenie rozszerzonego wyniku wyszukiwania,
- plikiem
sitemap.xml, - metadanymi Open Graph używanymi głównie w mediach społecznościowych,
- klasycznym meta tagiem
keywords, - znacznikiem HTML poprawiającym sam wygląd strony,
- mechanizmem rozwiązującym problemy z indeksowaniem.
Dane strukturalne opisują znaczenie treści. Nie sprawią jednak, że zablokowana, błędna albo niskiej jakości strona automatycznie zacznie pojawiać się w wyszukiwarce.
Schema.org, dane strukturalne i rich results – najważniejsze różnice
Pojęcia te są ze sobą powiązane, ale nie oznaczają tego samego.
| Pojęcie | Znaczenie |
|---|---|
| Dane strukturalne | Sposób zapisu informacji w formie czytelnej dla maszyn |
| Schema.org | Słownik typów, właściwości i relacji używanych w danych strukturalnych |
| JSON-LD | Format, w którym można osadzić dane strukturalne |
| Rich results | Rozszerzone wyniki wyszukiwania, np. wynik produktu z ceną |
| Graf encji | Sieć obiektów i relacji między nimi |
| Walidacja | Sprawdzenie składni oraz zgodności danych z wymaganiami |
| Encja | Jednoznacznie rozpoznawalny obiekt, np. firma, osoba, produkt lub artykuł |
Strona może mieć poprawne dane Schema.org, ale nie kwalifikować się do rich result. Dzieje się tak, gdy wyszukiwarka nie obsługuje danego typu w wynikach rozszerzonych albo strona nie spełnia dodatkowych wytycznych.
Możliwa jest również sytuacja odwrotna: wyszukiwarka rozumie część treści bez danych strukturalnych, ale jawne oznaczenie encji zmniejsza niejednoznaczność i ułatwia przetwarzanie informacji.
Jak działają dane strukturalne?
Wyszukiwarka pobiera kod strony i analizuje znajdujące się w nim informacje. Jeżeli wykryje dane strukturalne, może:
- rozpoznać typ opisywanego obiektu,
- odczytać jego właściwości,
- połączyć go z innymi encjami,
- sprawdzić zgodność danych z widoczną treścią,
- ocenić kwalifikację strony do określonego wyniku rozszerzonego,
- wykorzystać informacje do lepszego zrozumienia witryny.
Przykładowa relacja może wyglądać następująco:
- organizacja publikuje serwis,
- serwis zawiera stronę internetową,
- strona zawiera artykuł,
- artykuł ma autora,
- autor jest osobą,
- artykuł opisuje określony temat.
Zamiast tworzyć wiele niezależnych bloków danych, warto budować spójny graf i łączyć obiekty za pomocą identyfikatorów @id.
Jakie korzyści daje wdrożenie Schema.org?
Większa szansa na rozszerzone wyniki wyszukiwania
Wybrane typy danych mogą kwalifikować stronę do prezentacji dodatkowych informacji, takich jak:
- cena i dostępność produktu,
- ocena i liczba opinii,
- data wydarzenia,
- informacje o filmie,
- dane o przepisie,
- oferta pracy,
- elementy nawigacji okruszkowej.
Rozszerzony wygląd może poprawić widoczność wyniku i wpłynąć na współczynnik kliknięć. Nie jest to jednak gwarantowane.
Lepsze rozpoznawanie encji
Schema.org pozwala wskazać, czy nazwa na stronie odnosi się do firmy, autora, marki, produktu czy lokalizacji. Jest to szczególnie ważne w przypadku nazw wieloznacznych.
Uporządkowanie informacji o serwisie
Wdrożenie wymusza uporządkowanie relacji między:
- marką a organizacją,
- organizacją a witryną,
- autorem a publikacjami,
- produktem a ofertami,
- lokalizacją a lokalnym oddziałem firmy.
Spójniejsze zarządzanie danymi
W dużych serwisach dane strukturalne mogą stać się częścią modelu danych. Cena, waluta, dostępność lub autor nie muszą być wpisywane ręcznie — mogą pochodzić bezpośrednio z CMS-a, systemu PIM albo platformy e-commerce.
JSON-LD, Microdata czy RDFa?
Schema.org można wdrożyć w kilku składniach.
JSON-LD
JSON-LD jest skryptem umieszczanym w kodzie HTML, zwykle w sekcji <head> lub <body>. Dane są oddzielone od warstwy prezentacyjnej.
<script type="application/ld+json">{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Przykładowa Firma",
"url": "https://example.com/",
"logo": "https://example.com/logo.png"
}
</script>
Najważniejsze zalety JSON-LD:
- łatwa edycja i automatyzacja,
- brak konieczności dodawania atrybutów do każdego elementu HTML,
- możliwość budowy grafu z wielu encji,
- czytelna separacja danych od wyglądu strony,
- prostsze wdrożenie przez CMS lub system szablonów.
Microdata
Microdata wykorzystuje atrybuty dodawane bezpośrednio do elementów HTML.
<div itemscope itemtype="https://schema.org/Organization"><span itemprop="name">Przykładowa Firma</span>
</div>
Format może być użyteczny w istniejących wdrożeniach, ale przy rozbudowanych modelach często utrudnia utrzymanie kodu.
RDFa
RDFa również osadza informacje semantyczne w HTML. Jest spotykane między innymi w projektach opartych na technologiach powiązanych danych, jednak w typowych wdrożeniach SEO częściej wybiera się JSON-LD.
Który format wybrać?
W większości nowych wdrożeń najlepszym wyborem jest JSON-LD. Microdata lub RDFa warto zachować, jeżeli działający system już z nich korzysta i generuje poprawne, spójne informacje.
Nie należy bez potrzeby oznaczać tego samego obiektu kilkoma formatami. Zwiększa to ryzyko duplikacji i sprzecznych wartości.
Najważniejsze elementy składni JSON-LD
@context
Określa wykorzystywany słownik.
"@context": "https://schema.org"
@type
Wskazuje typ encji.
"@type": "Article"
Encja może mieć więcej niż jeden zgodny typ, ale nie należy łączyć typów tylko po to, aby zwiększyć liczbę oznaczeń.
@id
Jest trwałym identyfikatorem encji. Najczęściej przyjmuje postać adresu URL z fragmentem.
"@id": "https://example.com/#organization"
Identyfikator nie musi prowadzić do osobnej podstrony. Powinien być jednak stabilny i konsekwentnie używany w całym serwisie.
@graph
Pozwala umieścić kilka połączonych encji w jednym bloku.
<script type="application/ld+json">{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Przykładowa Firma",
"url": "https://example.com/"
},
{
"@type": "WebSite",
"@id": "https://example.com/#website",
"url": "https://example.com/",
"publisher": {
"@id": "https://example.com/#organization"
}
}
]
}
</script>
Właściwości i wartości
Właściwości opisują encję. Wartości mogą być:
- tekstem,
- liczbą,
- adresem URL,
- datą,
- inną zagnieżdżoną encją,
- odwołaniem do encji przez
@id, - listą wielu wartości.
Najważniejsze typy Schema.org
Organization
Organization opisuje organizację, markę, instytucję lub firmę działającą jako wydawca serwisu.
Typowe właściwości:
name,url,logo,sameAs,contactPoint,address,foundingDate,legalName.
Nie należy automatycznie dodawać wszystkich możliwych pól. Lepszy jest mniejszy, ale prawdziwy i utrzymywany zestaw danych.
LocalBusiness
LocalBusiness jest podtypem organizacji przeznaczonym dla firm mających fizyczną lokalizację lub obsługujących lokalny rynek.
Może zawierać:
- adres,
- numer telefonu,
- godziny otwarcia,
- współrzędne geograficzne,
- zakres cen,
- obsługiwany obszar.
Jeżeli firma ma wiele oddziałów, każdy oddział powinien być osobną encją z własnym identyfikatorem, adresem i podstroną lokalizacyjną.
WebSite i WebPage
WebSite opisuje całą witrynę, a WebPage pojedynczy dokument.
Do bardziej precyzyjnych typów stron należą między innymi:
AboutPage,ContactPage,ProfilePage,CollectionPage,FAQPage,ItemPage.
Typ strony powinien odpowiadać jej rzeczywistej funkcji.
Article, BlogPosting i NewsArticle
Typy te służą do opisu treści redakcyjnych.
Najważniejsze właściwości to:
headline,description,image,datePublished,dateModified,author,publisher,mainEntityOfPage.
dateModified należy aktualizować po rzeczywistej zmianie merytorycznej, a nie po automatycznym odświeżeniu szablonu.
Person
Person może opisywać autora, eksperta, pracownika lub inną osobę publicznie przedstawioną w serwisie.
Warto połączyć autora artykułu z jego stroną profilową i używać tego samego @id we wszystkich publikacjach.
Product i Offer
Product opisuje produkt, natomiast Offer warunki jego zakupu. Cena i dostępność należą zwykle do oferty, nie bezpośrednio do produktu.
<script type="application/ld+json">{
"@context": "https://schema.org",
"@type": "Product",
"@id": "https://example.com/produkt/model-x/#product",
"name": "Model X",
"image": [
"https://example.com/images/model-x.jpg"
],
"sku": "MODEL-X-001",
"brand": {
"@type": "Brand",
"name": "Przykładowa Marka"
},
"offers": {
"@type": "Offer",
"url": "https://example.com/produkt/model-x/",
"priceCurrency": "PLN",
"price": "299.00",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
}
}
</script>
Wartości muszą odpowiadać informacjom widocznym na stronie. Dotyczy to szczególnie ceny, waluty, wariantu i dostępności.
BreadcrumbList
BreadcrumbList opisuje ścieżkę nawigacyjną strony.
Powinna odwzorowywać logiczne miejsce dokumentu w strukturze serwisu, a nie historię kliknięć użytkownika.
Review i AggregateRating
Review opisuje pojedynczą opinię, a AggregateRating podsumowanie wielu ocen.
Oceny powinny:
- pochodzić od rzeczywistych użytkowników lub recenzentów,
- dotyczyć oznaczonego obiektu,
- być widoczne na stronie,
- mieć zgodną skalę,
- odpowiadać aktualnie prezentowanej liczbie opinii.
Nie należy dodawać ocen do każdej strony tylko dlatego, że szablon ma dostęp do średniej całego serwisu. Wyszukiwarki mogą również ignorować opinie o własnej organizacji publikowane i kontrolowane przez tę organizację.
Event
Event opisuje wydarzenie odbywające się w określonym czasie i miejscu, również online.
Ważne pola obejmują:
- nazwę,
- datę rozpoczęcia,
- datę zakończenia,
- lokalizację,
- tryb uczestnictwa,
- status wydarzenia,
- ofertę biletową.
W przypadku odwołania lub przełożenia wydarzenia należy zaktualizować status, a nie usuwać bez wyjaśnienia wszystkie dane.
VideoObject
VideoObject opisuje materiał wideo. Typowe właściwości to:
name,description,thumbnailUrl,uploadDate,duration,contentUrl,embedUrl.
Film powinien być faktycznie dostępny na stronie i stanowić istotną część jej zawartości.
FAQPage
FAQPage stosuje się wtedy, gdy strona zawiera listę pytań z odpowiedziami przygotowanymi przez wydawcę.
Nie jest to właściwy typ dla forum, gdzie użytkownicy publikują wiele odpowiedzi. Nie każda poprawnie oznaczona sekcja FAQ otrzyma też rozszerzony wynik. Widoczność tego formatu jest ograniczana i zależy od rodzaju oraz wiarygodności serwisu.
Jak wybrać właściwy typ danych?
Najpierw należy określić główny cel strony, a dopiero potem wybrać typ Schema.org.
Tabela decyzyjna
| Rodzaj strony | Główna encja | Zalecane typy wspierające | Najważniejsze dane | Typowe ryzyko |
|---|---|---|---|---|
| Strona główna firmy | Organizacja i witryna | Organization, WebSite | Nazwa, URL, logo, profile oficjalne | Duplikowanie kilku encji tej samej firmy |
| Artykuł blogowy | Publikacja | Article lub BlogPosting, Person, Organization, WebPage | Tytuł, autor, daty, obraz, wydawca | Fikcyjny autor lub sztuczna aktualizacja daty |
| Serwis informacyjny | Artykuł wiadomości | NewsArticle, Person, Organization | Data publikacji, modyfikacja, autor | Niezgodne daty i brak informacji o redakcji |
| Karta produktu | Produkt | Product, Offer, Brand, AggregateRating | Cena, waluta, dostępność, SKU | Inna cena w kodzie niż na stronie |
| Lista produktów | Kolekcja | CollectionPage, ItemList | Elementy listy i kolejność | Oznaczanie listy jak pojedynczego produktu |
| Firma lokalna | Placówka | Odpowiedni podtyp LocalBusiness, PostalAddress | Adres, telefon, godziny | Łączenie wielu oddziałów w jedną encję |
| Wydarzenie | Wydarzenie | Event, Place, Offer | Termin, miejsce, status, bilety | Nieaktualny termin lub status |
| Profil autora | Osoba | ProfilePage, Person | Imię, bio, zdjęcie, publikacje | Tworzenie profilu bez danych potwierdzających tożsamość |
| Film | Materiał wideo | VideoObject | Miniatura, data, czas, adres filmu | Film niedostępny dla robota |
| Oferta pracy | Ogłoszenie | JobPosting, Organization, Place | Stanowisko, lokalizacja, wynagrodzenie, termin | Pozostawienie nieaktualnej oferty |
| Przepis | Przepis kulinarny | Recipe, HowToStep, NutritionInformation | Składniki, czas, kroki | Dane nieobecne w widocznej treści |
| Sekcja pytań i odpowiedzi | Zbiór FAQ | FAQPage, Question, Answer | Widoczne pytania i odpowiedzi | Oczekiwanie gwarantowanego rich result |
Jeżeli strona realizuje kilka funkcji, można opisać więcej encji. Należy jednak wskazać, która z nich jest głównym przedmiotem dokumentu.
Jak zaprojektować graf encji serwisu?
Dobre wdrożenie nie polega na dodaniu przypadkowego skryptu do każdej podstrony. Najpierw warto zaprojektować podstawowe encje całej witryny.
Encje globalne
Najczęściej występują w wielu miejscach serwisu:
- organizacja,
- marka,
- witryna,
- autorzy,
- oddziały lokalne.
Powinny mieć stałe identyfikatory @id.
Encje zależne od strony
Są generowane na podstawie konkretnego dokumentu:
- artykuł,
- produkt,
- oferta,
- wydarzenie,
- film,
- ogłoszenie o pracę,
- lista elementów.
Przykład relacji dla artykułu
<script type="application/ld+json">{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Przykładowa Firma",
"url": "https://example.com/",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
},
{
"@type": "Person",
"@id": "https://example.com/autor/anna-kowalska/#person",
"name": "Anna Kowalska",
"url": "https://example.com/autor/anna-kowalska/"
},
{
"@type": "WebPage",
"@id": "https://example.com/blog/dane-strukturalne/#webpage",
"url": "https://example.com/blog/dane-strukturalne/",
"name": "Dane strukturalne Schema.org",
"isPartOf": {
"@id": "https://example.com/#website"
}
},
{
"@type": "Article",
"@id": "https://example.com/blog/dane-strukturalne/#article",
"headline": "Dane strukturalne Schema.org",
"mainEntityOfPage": {
"@id": "https://example.com/blog/dane-strukturalne/#webpage"
},
"author": {
"@id": "https://example.com/autor/anna-kowalska/#person"
},
"publisher": {
"@id": "https://example.com/#organization"
},
"datePublished": "2025-01-15",
"dateModified": "2025-02-10"
},
{
"@type": "WebSite",
"@id": "https://example.com/#website",
"url": "https://example.com/",
"publisher": {
"@id": "https://example.com/#organization"
}
}
]
}
</script>
Kolejność encji w @graph nie jest najważniejsza. Istotna jest poprawność odwołań i konsekwencja identyfikatorów.
Jak wdrożyć Schema.org krok po kroku?
1. Przeprowadź inwentaryzację szablonów
Zamiast analizować każdy adres osobno, podziel serwis na typy stron, na przykład:
- strona główna,
- artykuł,
- kategoria,
- produkt,
- lokalizacja,
- autor,
- wydarzenie,
- strona kontaktowa.
Dla każdego szablonu określ główną encję i dostępne źródła danych.
2. Ustal cel wdrożenia
Celem może być:
- kwalifikacja do określonego rich result,
- uporządkowanie encji marki,
- połączenie autorów z publikacjami,
- opis katalogu produktów,
- standaryzacja danych w wielu serwisach.
Nie każdy typ Schema.org daje specjalny wygląd wyniku. Może jednak nadal pomagać w semantycznym opisie strony.
3. Zmapuj pola do źródeł danych
Każda właściwość powinna mieć wiarygodne źródło.
| Właściwość | Potencjalne źródło |
|---|---|
headline | Tytuł artykułu w CMS |
author | Profil autora |
datePublished | Data pierwszej publikacji |
dateModified | Data ostatniej zmiany merytorycznej |
price | System sklepu lub PIM |
availability | System magazynowy |
sku | Katalog produktów |
address | Baza oddziałów |
aggregateRating | System opinii |
Ręczne wpisywanie dynamicznych danych, takich jak cena lub dostępność, szybko prowadzi do rozbieżności.
4. Wybierz wymagane i zalecane właściwości
Schema.org może dopuszczać wiele pól, ale wyszukiwarki mają własne wymagania dla wyników rozszerzonych.
Trzeba rozróżnić:
- zgodność ze słownikiem Schema.org,
- kompletność potrzebną do uzyskania konkretnego rich result,
- jakość i zgodność z politykami wyszukiwarki.
Brak błędu składni nie oznacza automatycznie, że wdrożenie jest kompletne.
5. Wygeneruj JSON-LD
Kod powinien być tworzony z tych samych danych, które są prezentowane użytkownikowi. Pozwala to ograniczyć rozbieżności.
W aplikacjach JavaScript należy dodatkowo sprawdzić wyrenderowany HTML. Sam fakt, że skrypt istnieje w kodzie komponentu, nie oznacza jeszcze, że robot otrzyma prawidłowy JSON-LD.
6. Przetestuj pojedyncze adresy
Sprawdź:
- poprawność JSON,
- rozpoznane typy,
- wymagane właściwości,
- ostrzeżenia,
- zgodność treści z kodem,
- dostępność obrazów i adresów URL,
- dane po renderowaniu JavaScript.
7. Przeprowadź test szablonowy
Jedna poprawna karta produktu nie potwierdza poprawności całego sklepu. Test powinien objąć między innymi:
- produkty dostępne i niedostępne,
- produkty promocyjne,
- warianty,
- strony bez opinii,
- artykuły bez zdjęcia,
- wydarzenia odwołane,
- lokalizacje o niestandardowych godzinach.
8. Wdróż monitoring
Po publikacji kontroluj:
- raporty wyników rozszerzonych,
- błędy indeksowania,
- spadki liczby poprawnych elementów,
- zmiany w szablonach,
- rozbieżności ceny i dostępności,
- strony usunięte lub przekierowane.
Dane strukturalne są elementem utrzymywanego systemu, a nie jednorazowym zadaniem SEO.
Jak testować dane strukturalne?
Do testowania warto wykorzystywać dwa poziomy walidacji.
Walidacja składni i słownika
Sprawdza, czy:
- JSON jest prawidłowy,
- typy i właściwości istnieją,
- wartości mają właściwy format,
- relacje są poprawnie zapisane.
Walidacja pod kątem wyników rozszerzonych
Sprawdza, czy dane spełniają wymagania konkretnej funkcji wyszukiwarki.
Możliwe wyniki to:
- element poprawny,
- element poprawny z ostrzeżeniami,
- element nieprawidłowy,
- typ rozpoznany, ale nieobsługiwany jako rich result.
Ostrzeżenie nie zawsze blokuje rozszerzony wynik. Zwykle oznacza brak pola zalecanego. Błąd dotyczący pola wymaganego może uniemożliwić kwalifikację.
Co sprawdzić poza walidatorem?
Automatyczny test nie oceni całego kontekstu. Ręcznie należy sprawdzić:
- czy dane są widoczne na stronie,
- czy oceny dotyczą właściwego obiektu,
- czy cena odpowiada wybranemu wariantowi,
- czy autor jest prawdziwą i opisaną osobą,
- czy wydarzenie nadal jest aktualne,
- czy dane nie wprowadzają użytkownika w błąd,
- czy strona jest indeksowalna,
- czy zasoby nie są zablokowane.
Schema.org w WordPressie i innych CMS-ach
Dane strukturalne można wdrożyć za pomocą:
- funkcji motywu,
- wtyczki SEO,
- dedykowanej wtyczki Schema.org,
- menedżera tagów,
- własnego modułu,
- mechanizmu szablonów,
- integracji z CMS-em bezgłowym.
Wtyczka czy własne wdrożenie?
Wtyczka może wystarczyć dla prostego bloga lub strony firmowej. Własne wdrożenie jest zwykle lepsze, gdy serwis:
- ma niestandardowe typy treści,
- obsługuje wiele oddziałów,
- korzysta z rozbudowanego katalogu produktów,
- ma dane pochodzące z wielu systemów,
- wymaga ścisłej kontroli identyfikatorów,
- działa w wielu językach i domenach.
Najczęstszy problem w CMS-ach polega na tym, że kilka rozszerzeń generuje te same typy. Efektem mogą być dwie organizacje, dwa artykuły lub kilka niespójnych zestawów okruszków.
Przed instalacją kolejnego modułu trzeba sprawdzić, co już znajduje się w kodzie strony.
Dane strukturalne w e-commerce
Sklepy internetowe należą do najbardziej wymagających obszarów wdrożenia Schema.org.
Produkt a oferta
Produkt to obiekt, a oferta określa warunki zakupu. Ten sam produkt może mieć:
- wielu sprzedawców,
- różne ceny,
- kilka wariantów,
- różną dostępność,
- oferty promocyjne.
Nie należy mieszać danych wariantów. Jeżeli użytkownik ogląda konkretny rozmiar lub kolor, kod powinien opisywać właściwy wariant albo jasno reprezentować grupę wariantów.
Cena promocyjna
Dane muszą odpowiadać cenie, którą użytkownik może rzeczywiście uzyskać. Jeżeli rabat wymaga kodu, członkostwa lub dodatkowego warunku, nie należy prezentować go jako bezwarunkowej ceny dla wszystkich.
Dostępność
Status powinien pochodzić z aktualnego źródła magazynowego. Najczęstsze wartości obejmują:
InStock,OutOfStock,PreOrder,BackOrder,Discontinued.
Opinie
Jeżeli produkt nie ma opinii, nie należy generować sztucznego AggregateRating z wartością zero. Oznaczenie można dodać po pojawieniu się rzeczywistych ocen.
Najczęstsze błędy we wdrożeniu
Dane niewidoczne dla użytkownika
Oznaczanie ukrytych opinii, pytań, cen lub informacji, których nie ma na stronie, może zostać uznane za manipulację.
Niezgodna cena lub dostępność
To częsty problem w sklepach korzystających z pamięci podręcznej, zewnętrznego PIM-u lub kilku systemów cenowych.
Nieprawidłowy typ strony
Przykładem jest użycie Product na stronie kategorii albo FAQPage na forum dyskusyjnym.
Duplikacja encji
Kilka wtyczek może tworzyć różne obiekty Organization bez wspólnego @id. Wyszukiwarka otrzymuje wtedy kilka potencjalnie różnych organizacji.
Brak trwałych identyfikatorów
Encje bez @id mogą być traktowane jako niezależne obiekty, nawet jeśli w rzeczywistości opisują tę samą firmę lub osobę.
Automatyczna zmiana daty artykułu
Zmiana dateModified przy każdym odświeżeniu strony obniża wiarygodność informacji o aktualizacji.
Niepoprawne adresy obrazów
Obraz może być:
- zablokowany,
- usunięty,
- zbyt mały,
- niedostępny bez cookies,
- ładowany wyłącznie dla zalogowanych użytkowników.
Oznaczanie wszystkiego
Więcej typów nie oznacza lepszego wdrożenia. Nadmiar nieistotnych encji utrudnia utrzymanie grafu i zwiększa ryzyko sprzeczności.
Traktowanie ostrzeżenia jak błędu
Nie każde ostrzeżenie uniemożliwia rich result. Należy sprawdzić, czy pole jest wymagane, zalecane czy opcjonalne.
Brak aktualizacji po zmianie szablonu
Redesign może usunąć widoczne dane, pozostawiając stary JSON-LD, albo odwrotnie — usunąć skrypt mimo zachowania treści.
Mity dotyczące Schema.org
„Dane strukturalne bezpośrednio podnoszą pozycję”
Nie ma gwarancji wzrostu pozycji po samym dodaniu znaczników. Korzyścią jest przede wszystkim lepsze zrozumienie strony i możliwość uzyskania rozszerzonej prezentacji.
„Poprawny test gwarantuje rich result”
Walidator potwierdza techniczną kwalifikację, ale nie podejmuje ostatecznej decyzji o wyglądzie wyniku. Znaczenie mają także jakość, trafność, polityki oraz sposób przetworzenia strony.
„Im więcej typów, tym lepiej”
Należy opisywać rzeczywiste encje ważne dla strony. Dodawanie niepowiązanych typów nie zwiększa automatycznie widoczności.
„Dane strukturalne mogą zastąpić treść”
Kod JSON-LD nie powinien być jedynym miejscem, w którym występuje cena, odpowiedź, opinia lub informacja o wydarzeniu.
„Wystarczy wdrożyć Schema.org raz”
Zmieniają się treści, szablony, wymagania wyszukiwarek i dostępne funkcje. Wdrożenie wymaga monitorowania.
„Każdy typ Schema.org daje rozszerzony wynik”
Słownik Schema.org jest znacznie szerszy niż zestaw typów obsługiwanych w rich results. Typ może być semantycznie poprawny, ale nie powodować wizualnej zmiany wyniku.
Liczby i statystyki dotyczące danych strukturalnych
Wartości dotyczące liczby typów i właściwości mogą zmieniać się wraz z kolejnymi wersjami słownika. Najważniejsze liczby praktyczne przedstawiają się następująco:
| Liczba | Znaczenie |
|---|---|
| Ponad 800 | Przybliżona liczba typów dostępnych w rozwijanym słowniku Schema.org |
| Ponad 1500 | Przybliżona liczba właściwości służących do opisywania encji |
| 3 | Najczęściej wykorzystywane składnie: JSON-LD, Microdata i RDFa |
| 2 | Poziomy kontroli: zgodność ze słownikiem oraz kwalifikacja do rich results |
| 1 | Zalecana główna encja opisująca podstawowy temat konkretnej strony |
| 1 | Stabilny @id potrzebny dla każdej wielokrotnie wykorzystywanej encji |
| 0 | Liczba gwarantowanych rich results — poprawne wdrożenie daje możliwość, nie gwarancję |
| 100% | Docelowa zgodność danych strukturalnych z treścią widoczną dla użytkownika |
W praktyce jakość wdrożenia nie zależy od liczby zastosowanych typów. Ważniejsze są kompletność kluczowych danych, ich aktualność i prawidłowe relacje.
Zaawansowane zasady wdrożenia
Utrzymuj jeden identyfikator encji
Organizacja, autor lub witryna powinny mieć ten sam @id wszędzie, gdzie są wykorzystywane. Zmiana identyfikatora między podstronami może prowadzić do powstawania pozornie różnych encji.
Oddziel encję od strony o encji
Firma nie jest tym samym co strona „O nas”. Osoba nie jest tym samym co jej profil.
Można to opisać jako:
Person— osoba,ProfilePage— strona przedstawiająca osobę,mainEntity— relacja wskazująca, że osoba jest głównym obiektem strony.
Nie mieszaj domen i protokołów
Identyfikatory powinny konsekwentnie używać kanonicznego protokołu i hosta. Należy unikać naprzemiennego stosowania:
- HTTP i HTTPS,
- domeny z
wwwi bezwww, - adresów z parametrami i bez parametrów,
- różnych wersji ukośników końcowych.
Uwzględnij wersje językowe
Każda wersja językowa może mieć własną stronę i odpowiednio przetłumaczone dane, ale organizacja pozostaje zwykle tą samą encją. Nazwy, opisy i adresy URL należy dopasować do wersji językowej.
Kontroluj dane generowane po stronie klienta
JSON-LD może być generowany przez JavaScript, ale trzeba sprawdzić, czy:
- pojawia się po renderowaniu,
- nie jest wstrzykiwany zbyt późno,
- nie zawiera pustych wartości,
- nie zmienia się losowo,
- nie jest usuwany przez mechanizm zgód lub optymalizacji.
Waliduj dane przed publikacją
W większych serwisach warto dodać testy automatyczne do procesu wdrożeniowego. Mogą one sprawdzać obecność wymaganych pól, prawidłowy format dat, walutę, dostępność oraz unikalność @id.
Praktyczna checklista
Przed publikacją sprawdź:
- czy wybrany typ odpowiada celowi strony,
- czy główna encja jest jednoznaczna,
- czy organizacja, witryna i autorzy mają stałe
@id, - czy dane pochodzą z wiarygodnego źródła,
- czy informacje są widoczne dla użytkownika,
- czy cena i dostępność są aktualne,
- czy adresy URL są kanoniczne,
- czy obrazy są dostępne dla robotów,
- czy kod przechodzi walidację składni,
- czy spełnia wymagania wybranego rich result,
- czy kilka wtyczek nie generuje duplikatów,
- czy wdrożenie działa po renderowaniu JavaScript,
- czy mechanizm monitorowania wykryje późniejsze błędy.
FAQ – najczęstsze pytania o Schema.org
Czy Schema.org wpływa na pozycję strony?
Samo dodanie danych strukturalnych nie gwarantuje wzrostu pozycji. Może jednak ułatwić zrozumienie strony i umożliwić wyświetlenie rozszerzonego wyniku, co może wpłynąć na widoczność i liczbę kliknięć.
Czy JSON-LD musi znajdować się w sekcji <head>?
Nie. Może znajdować się w sekcji <head> lub <body>, o ile jest prawidłowo dostępny w kodzie strony. Ważniejsze od lokalizacji jest poprawne wygenerowanie danych.
Czy dane Schema.org muszą być widoczne na stronie?
Informacje istotne dla oznaczenia powinny odpowiadać treści dostępnej dla użytkownika. Nie należy dodawać ukrytych cen, opinii, pytań ani innych danych tylko na potrzeby wyszukiwarki.
Czy można umieścić kilka typów Schema.org na jednej stronie?
Tak. Strona artykułu może zawierać encje Article, WebPage, Person, Organization, WebSite i BreadcrumbList. Encje powinny być logicznie połączone, najlepiej przez @id.
Czy można użyć kilku wartości @type?
Tak, jeżeli encja rzeczywiście należy do kilku zgodnych klas. Nie należy jednak łączyć przypadkowych typów w celu zwiększenia widoczności.
Czy każda podstrona powinna mieć dane strukturalne?
Nie każda podstrona wymaga rozbudowanego oznaczenia. Dane warto wdrażać tam, gdzie można jednoznacznie opisać ważną encję lub funkcję dokumentu.
Czy Schema.org zastępuje Open Graph?
Nie. Schema.org pomaga przede wszystkim w semantycznym opisie treści, a Open Graph steruje prezentacją linku w wielu serwisach społecznościowych. Można stosować oba rozwiązania.
Czy warto oznaczać stronę kategorii jako Product?
Nie, jeżeli strona przedstawia listę wielu produktów. Dla kategorii bardziej odpowiednie mogą być CollectionPage i ItemList. Product należy wykorzystać na stronie konkretnego produktu.
Czy można dodać oceny firmy do typu Organization?
Techniczna możliwość nie oznacza kwalifikacji do rozszerzonego wyniku. Oceny własnej organizacji publikowane na jej stronie mogą zostać uznane za self-serving reviews i zignorowane.
Jak często aktualizować dane strukturalne?
Powinny aktualizować się razem z treścią. Cena, dostępność, data wydarzenia i status oferty pracy wymagają szybkiej synchronizacji. Dane organizacji można kontrolować okresowo oraz po każdej zmianie firmowej.
Czy ostrzeżenia w teście trzeba zawsze naprawiać?
Nie zawsze. Ostrzeżenia zwykle dotyczą pól zalecanych. Warto je uzupełniać, jeżeli dane są dostępne i prawdziwe, ale nie należy wymyślać wartości tylko po to, aby usunąć komunikat.
Czy dane strukturalne mogą spowodować karę?
Samo użycie Schema.org nie powoduje kary. Ryzyko pojawia się wtedy, gdy oznaczenia są spamerskie, wprowadzają w błąd, opisują niewidoczne dane albo nie odpowiadają rzeczywistej treści.
Jak długo trzeba czekać na efekt wdrożenia?
Wyszukiwarka musi ponownie pobrać i przetworzyć stronę. Czas zależy od częstotliwości indeksowania serwisu. Nawet po ponownym przetworzeniu rich result może nie zostać wyświetlony.
Czy dane strukturalne pomagają systemom AI?
Ułatwiają maszynowe rozpoznawanie encji i relacji, ale nie gwarantują wykorzystania treści przez konkretny system AI. Nadal liczą się dostępność, jakość, spójność i wiarygodność informacji.
Co jest ważniejsze: pełny słownik Schema.org czy wymagania wyszukiwarki?
To zależy od celu. Dla rich results trzeba spełnić wymagania danej wyszukiwarki. Dla szerszego modelowania semantycznego można wykorzystywać dodatkowe typy i właściwości Schema.org, nawet jeśli nie wpływają na wygląd wyniku.
Podsumowanie
Skuteczne wdrożenie Schema.org zaczyna się od modelu encji, a nie od kopiowania gotowego fragmentu JSON-LD. Trzeba określić główny temat każdej strony, połączyć go z organizacją, witryną, autorami lub ofertami i zapewnić stałe identyfikatory.
Najważniejsze zasady to:
- wybieranie typów zgodnych z rzeczywistą funkcją strony,
- generowanie danych z tych samych źródeł co widoczna treść,
- zachowanie pełnej zgodności cen, dat, opinii i dostępności,
- budowanie relacji za pomocą
@id, - testowanie zarówno składni, jak i wymagań rich results,
- kontrolowanie całych szablonów, a nie pojedynczych adresów,
- regularne monitorowanie po wdrożeniu.
Dane strukturalne nie są skrótem do wysokich pozycji. Są warstwą semantyczną, która porządkuje informacje i ułatwia systemom wyszukiwawczym prawidłową interpretację serwisu.