Shift07

SportsActivityLocation Schema Markup vertieft: GolfCourse, StadiumOrArena und alle Sub-Typen

25. April 2026 · Schema Markup · 14 Min. Lesezeit

SportsActivityLocation Schema Markup vertieft: GolfCourse, StadiumOrArena und Sub-Typen

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.

Die vollständige Hierarchie: SportsActivityLocation und ihre Sub-Typen

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.

GolfCourse: So zeichnest du einen Golfplatz aus

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"
}
Tipp: Das Property 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.

HealthClub: Erweiterte Eigenschaften für Fitnessstudios

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.

Kursangebot als hasOfferCatalog einbinden

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: Events, Kapazität und Sitzplan

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.

Stadion-Grundstruktur

{
  "@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"
      }
    }
  ]
}
Wichtig: Das Property 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.

PublicSwimmingPool: Hallenbad und Freibad richtig auszeichnen

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"
  }
}

SkiResort: Wintersportanlagen mit aktuellen Daten

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"
  }
}
Tipp: Das Property 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.

BowlingAlley und TennisComplex: Kleinere Sportanlagen

BowlingAlley

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"
  }
}

TennisComplex

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
    }
  ]
}

amenityFeature richtig einsetzen: Die 5 häufigsten Fehler

Das Property amenityFeature mit LocationFeatureSpecification ist leistungsstark, wird aber häufig falsch genutzt. Hier die fünf typischsten Fehler:

  1. Fehlender @type-Wert: Viele lassen "@type": "LocationFeatureSpecification" weg — dann ignoriert Google die Einträge komplett.
  2. Boolesche Werte als Strings: "value": "true" statt "value": true — das ist ein Typfehler in JSON-LD.
  3. Featurenamen zu lang: Halte Featurenamen unter 50 Zeichen. Lange Strings werden im Knowledge Panel abgeschnitten oder übergangen.
  4. Doppelungen ohne Mehrwert: Nicht jede Selbstverständlichkeit als Feature eintragen (z. B. "Parkplatz" für einen Golfplatz auf dem Land — das ist erwartbar und erzeugt Rauschen).
  5. Widersprüchliche Daten: Wenn deine Website sagt "kein Restaurant" aber das Schema "Gastronomie": true enthält, entwertet das deinen Trust-Score bei Google.

Mehrfach-Standorte: Schema-Markup für Sportketten

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.

Verschachtelte Events: Sportveranstaltungen einbinden

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"
      }
    }
  ]
}
Tipp: Verwende bei Sportveranstaltungen immer 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.

Validierung und häufige Fehler im Rich Results Test

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

Checkliste: SportsActivityLocation Schema Markup vollständig

Nutze diese Checkliste, um dein Schema Markup zu überprüfen bevor du es live schaltest:

Dein Schema Markup sofort überprüfen

Nutze unseren kostenlosen JSON-LD Validator, um dein SportsActivityLocation-Schema auf Fehler zu prüfen — ohne Anmeldung, direkt im Browser.

JSON-LD Validator öffnen →

Fazit: Mit dem richtigen Sub-Typ zum Rich Snippet

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.