Schema.org to słownik strukturalnych danych który Google, Bing i modele LLM rozumieją. Dla branży medycznej kluczowy jest typ MedicalBusiness + powiązane: Physician, MedicalProcedure, MedicalCondition, Drug.
W tym artykule pełny przewodnik z gotowymi przykładami JSON-LD do skopiowania. Plus wyjaśnienie które pola są obowiązkowe, a które opcjonalne (ale rekomendowane dla rich snippets).
Czym jest schema.org i po co?
Schema.org to wspólny słownik wytyczny przez Google, Microsoft, Yahoo i Yandex w 2011 r. Pozwala stronom internetowym opisać swą zawartość w sposób który wyszukiwarki rozumieją jednoznacznie.
Dla branży medycznej schema.org daje:
- Rich snippets w SERP (gwiazdki, ceny, breadcrumbs, sitelinks search box)
- Knowledge Panel po prawej stronie wyników
- Cytowanie w AI Overview Google
- Cytowanie w modelach LLM (ChatGPT, Claude, Perplexity)
- Google My Business automatyczna synchronizacja
Hierarchia typów dla branży medycznej
Thing
Organization
LocalBusiness
MedicalBusiness ← dla klinik, gabinetów
MedicalClinic ← pełna klinika
Pharmacy ← apteka
Dentist ← gabinet stomatologiczny
Physiotherapy ← gabinet fizjoterapeutyczny
Hospital ← szpital
DaySpa
HealthAndBeautyBusiness ← salon kosmetyczny
Person
Physician ← dla każdego lekarza w zespole
CreativeWork
MedicalScholarlyArticle ← artykuły blog medyczne
Service
MedicalProcedure ← każda usługa/zabieg
MedicalEntity
MedicalCondition ← opis schorzenia (np. atopowe ZP)
Drug ← opis leku
Pełny przykład MedicalBusiness
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "MedicalBusiness",
"@id": "https://klinika.pl/#medicalbusiness",
"name": "Klinika Stomatologiczna Centrum",
"alternateName": "Klinika Centrum",
"description": "Klinika stomatologiczna w centrum Warszawy specjalizująca się w implantach, ortodoncji i protetyce.",
"url": "https://klinika.pl",
"image": "https://klinika.pl/wp-content/uploads/logo.jpg",
"telephone": "+48221234567",
"email": "kontakt@klinika.pl",
"priceRange": "200-25000 PLN",
"currenciesAccepted": "PLN, EUR, USD",
"paymentAccepted": "Cash, Credit Card, BLIK, PayPal",
"address": {
"@type": "PostalAddress",
"streetAddress": "ul. Marszalkowska 100",
"addressLocality": "Warszawa",
"postalCode": "00-026",
"addressCountry": "PL"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 52.2297,
"longitude": 21.0122
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "08:00",
"closes": "20:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "09:00",
"closes": "14:00"
}
],
"medicalSpecialty": ["Dentistry", "PlasticSurgery"],
"availableService": [
{
"@type": "MedicalProcedure",
"name": "Implant zęba",
"procedureType": "https://schema.org/SurgicalProcedure",
"preparation": "Konsultacja, badanie RTG, plan leczenia",
"howPerformed": "Zabieg chirurgiczny w znieczuleniu miejscowym",
"followup": "Wizyty kontrolne po 1, 3, 6 miesiącach"
}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"reviewCount": "147",
"bestRating": "5"
},
"sameAs": [
"https://www.facebook.com/klinika",
"https://www.instagram.com/klinika",
"https://www.znanylekarz.pl/klinika"
]
}
</script>
Pole obowiązkowe vs rekomendowane
Obowiązkowe (Google wymaga dla rich snippets)
name– nazwa klinikiaddress(pełny adres z postalCode)telephoneimage(minimum 1)
Mocno rekomendowane (boost SEO)
geo(GeoCoordinates) – dla mapopeningHoursSpecification– dla „open now” w SERPpriceRange– dla snippet z cenąaggregateRating– dla gwiazdeksameAs– linki do social media
Opcjonalne (advanced)
medicalSpecialty– specjalizacjaavailableService– lista usługpaymentAccepted– metody płatnościcurrenciesAccepted– waluty
Schema Physician (per lekarz)
{
"@context": "https://schema.org",
"@type": "Physician",
"name": "dr n. med. Anna Kowalska",
"description": "Stomatolog z 15-letnim doświadczeniem w implantologii.",
"image": "https://klinika.pl/zespol/anna-kowalska.jpg",
"telephone": "+48221234567",
"medicalSpecialty": "Dentistry",
"memberOf": {
"@type": "MedicalBusiness",
"name": "Klinika Stomatologiczna Centrum"
},
"alumniOf": {
"@type": "EducationalOrganization",
"name": "Warszawski Uniwersytet Medyczny"
},
"knowsLanguage": ["pl", "en"],
"hasCredential": [
{
"@type": "EducationalOccupationalCredential",
"name": "Specjalizacja II stopnia - stomatologia ogólna"
},
{
"@type": "EducationalOccupationalCredential",
"name": "Certyfikat ICOI (International Congress of Oral Implantologists)"
}
],
"identifier": {
"@type": "PropertyValue",
"propertyID": "PWZ",
"value": "1234567"
}
}
Schema FAQPage dla strony usługowej
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Ile kosztuje implant zęba w klinice Centrum?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Implant pojedynczy zaczyna się od 3 500 zl. All-on-4 (pełna żuchwa lub szczęka) od 25 000 zl. All-on-6 od 32 000 zl. Cena obejmuje konsultację, zabieg, koronę, gwarancję 10 lat."
}
},
{
"@type": "Question",
"name": "Jak długo trwa zabieg implantacji?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Pojedynczy implant: 30-45 minut zabiegu + 10-15 minut konsultacji. All-on-4: 2-3 godziny."
}
}
]
}
Schema BreadcrumbList
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Strona główna",
"item": "https://klinika.pl"
},
{
"@type": "ListItem",
"position": 2,
"name": "Oferta",
"item": "https://klinika.pl/oferta/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Implanty zębów",
"item": "https://klinika.pl/oferta/implanty/"
}
]
}
Walidacja schema
Po wdrożeniu sprawdź w:
- Google Rich Results Test – pokazuje czy schema działa + jakie rich snippets dostaniesz
- Schema.org Validator – sprawdza zgodność ze słownikiem
- Google Search Console – Rich Results (po indeksacji) – statystyki wyświetleń rich snippets
Najczęstsze błędy
- Duplicate @id – ten sam ID w 2+ blokach schema
- aggregateRating bez review – musi być reviewCount > 0 i prawdziwe opinie (Google sprawdza)
- Fake rating – Google kara za sztuczne gwiazdki (manual penalty)
- Schema na render-blocking script – powinno być w <head> ale po fundamentalnych meta
- Wiele schem w jednym <script> – lepiej osobne <script> dla każdego typu
Współpraca z medwsieci.pl
W naszym pakiecie Strony WWW każda klinika dostaje pełny schema MedicalBusiness + Physician (per lekarz) + MedicalProcedure (per zabieg) + FAQPage + BreadcrumbList. Audyt schema dla istniejącej strony – 1 290 zl jednorazowo.
Cytaty kodu z oficjalnego słownika schema.org. Walidacja na Google Rich Results Test.