Du hast bereits den Grundlagen-Artikel zu SportsActivityLocation Schema Markup gelesen und weißt, wie du ein Fitnessstudio oder eine Sporthalle korrekt mit JSON-LD auszeichnest. In dieser vertieften Anleitung gehen wir einen entscheidenden Schritt weiter: Wir beleuchten alle spezialisierten Sub-Typen — von GolfCourse über SkiResort bis hin zu StadiumOrArena — und zeigen, wie du fortgeschrittene Properties wie amenityFeature, availableChannel und verschachtelte Event-Schemas gewinnst.
Für Betreiber von Sportstätten mit mehrstufigem Angebot (Kursplanung, Mitgliedschaften, Events) bietet Schema.org ein mächtiges Toolset, das nur wenige vollständig ausschöpfen. Dieser Artikel zeigt dir, wie du dir damit einen messbaren Vorteil in den Google-Suchergebnissen verschaffst.
In der Schema.org-Hierarchie ist SportsActivityLocation ein direkter Sub-Typ von LocalBusiness. Darunter existiert eine zweite Ebene spezialisierter Typen:
| Schema.org-Typ | Anwendungsfall | Besonderheit |
|---|---|---|
SportsActivityLocation |
Allgemeine Sportstätte | Basisklasse für alle Typen darunter |
GolfCourse |
Golfplatz, Driving Range | Anzahl Löcher, Par, Kurs-Rating |
HealthClub |
Fitnessstudio, Sportzentrum | Gerätpark, Kursprogramm, Sauna |
PublicSwimmingPool |
Freibad, Hallenbad, Wellnessbad | Beckengröße, Rutsche, Sauna |
SkiResort |
Skigebiet, Skiclub, Wintersportanlage | Pistenkilometer, Liftanlagen, Schneelage |
StadiumOrArena |
Fußballstadion, Konzerthalle, Multifunktionsarena | Kapazität, Events, Sitzplan |
BowlingAlley |
Bowlingcenter, Minigolfanlage | Bahnanzahl, Automatik-Scoring |
TennisComplex |
Tennisclub, Padel-Center | Anzahl Plätze, Hallenplätze, Buchungssystem |
Die Wahl des richtigen Sub-Typs ist nicht nur eine Formalität: Google nutzt ihn, um die semantische Kategorie deiner Einrichtung zu verstehen und entsprechende Rich-Snippet-Formate anzuwenden. Ein StadiumOrArena kann z. B. Event-Snippets mit Ticketlinks erhalten, die einem generischen SportsActivityLocation-Eintrag nicht zugänglich sind.
Golfplätze haben spezifische Merkmale, die Golfspieler bei der Suche interessieren: Anzahl der Löcher, Handicap-Anforderungen und verfügbare Buchungsoptionen. Mit strukturierten Daten kannst du diese Informationen direkt in Google ausspielbar machen.
{
"@context": "https://schema.org",
"@type": "GolfCourse",
"name": "Golfclub Sonnenhügel e.V.",
"description": "18-Loch-Golfanlage mit Championship-Kurs, Driving Range und Golfschule in Hannover.",
"url": "https://golfclub-sonnenhuegel.de",
"telephone": "+49 511 987654",
"email": "info@golfclub-sonnenhuegel.de",
"address": {
"@type": "PostalAddress",
"streetAddress": "Golfweg 1",
"addressLocality": "Hannover",
"postalCode": "30519",
"addressCountry": "DE"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 52.3611,
"longitude": 9.7347
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "07:00",
"closes": "20:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Saturday","Sunday"],
"opens": "06:30",
"closes": "20:30"
}
],
"amenityFeature": [
{
"@type": "LocationFeatureSpecification",
"name": "Driving Range",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Golfschule",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Clubhouse Restaurant",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Lochanzahl",
"value": "18"
},
{
"@type": "LocationFeatureSpecification",
"name": "Par",
"value": "72"
}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "142",
"bestRating": "5"
},
"priceRange": "€€€",
"image": "https://golfclub-sonnenhuegel.de/images/anlage-hero.jpg"
}
amenityFeature mit LocationFeatureSpecification ist für Golfplätze besonders wertvoll. Füge Lochanzahl und Par als Named Value ein — obwohl es kein offizielles Schema.org-Feld für "Par" gibt, versteht Google diese semantischen Labels zuverlässig.
Während der Grundlagen-Artikel SportsActivityLocation als Typ für Fitnessstudios empfiehlt, ist HealthClub der präzisere Sub-Typ. Er erbt alle Eigenschaften von SportsActivityLocation und signalisiert Google explizit: Hier geht es um gesundheitsorientierte Sporteinrichtungen.
Eine der häufig übersehenen Möglichkeiten ist die Einbindung des Kursangebots über hasOfferCatalog. Das erlaubt Google, dein Kursangebot strukturiert zu erfassen:
{
"@context": "https://schema.org",
"@type": "HealthClub",
"name": "FitLife Sportzentrum",
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Kurs- und Mitgliedschaftsangebote",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Monatsmitgliedschaft",
"description": "Unbegrenzter Zugang zu allen Geräten und Kursen"
},
"price": "49.90",
"priceCurrency": "EUR"
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Course",
"name": "Yoga für Anfänger",
"description": "8-Wochen-Kurs, Dienstags 18:00 Uhr"
},
"price": "89.00",
"priceCurrency": "EUR"
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Course",
"name": "HIIT Power Training",
"description": "Hochintensives Intervalltraining, Montag/Mittwoch/Freitag 6:30 Uhr"
},
"price": "69.00",
"priceCurrency": "EUR"
}
]
}
}
StadiumOrArena ist der komplexeste SportsActivityLocation-Sub-Typ, weil er regelmäßig mit Event-Schemas verschachtelt wird. Stadien und Multifunktionsarenen profitieren enorm von korrekten strukturierten Daten — Google kann Veranstaltungen mit Ticketlinks direkt in der Suche anzeigen.
{
"@context": "https://schema.org",
"@type": "StadiumOrArena",
"name": "BayArena Leverkusen",
"description": "Fußballarena des Bayer 04 Leverkusen mit einer Kapazität von 30.210 Zuschauern.",
"url": "https://bayarena.de",
"telephone": "+49 214 86660",
"address": {
"@type": "PostalAddress",
"streetAddress": "Bismarckstraße 122–124",
"addressLocality": "Leverkusen",
"postalCode": "51373",
"addressCountry": "DE"
},
"maximumAttendeeCapacity": 30210,
"amenityFeature": [
{
"@type": "LocationFeatureSpecification",
"name": "Rollstuhlgerechte Plätze",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Business-Seats",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Parkplätze",
"value": "2.500 Stellplätze"
}
],
"event": [
{
"@type": "SportsEvent",
"name": "Bayer 04 Leverkusen vs. Borussia Dortmund",
"startDate": "2026-05-10T15:30:00+02:00",
"location": {
"@type": "Place",
"name": "BayArena Leverkusen",
"address": {
"@type": "PostalAddress",
"addressLocality": "Leverkusen",
"addressCountry": "DE"
}
},
"offers": {
"@type": "Offer",
"url": "https://bayarena.de/tickets",
"availability": "https://schema.org/InStock",
"price": "29",
"priceCurrency": "EUR"
},
"organizer": {
"@type": "Organization",
"name": "Bayer 04 Leverkusen",
"url": "https://bayer04.de"
}
}
]
}
maximumAttendeeCapacity ist offiziell bei Place definiert und damit für alle LocalBusiness-Unter-Typen verfügbar. Google zeigt diese Information in Knowledge-Panel-Einträgen für bekannte Arenen an.
Schwimmbäder profitieren besonders von saisonalen Öffnungszeiten und einem detaillierten amenityFeature-Profil. Eltern, die nach Schwimmbädern für Kinder suchen, wollen sofort sehen: Hat es eine Rutsche? Ist es ein Hallenbad oder Freibad?
{
"@context": "https://schema.org",
"@type": "PublicSwimmingPool",
"name": "Freizeitbad Neptun Augsburg",
"description": "Hallenbad und Sauna in Augsburg mit 25m-Sportbecken, Kinderbecken und Rutschenanlage.",
"url": "https://freizeitbad-neptun.de",
"telephone": "+49 821 555010",
"address": {
"@type": "PostalAddress",
"streetAddress": "Platanenstraße 35",
"addressLocality": "Augsburg",
"postalCode": "86157",
"addressCountry": "DE"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Wednesday","Friday"],
"opens": "06:00",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Tuesday","Thursday"],
"opens": "08:00",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Saturday","Sunday"],
"opens": "08:00",
"closes": "20:00"
}
],
"amenityFeature": [
{
"@type": "LocationFeatureSpecification",
"name": "25m Sportbecken",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Kinderbecken",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Rutschenanlage",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Saunalandschaft",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Außenbereich Freibad",
"value": true
}
],
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Eintrittspreise",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Einzeleintritt Erwachsene"
},
"price": "6.50",
"priceCurrency": "EUR"
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Familienkarte (2 Erw. + 2 Kinder)"
},
"price": "19.00",
"priceCurrency": "EUR"
}
]
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.3",
"reviewCount": "287",
"bestRating": "5"
}
}
Skigebiete stehen vor der besonderen Herausforderung, dass sich relevante Informationen täglich ändern können (Schneelage, offene Lifte). Das Schema selbst kann keine Echtzeit-Daten liefern, aber die statische Infrastruktur lässt sich sehr detailliert beschreiben:
{
"@context": "https://schema.org",
"@type": "SkiResort",
"name": "Skigebiet Zugspitzplatt",
"description": "Deutschlands höchstes Skigebiet am Zugspitzplatt mit 20 km Pisten und Ganzjahresmöglichkeit.",
"url": "https://zugspitze.de/ski",
"telephone": "+49 8821 7970",
"address": {
"@type": "PostalAddress",
"streetAddress": "Alpspitzstraße 6",
"addressLocality": "Garmisch-Partenkirchen",
"postalCode": "82467",
"addressCountry": "DE"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 47.4213,
"longitude": 10.9853,
"elevation": 2720
},
"amenityFeature": [
{
"@type": "LocationFeatureSpecification",
"name": "Pistenkilometer",
"value": "20 km"
},
{
"@type": "LocationFeatureSpecification",
"name": "Liftanlagen",
"value": "5"
},
{
"@type": "LocationFeatureSpecification",
"name": "Snowpark",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Skischule",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Skiverleih",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Ganzjahresbetrieb",
"value": true
}
],
"areaServed": {
"@type": "GeoShape",
"name": "Zugspitzplatt Skigebiet",
"elevation": "2720 m ü.NN"
}
}
geo.elevation aus GeoCoordinates ist für Skigebiete besonders nützlich — Google kann damit die Höhenlage direkt im Knowledge Panel anzeigen. Nutze Meter über NN als numerischen Wert.
Bowling-Center sind ein klassischer Abend-Freizeitort. Das Wichtigste für Nutzer: Anzahl der Bahnen, Öffnungszeiten, ob Kinderfeiern möglich sind und Preise.
{
"@context": "https://schema.org",
"@type": "BowlingAlley",
"name": "Strike Bowling Stuttgart",
"description": "Modernes Bowling-Center in Stuttgart mit 20 Bahnen, Bar und Kinderfeiern-Service.",
"url": "https://strike-bowling-stuttgart.de",
"telephone": "+49 711 234567",
"address": {
"@type": "PostalAddress",
"streetAddress": "Königstraße 70",
"addressLocality": "Stuttgart",
"postalCode": "70173",
"addressCountry": "DE"
},
"amenityFeature": [
{
"@type": "LocationFeatureSpecification",
"name": "Bahnenanzahl",
"value": "20"
},
{
"@type": "LocationFeatureSpecification",
"name": "Automatisches Scoring-System",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Kindergeburtstage",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Bar und Gastronomie",
"value": true
}
],
"priceRange": "€€",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.4",
"reviewCount": "312"
}
}
Für Tennisclubs und Padel-Center ist die Anzahl der Plätze und ob Hallen- oder Freiplätze vorhanden sind das entscheidende Suchkriterium:
{
"@context": "https://schema.org",
"@type": "TennisComplex",
"name": "TC Blau-Weiß München",
"description": "Tennisclub in München mit 12 Freiluftplätzen und 4 Hallenplätzen, Anfänger- und Turnierspielern willkommen.",
"url": "https://tc-blauweiss-muenchen.de",
"telephone": "+49 89 765432",
"address": {
"@type": "PostalAddress",
"streetAddress": "Tennisweg 3",
"addressLocality": "München",
"postalCode": "80336",
"addressCountry": "DE"
},
"amenityFeature": [
{
"@type": "LocationFeatureSpecification",
"name": "Freiplätze",
"value": "12"
},
{
"@type": "LocationFeatureSpecification",
"name": "Hallenplätze",
"value": "4"
},
{
"@type": "LocationFeatureSpecification",
"name": "Tennisschule",
"value": true
},
{
"@type": "LocationFeatureSpecification",
"name": "Online-Buchungssystem",
"value": true
}
]
}
Das Property amenityFeature mit LocationFeatureSpecification ist leistungsstark, wird aber häufig falsch genutzt. Hier die fünf typischsten Fehler:
@type-Wert: Viele lassen "@type": "LocationFeatureSpecification" weg — dann ignoriert Google die Einträge komplett."value": "true" statt "value": true — das ist ein Typfehler in JSON-LD."Gastronomie": true enthält, entwertet das deinen Trust-Score bei Google.Viele Fitnessstudio-Ketten, Bowlingcenter-Betreiber oder Tennisclub-Verbünde haben mehrere Standorte. Das richtige Muster ist, jede Filiale als eigenständige JSON-LD-Einheit auf ihrer eigenen Seite zu beschreiben — mit Verweis auf die übergeordnete Organisation:
{
"@context": "https://schema.org",
"@type": "HealthClub",
"name": "McFit Berlin Mitte",
"parentOrganization": {
"@type": "Organization",
"name": "McFit GmbH",
"url": "https://mcfit.com"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "Alexanderstraße 7",
"addressLocality": "Berlin",
"postalCode": "10178",
"addressCountry": "DE"
},
"branchOf": {
"@type": "Organization",
"name": "McFit GmbH",
"url": "https://mcfit.com",
"sameAs": "https://www.wikidata.org/wiki/Q2090185"
}
}
Mit parentOrganization und branchOf signalisierst du Google, dass dieser Standort Teil einer größeren Kette ist. Das verbessert die Einordnung in Marken-Suchanfragen (z. B. "McFit Berlin") erheblich.
Das Property event bei StadiumOrArena und anderen Sportstätten erlaubt die direkte Einbindung geplanter Veranstaltungen. Hier ein vollständiges Beispiel für einen Tennisclub mit geplanten Turnieren:
{
"@context": "https://schema.org",
"@type": "TennisComplex",
"name": "Tennispark am See",
"event": [
{
"@type": "SportsEvent",
"name": "Frühjahrsturnier 2026",
"startDate": "2026-05-15T09:00:00+02:00",
"endDate": "2026-05-17T18:00:00+02:00",
"description": "Vereinsturnier für Mitglieder und Gäste, Klassen A-D.",
"location": {
"@type": "Place",
"name": "Tennispark am See",
"address": {
"@type": "PostalAddress",
"addressLocality": "Freiburg"
}
},
"offers": {
"@type": "Offer",
"availability": "https://schema.org/InStock",
"price": "15.00",
"priceCurrency": "EUR",
"url": "https://tennispark-freiburg.de/turnier/anmeldung"
}
}
]
}
SportsEvent statt dem generischen Event-Typ. Das verbessert die semantische Einordnung durch Google und erhöht die Wahrscheinlichkeit für Event-Rich-Snippets. Lies dazu auch unseren Artikel über Event Schema Markup vertieft.
Der Google Rich Results Test (search.google.com/test/rich-results) behandelt SportsActivityLocation-Typen als LocalBusiness-Instanzen. Die häufigsten Warnungen und wie du sie behebst:
| Warnung/Fehler | Ursache | Lösung |
|---|---|---|
| Missing field "name" | Pflichtfeld fehlt | name immer angeben |
| Invalid value in field "value" | String statt Boolean | true/false ohne Anführungszeichen |
| Unknown property "numberOfHoles" | Inoffizielle Property | Stattdessen amenityFeature nutzen |
| Event has no startDate | Pflichtfeld bei Event fehlt | startDate im ISO-8601-Format angeben |
| Missing field "address" | LocalBusiness braucht Adresse | PostalAddress vollständig angeben |
Nutze diese Checkliste, um dein Schema Markup zu überprüfen bevor du es live schaltest:
HealthClub, GolfCourse, StadiumOrArena etc.)?name, address, telephone und url angegeben?openingHoursSpecification vollständig und im richtigen Format?amenityFeature mit LocationFeatureSpecification und korrekten booleschen Werten?aggregateRating mit echten, aktuellen Bewertungen?priceRange oder konkretes Preisangebot über hasOfferCatalog?event-Property mit SportsEvent befüllt?Nutze unseren kostenlosen JSON-LD Validator, um dein SportsActivityLocation-Schema auf Fehler zu prüfen — ohne Anmeldung, direkt im Browser.
JSON-LD Validator öffnen →Die Wahl des spezialisierten Sub-Typs ist der wichtigste Hebel bei SportsActivityLocation-Schema-Markup. Ein HealthClub mit vollständigem hasOfferCatalog, ein GolfCourse mit amenityFeature-Details oder ein StadiumOrArena mit verschachtelten SportsEvent-Einträgen — das alles gibt Google die Signale, die es braucht, um deine Einrichtung korrekt einzuordnen und in der Suche herauszustellen.
Kombiniere immer: korrekter Typ + vollständige Adresse + echte Bewertungen + relevante amenityFeatures. Das ist die Formel für Local-SEO-Erfolg mit strukturierten Daten. Prüfe danach auch unseren Artikel über LocalBusiness Schema Markup, um das Fundament zu festigen.