SportsActivityLocation Schema Markup für Fitnessstudio und Sporthalle
Schema Markup

SportsActivityLocation Schema Markup: Fitnessstudio, Sporthalle und Kletterhalle für Google optimieren

Shift07 Team
24. April 2026
12 Min. Lesezeit
Schema Markup

Wenn jemand nach einem „Fitnessstudio in meiner Nähe" oder einer „Kletterhalle in München" sucht, entscheidet Google in Sekundenbruchteilen, welche Ergebnisse angezeigt werden. Wer sein SportsActivityLocation Schema Markup korrekt implementiert hat, verschafft sich dabei einen messbaren Vorteil: Die eigene Website erscheint mit strukturierten Informationen direkt im Suchergebnis — inklusive Adresse, Öffnungszeiten und Bewertungen.

Dieser Artikel erklärt, was SportsActivityLocation in Schema.org ist, welche Sub-Typen es gibt, welche Properties wirklich wichtig sind, und zeigt vollständige JSON-LD-Beispiele für Fitnessstudios, Sporthallen, Kletterhallen und Tennisanlagen.

Was ist SportsActivityLocation?

SportsActivityLocation ist ein Schema.org-Typ, der von LocalBusiness und Place erbt. Er beschreibt Orte, an denen sportliche Aktivitäten stattfinden oder ausgeübt werden können — von der kleinen Yoga-Studio bis zur großen Mehrzweck-Sporthalle.

Als Untertyp von LocalBusiness erbt SportsActivityLocation alle Properties wie name, address, telephone, openingHours und geo. Zusätzlich stehen sport-spezifische Properties wie amenityFeature zur Verfügung, mit denen Ausstattungsmerkmale wie Parkplätze, Duschen oder WLAN beschrieben werden können.

Das Markup wird als strukturierte Daten im <head> oder <body> der Website eingebettet und von Google Crawler direkt ausgelesen. Korrekt implementiert, kann es zu sogenannten Rich Results führen — erweiterten Suchergebnissen mit mehr Informationen direkt im SERP.

Sub-Typen von SportsActivityLocation

Schema.org definiert für SportsActivityLocation mehrere spezialisierte Untertypen, die du anstelle des allgemeinen Typs verwenden solltest, wenn sie auf dein Unternehmen zutreffen:

  • BowlingAlley — Bowlingbahn
  • ExerciseGym — Fitnessstudio, Gym, Trainingszentrum
  • GolfCourse — Golfplatz, Golfanlage
  • PublicSwimmingPool — Öffentliches Schwimmbad, Hallenbad
  • SkiResort — Skigebiet, Skianlage
  • SportsClub — Sportverein, Sportclub mit Mitgliedschaft
  • StadiumOrArena — Stadion oder Arena für Zuschauersportveranstaltungen
  • TennisComplex — Tennisanlage, Tennisclub

Für Kletterhallen, Kampfsportstudios, Yoga-Studios oder Squashanlagen gibt es keinen eigenen Sub-Typ — hier verwendest du den allgemeinen Typ SportsActivityLocation direkt.

Die wichtigsten Properties im Überblick

Diese Properties sollte jedes vollständige SportsActivityLocation-Markup enthalten:

Pflicht-Properties

  • @type — Der passende Schema-Typ (z.B. ExerciseGym, TennisComplex)
  • name — Exakter Name des Ortes
  • address — Vollständige Adresse als PostalAddress
  • url — URL der Website oder Seite

Stark empfohlene Properties

  • telephone — Telefonnummer im Format +49 30 12345678
  • openingHoursSpecification — Öffnungszeiten als strukturiertes Objekt (besser als der einfache String openingHours)
  • geo — Geografische Koordinaten (Breitengrad + Längengrad)
  • image — URL eines Fotos des Ortes
  • description — Kurze Beschreibung des Angebots
  • priceRange — Preisindikator (z.B. €€ oder Ab 19 €/Monat)
  • aggregateRating — Durchschnittsbewertung mit Anzahl der Bewertungen
  • amenityFeature — Ausstattungsmerkmale (Parkplatz, Duschen, Sauna etc.)

Optionale Properties

  • email — E-Mail-Adresse
  • sameAs — Links zu Google My Business, Facebook, Instagram etc.
  • hasMap — URL zu Google Maps
  • smokingAllowed — Rauchen erlaubt (true/false)
  • publicAccess — Öffentlich zugänglich (true/false)
  • sport — Welche Sportart(en) werden angeboten

Vollständiges JSON-LD-Beispiel: Fitnessstudio

Hier ist ein vollständiges Markup für ein ExerciseGym — das genaueste Schema für ein Fitnessstudio:

{
  "@context": "https://schema.org",
  "@type": "ExerciseGym",
  "name": "FitLife Fitnessstudio Hamburg",
  "description": "Modernes Fitnessstudio in Hamburg-Altona mit über 200 Geräten, Kursprogramm und persönlichem Training.",
  "url": "https://fitlife-hamburg.de",
  "telephone": "+49 40 12345678",
  "email": "info@fitlife-hamburg.de",
  "priceRange": "Ab 29 €/Monat",
  "image": "https://fitlife-hamburg.de/images/studio.jpg",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Altonaer Hauptstraße 42",
    "addressLocality": "Hamburg",
    "addressRegion": "HH",
    "postalCode": "22765",
    "addressCountry": "DE"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 53.5511,
    "longitude": 9.9398
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
      "opens": "06:00",
      "closes": "23:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Saturday","Sunday"],
      "opens": "08:00",
      "closes": "20:00"
    }
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "238",
    "bestRating": "5",
    "worstRating": "1"
  },
  "amenityFeature": [
    {
      "@type": "LocationFeatureSpecification",
      "name": "Parkplatz",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Duschen",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Sauna",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "WLAN",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Barrierefreiheit",
      "value": true
    }
  ],
  "sameAs": [
    "https://maps.google.com/?cid=12345678",
    "https://www.facebook.com/fitlifehamburg",
    "https://www.instagram.com/fitlifehamburg"
  ]
}

Vollständiges JSON-LD-Beispiel: Kletterhalle

Für eine Kletterhalle gibt es keinen eigenen Sub-Typ. Hier wird der generelle Typ SportsActivityLocation verwendet. Entscheidend ist, dass das Angebot über description und amenityFeature klar beschrieben wird:

{
  "@context": "https://schema.org",
  "@type": "SportsActivityLocation",
  "name": "Kletterhalle Alpin München",
  "description": "Kletterhalle in München mit Boulder- und Seilbereich. Anfängerkurse, Tagesticket ab 12 €.",
  "url": "https://kletterhalle-alpin.de",
  "telephone": "+49 89 98765432",
  "priceRange": "Ab 12 €/Tag",
  "image": "https://kletterhalle-alpin.de/bilder/halle.jpg",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Sportweg 18",
    "addressLocality": "München",
    "addressRegion": "BY",
    "postalCode": "80939",
    "addressCountry": "DE"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 48.1851,
    "longitude": 11.6020
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
      "opens": "10:00",
      "closes": "22:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Saturday","Sunday"],
      "opens": "09:00",
      "closes": "21:00"
    }
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "412",
    "bestRating": "5",
    "worstRating": "1"
  },
  "amenityFeature": [
    {
      "@type": "LocationFeatureSpecification",
      "name": "Boulderbereich",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Seilklettern",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Ausrüstungsverleih",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Anfängerkurse",
      "value": true
    }
  ]
}

Vollständiges JSON-LD-Beispiel: Tennisanlage

Für eine Tennisanlage steht der Sub-Typ TennisComplex bereit. Dieser ist präziser als der allgemeine Typ und sollte bevorzugt werden, wenn er passt:

{
  "@context": "https://schema.org",
  "@type": "TennisComplex",
  "name": "Tennis-Club Blau-Weiß Berlin",
  "description": "Tennisanlage in Berlin-Charlottenburg mit 8 Außen- und 4 Hallenplätzen, Vereinsmitgliedschaft und Gastspielen.",
  "url": "https://tc-blau-weiss-berlin.de",
  "telephone": "+49 30 55667788",
  "priceRange": "Gastspiel ab 20 €/Stunde",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Tennisweg 5",
    "addressLocality": "Berlin",
    "addressRegion": "BE",
    "postalCode": "10587",
    "addressCountry": "DE"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 52.5165,
    "longitude": 13.2960
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],
      "opens": "07:00",
      "closes": "22:00"
    }
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "reviewCount": "89",
    "bestRating": "5",
    "worstRating": "1"
  },
  "amenityFeature": [
    {
      "@type": "LocationFeatureSpecification",
      "name": "Hallenplätze",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Außenplätze",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Schlägerverleih",
      "value": true
    },
    {
      "@type": "LocationFeatureSpecification",
      "name": "Gastronomie",
      "value": true
    }
  ]
}

Die sport-Property: Angebotene Sportarten angeben

Die sport-Property ist bei SportsActivityLocation besonders nützlich, wenn ein Ort mehrere Sportarten anbietet. Du kannst einen einfachen Text-Wert oder eine URL zu einer Definition angeben:

{
  "@context": "https://schema.org",
  "@type": "SportsActivityLocation",
  "name": "Mehrkampf-Zentrum Köln",
  "sport": ["Kampfsport", "Fitness", "Yoga", "Pilates"],
  ...
}

Google nutzt diese Angabe, um Inhalte thematisch besser einzuordnen. Für Sportarten, die gut in Suchanfragen auftauchen (z.B. „Yoga Studio Köln", „BJJ Gym Hamburg"), lohnt sich die Angabe besonders.

OpeningHoursSpecification vs. openingHours

Schema.org bietet zwei Wege, Öffnungszeiten anzugeben: den einfachen String openingHours und das strukturierte Objekt openingHoursSpecification. Letzteres ist präziser und wird von Google für Rich Results bevorzugt.

Für Sonderöffnungszeiten — etwa Heiligabend, Silvester oder Betriebsferien — kann openingHoursSpecification mit validFrom und validThrough kombiniert werden:

{
  "@type": "OpeningHoursSpecification",
  "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
  "opens": "10:00",
  "closes": "14:00",
  "validFrom": "2026-12-24",
  "validThrough": "2026-12-26"
}

Mehr Details dazu findest du im Artikel zu OpeningHoursSpecification Schema Markup.

amenityFeature: Ausstattungsmerkmale strukturiert angeben

Die amenityFeature-Property erlaubt es, Ausstattungsmerkmale als LocationFeatureSpecification-Objekte zu listen. Das ist für Sportanlagen besonders wertvoll, weil Nutzer häufig nach spezifischen Features suchen:

  • „Fitnessstudio mit Sauna Berlin"
  • „Schwimmbad mit Kinderbereich Hamburg"
  • „Kletterhalle mit Kursangebot München"

Jedes Ausstattungsmerkmal wird als eigenes Objekt angegeben:

"amenityFeature": [
  {
    "@type": "LocationFeatureSpecification",
    "name": "Parkplatz",
    "value": true
  },
  {
    "@type": "LocationFeatureSpecification",
    "name": "Umkleidekabinen",
    "value": true
  },
  {
    "@type": "LocationFeatureSpecification",
    "name": "Kinderprogramm",
    "value": false
  }
]

Der value-Wert kann true, false oder ein Text-String sein (z.B. "8 Außenplätze, 4 Hallenplätze").

aggregateRating: Bewertungen einbinden

Wenn dein Studio oder deine Anlage Bewertungen hat — sei es über Google, ein eigenes Bewertungssystem oder eine andere Plattform — solltest du sie mit aggregateRating ins Markup einbinden. Das führt zu Sternebewertungen im Suchergebnis und erhöht die Klickrate signifikant.

Wichtig: Google zeigt Sternebewertungen nur dann, wenn die Bewertungen von echten Nutzern stammen und auf der eigenen Website verwaltet werden. Bewertungen, die nur von externen Plattformen (Google Maps, Yelp) agregiert werden ohne eigene Basis auf der Website, akzeptiert Google nicht für Rich Snippets.

Details zur korrekten Implementierung erklärt unser Artikel zu AggregateRating Schema Markup.

Sporthalle vs. Fitnessstudio: Welcher Typ passt?

Die Auswahl des richtigen Sub-Typs ist entscheidend für die semantische Präzision des Markups. Hier eine schnelle Orientierungshilfe:

  • Fitnessstudio / Gym / TrainingscenterExerciseGym
  • Sportverein mit MitgliedschaftSportsClub
  • Tennisclub / TennisanlageTennisComplex
  • Golfanlage / GolfclubGolfCourse
  • BowlingbahnBowlingAlley
  • Hallenbad / FreibadPublicSwimmingPool
  • Skigebiet / SkipisteSkiResort
  • Kletterhalle, Yoga-Studio, Kampfsportschule, Squashhalle, ReitsportSportsActivityLocation (allgemein)

Einbindung in die Website: Wo platziert man das JSON-LD?

Das JSON-LD-Markup wird idealerweise im <head>-Bereich der Seite platziert, kann aber auch im <body> stehen. Google empfiehlt JSON-LD gegenüber Microdata und RDFa, da es einfacher zu warten ist und keine Auswirkungen auf das sichtbare HTML hat.

<head>
  ...
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "ExerciseGym",
    ...
  }
  </script>
  ...
</head>

Wenn deine Website WordPress nutzt, kannst du Plugins wie Rank Math oder Yoast SEO verwenden, die für Unterseiten automatisch lokales Schema generieren. Für maßgeschneiderte Sportanlagen-Websites ist manuelles JSON-LD jedoch oft präziser.

Validierung: Markup auf Fehler prüfen

Bevor du das Markup live schaltest, solltest du es zwingend validieren. Fehler in strukturierten Daten werden von Google nicht ignoriert — sie können dazu führen, dass kein Rich Result ausgespielt wird.

Zwei Tools für die Validierung:

  1. Google Rich Results Test — Prüft ob Google das Markup erkennt und ob Rich Results möglich sind
  2. Schema.org Validator — Prüft die Konformität mit den Schema.org-Definitionen

Alternativ kannst du unseren kostenlosen JSON-LD Structured Data Validator nutzen, um das Markup direkt im Browser zu testen.

Häufige Fehler und wie du sie vermeidest

1. Falsche oder nicht passende Koordinaten

Die geo-Property mit GeoCoordinates muss präzise sein. Falsche Koordinaten können dazu führen, dass Google dein Unternehmen falsch in der lokalen Suche positioniert. Nutze Google Maps, um die exakten Koordinaten deines Standorts zu ermitteln.

2. Inkonsistenz zwischen Website und Markup

Google prüft, ob die Angaben im Markup mit dem sichtbaren Inhalt der Seite übereinstimmen. Wenn auf der Seite Öffnungszeiten von 8–20 Uhr stehen, das Markup aber 6–22 Uhr angibt, kann Google das als Manipulation werten. Stelle NAP-Konsistenz sicher — Name, Adresse und Telefon müssen überall identisch sein.

3. Bewertungen ohne eigene Basis einbinden

Wie oben erwähnt: Nur Bewertungen, die wirklich auf der eigenen Website gesammelt wurden, dürfen im aggregateRating stehen. Google-Maps-Sterne dürfen nicht 1:1 übernommen werden.

4. Fehlende Required Properties

Ohne name und address wird Google das Markup nicht für Rich Results nutzen. Prüfe nach der Implementierung immer mit dem Rich Results Test, ob alle erforderlichen Felder vorhanden sind.

5. Markup nur auf der Startseite

Wenn deine Sportanlage mehrere Standorte hat, sollte jeder Standort eine eigene Unterseite mit eigenem Schema-Markup erhalten. Ein generisches Markup auf der Startseite reicht für mehrere Standorte nicht aus.

SportsActivityLocation und lokale SEO

Das Schema-Markup allein reicht nicht aus, um lokal gut zu ranken. Es ist ein Signal von vielen. Ergänzend solltest du:

  • Deinen Google My Business Eintrag optimieren — er ist für lokale Suchergebnisse entscheidend
  • Lokale Keywords wie „Fitnessstudio [Stadtname]" auf der Seite gezielt einsetzen
  • Echte Kundenbewertungen sammeln und beantworten
  • NAP-Daten auf allen Plattformen konsistent halten
  • Lokale Backlinks aufbauen (Stadtportale, Sportverbände, lokale Blogs)

Die Kombination aus korrektem Schema-Markup und einem gepflegten Google My Business Profil ist die wirkungsvollste Maßnahme für Sportanlagen im lokalen Suchbereich.

Checkliste: SportsActivityLocation Schema Markup

  • Richtigen Sub-Typ gewählt (ExerciseGym, TennisComplex, SportsClub etc.)?
  • name, address und url vollständig und korrekt?
  • telephone im internationalen Format (+49...)?
  • geo mit exakten Koordinaten?
  • openingHoursSpecification für alle Wochentage konfiguriert?
  • image mit URL eines qualitativ hochwertigen Fotos?
  • amenityFeature mit den wichtigsten Merkmalen der Anlage?
  • aggregateRating falls echte Bewertungen vorhanden?
  • sameAs mit Links zu Google My Business und Social Media?
  • Markup mit Google Rich Results Test validiert?
  • Konsistenz zwischen sichtbarem Content und Markup geprüft?

Fazit

SportsActivityLocation Schema Markup ist ein wichtiger Baustein für Sportanlagen, Fitnessstudios und Freizeiteinrichtungen, die in der lokalen Suche sichtbar werden wollen. Es kostet wenig Aufwand, bringt aber strukturierte Informationen direkt in die Suchergebnisse und kann die Klickrate spürbar erhöhen.

Wähle den passenden Sub-Typ, fülle alle wichtigen Properties aus, und validiere das Markup vor der Veröffentlichung. Kombiniere das Schema-Markup mit einem gepflegten Google My Business Profil — dann hast du die beste Grundlage für mehr organischen Traffic aus dem lokalen Suchbereich.

Möchtest du wissen, welche weiteren strukturierten Daten für deine Website sinnvoll sind? Nutze unsere kostenlose SEO-Analyse auf shift07.ai und erhalte konkrete Empfehlungen für deine Website.

Teste deine Website jetzt kostenlos

Erhalte eine vollständige SEO-Analyse mit konkreten Verbesserungsvorschlägen.

Analyse starten