Structured data for marking up individual courses offered by your site or organization, so Google can understand and potentially show your courses as rich results in Search (like course carousels or detailed course info).
Key Benefits of Course Structured Data #
- Enables rich results for courses in Google Search, improving visibility.
- Helps users discover course details right from search.
- Supports host carousel rich results when combined with ItemList markup on summary pages.
Where to Add Course Structured Data? #
- On course detail pages: Each page describing one course should have detailed structured data for that course.
- On summary pages: Use ItemList with ListItem URLs pointing to individual course detail pages (to enable carousel).
Required Properties for Course Markup #
{
“@context”: “https://schema.org”,
“@type”: “Course”,
“name”: “Course name”,
“description”: “Brief description of the course”,
“provider”: {
“@type”: “Organization”,
“name”: “Provider name”,
“sameAs”: “https://provider-website.com”
}
}
- name (Text): Name of the course (required).
- description (Text): Brief course description (required).
- provider (Organization or Person): Entity offering the course (required).
- Use name and optionally sameAs (URL of provider homepage or social profile).
- Use name and optionally sameAs (URL of provider homepage or social profile).
Recommended Properties (Optional but Helpful) #
- courseCode: Unique code or identifier for the course.
- url: URL to the course page.
- coursePrerequisites: Description of course prerequisites.
- hasCourseInstance: Details about specific offerings of the course, such as start date, end date, location, instructors, etc.
Example JSON-LD for a Course #
{
“@context”: “https://schema.org”,
“@type”: “Course”,
“name”: “Practical Digital Marketing Mastery”,
“description”: “An in-depth hands-on digital marketing course covering SEO, Google Ads, social media, and growth hacking.”,
“provider”: {
“@type”: “Organization”,
“name”: “FSIDM”,
“sameAs”: “https://fsidm.in”
}
}
Using hasCourseInstance for Specific Sessions #
You can add detailed session info using hasCourseInstance, for example:
{
“@context”: “https://schema.org”,
“@type”: “Course”,
“name”: “Practical Digital Marketing Mastery”,
“description”: “Hands-on digital marketing course covering SEO, paid ads, and more.”,
“provider”: {
“@type”: “Organization”,
“name”: “FSIDM”,
“sameAs”: “https://fsidm.in”
},
“hasCourseInstance”: {
“@type”: “CourseInstance”,
“name”: “Batch July 2025”,
“startDate”: “2025-07-01”,
“endDate”: “2025-09-30”,
“location”: {
“@type”: “Place”,
“name”: “Online”
},
“instructor”: {
“@type”: “Person”,
“name”: “Pranav Veerani”
}
}
}
Guidelines & Tips #
- Place the Course structured data on the course detail page.
- Make sure the content visible on the page matches the structured data.
- Use Google’s Rich Results Test to validate your JSON-LD.
- Combine Course structured data with ItemList on a summary page to enable carousel rich results.
- Follow general Google Structured Data Guidelines.