Google's course rich result can show a provider name and rating directly in search results. The minimum it needs is a course name, a description, and a provider organization — a rating is optional but adds a visible score when you have one to show.
Course Schema Generator
Build Course JSON-LD for an online course page — provider, instructor, and rating for Google's course rich results. Runs entirely in your browser.
Course details
Fill in what you have — optional fields are left out of the markup entirely.
Provider
Rating (optional)
Both rating fields are needed together to include a rating.
Price (optional)
Defaults to USD if left blank and a price is given.
JSON-LD
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Course"
}
</script>Required by Google, still empty
What goes into a course rich result
Frequently asked questions
Do I need to include a rating?
No — rating is optional for Course schema. Google's minimum requirement is a name, description, and provider. A rating adds a visible score to the rich result when you have genuine reviews to back it up.
What counts as the "provider"?
The organization actually offering the course — a university, a bootcamp, your own company if you sell courses directly. It doesn't have to be a household name; it just identifies who stands behind the course.
Can I use this for a free course?
Yes — enter 0 as the price, or leave the price field blank entirely if you'd rather not mention pricing in the markup at all. Both are valid; 0 explicitly signals "free" rather than "price unknown."
Does this work for a self-paced course, not just ones with fixed start dates?
Yes — this generator covers the core Course fields Google's rich result actually requires and commonly displays. Fixed-schedule details (start dates, duration, instructor per session) use a more advanced hasCourseInstance property that's out of scope for this simpler generator, aimed at the common case of a single evergreen course page.
How is this different from adding Course info inside a Product or Article schema?
Course is its own distinct schema.org type with its own required properties, recognized specifically by Google's course rich result. Nesting course details inside an unrelated type like Product won't trigger that rich result the same way.