Free Course Schema Generator - Instant Course & CourseInstance JSON-LD
A free schema markup generator and JSON-LD builder for online, offline & hybrid courses - with provider, instructor, modules and pricing support.
Fill in your course name, provider, modules and (optionally) a specific batch or run - copy the generated JSON-LD and paste it into your page's <head>. Whether you're building a course schema generator for a single self-paced course or a live cohort with an instructor and fees, this tool builds clean, standards-compliant markup on the exact schema.org/Course spec, instantly, for free.
Based on schema.org/Course · Validated JSON-LD Output
Fill Your Course Details
⚠️ Please fix the following errors:
PT10H = 10 hours, P4W = 4 weekshasPart (CreativeWork) to outline the course structure.Instance Location & Instructor
Instance Pricing (Offer)
Advanced Options
What Is Course Schema (schema.org/Course)?
Course schema is JSON-LD structured data, based on the Course type on
schema.org/Course,
that describes an educational offering: its name, provider, level, credential, modules, and (optionally)
specific runs of that course with dates, mode, instructor and price. It's added to a page's
<head> as a <script type="application/ld+json"> block.
In short: a "course schema generator" is a tool that turns your course's details
(name, provider, modules, and an optional batch or run) into a ready-to-use JSON-LD block matching the
schema.org Course spec - including the nested CourseInstance object Google looks for when
a course has specific dates, a delivery mode, or a price. This page generates that code instantly,
for free, in your browser.
Course schema helps Google's Course rich results and AI-based answer engines such as AI Overviews understand who offers a course, what it teaches, how it's delivered, and what it costs - which matters for ed-tech platforms, training academies, coaching businesses, and any site that lists courses, cohorts, or workshops.
Course schema example
{
"@context": "https://schema.org",
"@type": "Course",
"name": "Mastering Local SEO for Restaurants",
"description": "A practical course on ranking restaurants locally.",
"provider": {
"@type": "Organization",
"name": "Search Savvy Academy",
"url": "https://example.com"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "online",
"startDate": "2026-09-20T09:00:00.000Z",
"endDate": "2026-10-25T09:00:00.000Z"
}
}Course vs CourseInstance - What's the Difference?
One describes what you teach. The other describes a specific time you're teaching it.
Course
The reusable description of the course itself on schema.org/Course: its name, provider, level, credential, and modules. It stays the same no matter how many times the course is run.
CourseInstance
A nested object describing one specific run: its courseMode (online, onsite, or blended), start and end dates, location or virtual URL, instructor, and offer (price and availability). A course can have zero, one, or several instances.
Rule of thumb: if your course is self-paced with no fixed dates, a bare Course
object is often enough. If it runs in cohorts, batches, or live sessions - or has a mode and a price - add a
CourseInstance so Google and AI systems can surface the "when," "how," and "how much" alongside
the "what."
How Provider, Instructor & Offers Fit Inside Course Schema
None of these are separate schema types on this page - they're nested objects inside your Course and CourseInstance. The provider (an Organization or EducationalOrganization) is required and identifies who runs the course. Inside a CourseInstance, the instructor is a nested Person, and offers is a nested Offer describing price, currency and availability.
This generator's location fields also handle online, offline, and hybrid delivery: fill
in a physical address for an in-person location, a virtual URL for an online one, or both for a hybrid
run - the tool nests them correctly as Place and VirtualLocation automatically.
CourseInstance with instructor & offer
{
"@type": "CourseInstance",
"courseMode": "hybrid",
"startDate": "2026-09-20T09:00:00.000Z",
"location": [
{ "@type": "Place", "name": "Search Savvy HQ, Mumbai" },
{ "@type": "VirtualLocation", "url": "https://zoom.us/j/example" }
],
"instructor": { "@type": "Person", "name": "Trainer Name" },
"offers": {
"@type": "Offer",
"price": "4999",
"priceCurrency": "INR",
"availability": "https://schema.org/InStock"
}
}How to Build & Implement Course Schema Markup
This JSON-LD builder does the heavy lifting - here's the full technical SEO workflow, start to finish.
Add course name, URL & provider
Fill in the required fields above: course name, course URL, and provider name.
Describe level, credential & modules
Add educational level, credential awarded, and optionally break the syllabus into modules.
Add a CourseInstance if it runs on dates
For cohorts or live sessions, add dates, mode, location or virtual URL, instructor and pricing.
Copy & paste into your <head>
Hit Copy (or Download), paste the script into your course page's <head>, then validate with Google's Rich Results Test.
Implementation note: place one <script type="application/ld+json"> block
per course page, inside <head> (or just before </body> if your CMS
doesn't expose the head). If you list several batches of the same course on one page, repeat the
hasCourseInstance property as an array rather than duplicating the whole Course object.
A Free, Instant Schema Generator Built for Real Course Pages
No sign-up, no watermark, no code editor required - just clean, valid Course JSON-LD you can trust.
100% Free, No Sign-Up
Generate unlimited course schema - no account, no email, no usage cap.
Instant Schema, Live Preview
Your JSON-LD updates as you type - no waiting, no separate "generate" step. A true instant schema and JSON-LD builder.
Clean, Valid JSON-LD
Output follows the schema.org Course spec exactly, so it passes Google's Rich Results Test and the Schema Markup Validator.
Modules & Course Structure
Break your syllabus into modules, added automatically as hasPart entries in the right order.
Online, Offline & Hybrid Instances
Add dates, mode, location, instructor and price for as many real-world runs as you need.
Nothing Leaves Your Browser
Everything runs client-side. Your course content is never uploaded or stored on a server.
Frequently Asked Questions About Course Schema
What is Course schema (schema.org/Course) used for?
Course schema tells search engines and AI systems the name, provider, level, credential, and structure of an educational offering - helping it qualify for Course-related rich results in Google Search and be understood accurately by AI Overviews and other answer engines.
What's the difference between Course and CourseInstance schema?
Course describes the offering itself - name, provider, level, modules - and stays constant. CourseInstance is a nested object describing one specific run of that course, with its own dates, delivery mode, location, instructor, and price. A course can have zero, one, or several instances.
Is this course schema generator really free?
Yes. It's completely free to use, with no sign-up, no watermark, and no limit on how many course schemas you generate.
What fields are required for valid Course schema?
At minimum: a course name and a provider (organization) name. A course URL, description, and CourseInstance are strongly recommended and this generator will flag missing required fields before you copy or download.
Do I need to add a CourseInstance for every course?
No. A CourseInstance is optional and mainly useful when a course runs on specific dates, in a specific mode, or at a specific price. Fully self-paced, always-available courses can often use just the base Course object.
How do I mark up online, offline, and hybrid courses?
Set the courseMode field on the CourseInstance (online, offline, or hybrid), then fill in a physical address for an in-person location, a virtual URL for an online one, or both for a hybrid run. This generator nests them as Place and VirtualLocation automatically.
How does pricing work inside Course schema?
Pricing sits inside a CourseInstance's offers property as a nested Offer object with price, priceCurrency, and availability. It's optional, but including it can make free or paid enrollment status clearer to both search engines and AI systems.
How do I implement course schema markup technically?
Copy the generated code and paste it inside a single <script type="application/ld+json"> tag in your course page's <head>. If a page lists multiple batches of the same course, use an array of CourseInstance objects rather than duplicating the whole Course.
Does Google's AI Overview use Course schema?
AI Overviews and similar AI-based answer engines rely on the same crawlable, structured signals as traditional search - including clearly marked-up course names, providers, modules, dates, and pricing. Valid Course schema makes those facts easier to extract accurately alongside clear on-page content, though it doesn't guarantee inclusion.
Explore More Free Schema & SEO Tools
Schema Markup Generator Hub
16 JSON-LD generators in one place - Organization, Article, Product, Review, Event, and more.
Article Schema Generator
Headline, author, publisher & speakable markup for Article, BlogPosting & NewsArticle.
Service Schema Generator
Price, provider & offer markup for Service, ProfessionalService & LocalBusiness.
FAQ Schema Generator
Turn your Q&A content into valid FAQPage JSON-LD in seconds.
Person Schema Generator
Generate schema.org/Person JSON-LD for instructor bios, team pages, and about pages.
Breadcrumb Schema Generator
Turn your breadcrumb trail into valid BreadcrumbList JSON-LD in seconds.