SportsActivityLocation
SportsActivityLocation is a LocalBusiness subtype for places where people participate in sports and fitness activities: gyms, golf courses, ski resorts, swimming pools, bowling alleys, tennis clubs. Like Store, it defines no properties of its own. Its value is classification: Google Maps and local search use the type (and its subtypes) to categorize the business.
Schema.org provides 9 subtypes: BowlingAlley, ExerciseGym, GolfCourse, HealthClub, PublicSwimmingPool, SkiResort, SportsClub, StadiumOrArena, and TennisComplex. Pick the most specific one. If nothing fits (for example, a climbing gym or a martial arts dojo), use the parent type SportsActivityLocation.
Full example of schema.org/SportsActivityLocation json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@id": "https://dunmorefitness.com#gym",
"@type": "ExerciseGym",
"name": "Dunmore Fitness",
"description": "Independent gym in downtown Dunmore. Free weights, cardio floor, group classes, and personal training. No contracts, month-to-month memberships.",
"url": "https://dunmorefitness.com",
"image": "https://dunmorefitness.com/images/gym-floor.jpg",
"telephone": "+1-570-555-0210",
"address": {
"@type": "PostalAddress",
"streetAddress": "412 Main Street",
"addressLocality": "Dunmore",
"addressRegion": "PA",
"postalCode": "18512",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 41.4196,
"longitude": -75.6338
},
"priceRange": "$$",
"amenityFeature": [
{ "@type": "LocationFeatureSpecification", "name": "Free Weights", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Cardio Machines", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Group Classes", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Personal Training", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Locker Rooms", "value": true },
{ "@type": "LocationFeatureSpecification", "name": "Swimming Pool", "value": false },
{ "@type": "LocationFeatureSpecification", "name": "Sauna", "value": false }
],
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "05:00",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Saturday", "Sunday"],
"opens": "07:00",
"closes": "20:00"
}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.4",
"reviewCount": "89",
"bestRating": "5"
}
}
</script>SportsActivityLocation vs SportsOrganization
SportsActivityLocation is a place where sports happen. SportsOrganization (and its subtype SportsTeam) is a group of people who play sports. A gym is a SportsActivityLocation. A football team is a SportsTeam. A stadium can be both a SportsActivityLocation (the venue) and host SportsTeam events. Do not confuse the two.
amenityFeature for equipment and facilities
amenityFeature (inherited from Place via LocalBusiness) is especially useful here. Use LocationFeatureSpecification objects to declare what the facility has: free weights, cardio machines, pool, sauna, group classes, personal training, locker rooms, parking. Google and fitness apps read these for facility-filtered searches.
ExerciseGym vs HealthClub
ExerciseGym is for gyms focused on individual workouts (weights, cardio, machines). HealthClub is broader: it includes gyms that also offer spa services, group fitness, nutrition counseling, and wellness programs. If the business is a pure gym, use ExerciseGym. If it bundles fitness with wellness services, use HealthClub.
Minimal valid version
The smallest markup that still produces a valid SportsActivityLocation entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ExerciseGym",
"name": "Dunmore Fitness",
"address": {
"@type": "PostalAddress",
"addressLocality": "Dunmore",
"addressRegion": "PA"
}
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsLocal business rich resultprimary
Common SportsActivityLocation mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
Confusing SportsActivityLocation with SportsTeam
Wrong"@type": "SportsActivityLocation" for a basketball teamRight"@type": "SportsTeam" for teams; SportsActivityLocation for venues and facilitiesSportsActivityLocation is a place (gym, golf course, pool). SportsTeam is an organization (a team of athletes). A stadium is a SportsActivityLocation. The team that plays there is a SportsTeam. Mixing them up puts the entity in the wrong search category entirely.
- 02
Using SportsActivityLocation when a subtype fits
Wrong"@type": "SportsActivityLocation" for a standard gymRight"@type": "ExerciseGym"Schema.org has 9 subtypes. ExerciseGym for gyms, GolfCourse for golf, SkiResort for skiing, PublicSwimmingPool for pools, BowlingAlley for bowling, and so on. The specific type improves local search categorization. Use the parent type only for facilities that do not fit any of the nine.
- 03
Missing amenityFeature for key equipment
WrongExerciseGym with no amenityFeatureRight"amenityFeature": [{ "@type": "LocationFeatureSpecification", "name": "Free Weights", "value": true }]Gym-seekers filter by equipment: free weights, pool, sauna, group classes. amenityFeature makes these filterable by Google and fitness apps. Listing what you do NOT have (value: false) is also useful, as it prevents wasted visits.
- 04
ExerciseGym when HealthClub is more accurate
Wrong"@type": "ExerciseGym" for a facility with spa, yoga studio, nutrition counseling, and gym floorRight"@type": "HealthClub"ExerciseGym is for pure gyms (weights, cardio, machines). HealthClub covers broader wellness facilities with spa, classes, and wellness services. Using ExerciseGym for a full-service health club undersells the business in filtered searches.
Schema properties in this example
About the example data
Dunmore Fitness is a fictional gym on Main Street in Dunmore, two blocks from Hotel Dunmore. XooCon attendees get a free day pass. The amenityFeature list reflects a mid-size independent gym rather than a large chain.
Comments
Loading comments...