Skip to main content
WP Bulk Publishing
WP Bulk Publishing
Events & Learning · Situational

Course + CourseInstance schema — what it does & how to ship it

Short answer

Course marks up an educational course with provider, description and CourseInstance (schedule + mode + duration) — unlocking Google's course carousel.

What it does

Course carries name, description, provider and hasCourseInstance (with courseMode, courseWorkload, startDate, endDate). Supporting fields include educationalCredentialAwarded and coursePrerequisites.

SERP / AI benefit

Course carousel eligibility for education queries, plus enrichment for LLMs answering 'how do I learn X' questions.

Where to use it

Academy lessons, tracks, certifications.

JSON-LD example

{
  "@context": "https://schema.org",
  "@type": "Course",
  "name": "WBP Academy — GEO Fundamentals",
  "description": "Learn to get cited by ChatGPT, Perplexity and Google AI Overviews.",
  "provider": { "@type": "Organization", "name": "WBP Omni SEO Pro", "url": "https://wbpomniseo.com" },
  "hasCourseInstance": { "@type": "CourseInstance", "courseMode": "online", "courseWorkload": "PT2H" }
}

Copy, edit for your site, and drop into your page head inside a<script type="application/ld+json">block. Validate with Google's Rich Results Test.

In WBP Omni SEO Pro

Live on every /academy/* lesson with courseMode (online), workload and provider set to WBP Omni SEO Pro.

Ship Course + CourseInstance without touching code

Frequently asked

Do I need CourseInstance?

As of 2023 Google requires at least one hasCourseInstance for rich-result eligibility.

Can Course be free?

Yes — set offers.price to 0 or omit offers if the course has no price.

Related schemas

Keep learning