ExercisePlan
ExercisePlan dual-inherits from PhysicalActivity (via LifestyleModification → MedicalEntity) and CreativeWork. It is the canonical type for published training plans: couch-to-5k programmes, weight-training splits, rehab protocols, yoga courses.
Direct properties:
exerciseType(Text): type of exercise.activityDuration: how long each session lasts.activityFrequency: how often (per week).intensity: QuantitativeValue or free text.repetitions: reps per set.restPeriods: rest between sets.workload: energy expenditure or resistance load.additionalVariable: free-text notes on any other variable.
Use category (PhysicalActivityCategory) and exerciseCourse (from PhysicalActivity) as well.
Full example of schema.org/ExercisePlan json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ExercisePlan",
"@id": "https://xoocode.com/runners/c25k-programme",
"name": "Thunderdome 5K — Couch-to-5k 8-week programme",
"description": "Eight-week structured running plan: progressive walk/run intervals to a continuous 5 km run by week 8.",
"author": { "@type": "Person", "name": "Priya Chen" },
"category": "https://schema.org/AerobicActivity",
"exerciseType": "Interval running",
"activityDuration": "PT30M",
"activityFrequency": "3 sessions per week",
"intensity": "Moderate; target heart rate 65-75% of max",
"restPeriods": "60-90 seconds between intervals in weeks 1-4",
"additionalVariable": "Sessions on non-consecutive days; cross-training (swim or cycle) recommended on off days"
}
</script>Minimal valid version
The smallest markup that still produces a valid ExercisePlan 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": "ExercisePlan",
"name": "Thunderdome 5K",
"exerciseType": "Interval running",
"activityFrequency": "3 per week"
}
</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 docsNo dedicated rich result (fitness-content graphs)
Common ExercisePlan 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
Missing category
WrongExercisePlan with no PhysicalActivityCategoryRightcategory = AerobicActivity / StrengthTraining / Balance / FlexibilityFitness-search filters on category; omitting it flattens the plan into the miscellaneous bucket.
- 02
activityDuration as plain number
Wrong"activityDuration": 30RightISO 8601 duration "PT30M"Plain numbers are unitless.
Schema properties in this example
About the example data
The Thunderdome 5K Programme, an 8-week couch-to-5k plan.
Comments
Loading comments...