Import existing JSON-LD(paste code or read it from a URL)
Paste a Course JSON-LD block, several script tags or a whole page's HTML. The form fills with what it finds so you can edit and improve it.
Course details
0 characters. Google's course list shows about the first 60.
Course mode *
Price, workload & language
Workload is written as an ISO 8601 duration on the CourseInstance (12 hours becomes PT12H). Several languages can be comma separated; the first becomes inLanguage.
Dates, schedule & instructor
More runs of this course (extra CourseInstance)
Level, outcomes & syllabus
Syllabus sections
Ratings & reviews
Only mark up ratings shown on the page. Google ignores star ratings a business collects about itself on its own site for LocalBusiness and Organization.
Additional information
- CourseMissing required name.
- CourseMissing required description.
- CourseRecommended: add provider.
- CourseRecommended: add offers.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Course",
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online"
}
}
</script>How to use
Describe the course
Enter the course name, a description (Google's course list shows about the first 60 characters), the provider name and the provider URL.
Choose mode, price and workload
Pick Online, Offline or Blended; the last two ask for a location. Choose a price type, add price and currency if paid, and enter total hours and language.
Add extras and copy
Optionally add dates, runs, syllabus sections, ratings and reviews. Press Copy script, then check the block with Test in Google Rich Results Test or the Schema.org validator.
Why Course Schema Generator
- One or more CourseInstance runs with dates, schedule, instructor and workload.
- An Offer with a free, paid or subscription category.
- Syllabus, outcomes, prerequisites, level and credential fields.
- Ratings and reviews, plus import of existing Course JSON-LD.
Google course list requirements
Google's course list shows courses from one provider in a carousel-style list. It is built from Course markup on each course page plus an ItemList that names them. The table shows what each part needs.
Build the Course blocks here, one per course page. Then list those pages with the ItemList Schema Generator on the page that shows all the courses, choosing Course as the item type and Summary page if each course has its own page.
| Where | Property | Status |
|---|---|---|
| Course page | name | Required |
| Course page | description (about 60 characters shown) | Required |
| Course page | provider with name and sameAs or url | Recommended |
| List page | ItemList with itemListElement | Required |
| List page | ListItem position and url | Required |
| List page | At least three courses | Required |
Example: a self-paced online course
A 12-hour video course on spreadsheet basics, sold for 49 US dollars and taught in English, would use these settings: mode Online, price type Paid, price 49, currency USD, workload 12 and language en.
The output then holds a Course with name, description and a provider Organization, a CourseInstance with courseMode Online and courseWorkload PT12H, an Offer with category Paid, price 49 and priceCurrency USD, and inLanguage en. No location is written because the course has no campus.
If the same course also runs as a weekend class on campus, press Add course run and choose Offline with the campus name, so one block carries both runs. Keep the price and workload in the markup the same as on the page.
Common questions
Does Google still show course rich results?
Which Course schema fields does Google require for the course list?
What's the difference between Course and CourseInstance in course schema?
How do I mark a course as free in Course schema?
How is course workload written in Course JSON-LD?
Do online courses need location fields in Course schema?
Why is the Course description counter set to 60 characters?
How do I mark up a course that runs several times a year?
Should every course page get its own Course schema block?
More Schema tools
View allAutomatic Schema Markup Generator
Crawl your site, auto-detect + generate JSON-LD for every page
Schema Markup Generator
JSON-LD or microdata for 10 types, plus a validator
FAQ Schema Generator
Build FAQPage JSON-LD by hand, paste or URL import
Article Schema Generator
Build Article, BlogPosting or NewsArticle JSON-LD