Course Schema Generator
Create valid Course JSON-LD structured data for your online or in-person courses — with provider, schedule, location and price, ready for Google's course rich results. Instant, in your browser, free.
Try an example
Course info
Provider
Delivery
Cost (optional)
Add a price to include an offer. Use 0 for a free course.
JSON-LD code
Fill in the required fields (name, description, provider) to generate the JSON-LD code.
Why Course schema matters for e-learning
Course structured data tells Google that a page describes an educational course and captures its key facts — the title, a description, who provides it, how it is delivered, when it runs and what it costs. Eligible courses can appear as course rich results and in Google's course list experience, shown with the provider name and other details directly in search. For online academies, universities, bootcamps and independent instructors, that visibility is valuable: learners comparing options are far more likely to click a result that already shows the provider and format. It works for free — there is no marketplace fee, just valid markup on an indexable course page.
Online vs. in-person courses
The courseMode property on the course instance signals how the course is delivered. Use Online for fully remote, self-paced or live-streamed courses; Offline for courses taught in person at a physical venue; and Blended for a mix of both. For in-person and blended courses you should also provide a location — a venue name and address — so learners and Google know where it takes place. This tool hides the address fields automatically when you pick Online, because an online course has no physical location. Adding start and end dates is recommended for scheduled cohorts, while evergreen self-paced courses can omit them.
How to add the schema to your site
Copy the generated code and paste it into a script tag of type application/ld+json in the head section of the page describing that course — one course per page. The name, description and price in the markup must match what visitors see. Once the page is indexed, Google can use it for course rich results. A minimal example looks like this:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Course",
"name": "Introduction to Structured Data",
"description": "A hands-on course on JSON-LD and schema.org.",
"provider": {
"@type": "Organization",
"name": "SchemaValid Academy",
"sameAs": "https://www.example.com"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Online"
}
}
</script>Frequently asked questions
Which fields are required for Course schema?
What is hasCourseInstance for?
How do I mark up an online course?
How do I show that a course is free?
How do I validate the markup?
What is Course schema markup?
Should every course have its own page?
Can I add ratings or reviews to a course?
Does Course schema affect my search ranking?
What's the difference between Course and EducationEvent?
Do I need to keep the markup updated as dates change?
What are common mistakes when adding Course schema?
Related tools
FAQ Schema Generator
Generate FAQPage JSON-LD for AI search and structured Q&A data.
Article & Blog Posting Schema Generator
Generate Article, Blog Posting or NewsArticle JSON-LD for your posts.
Recipe Schema Generator
Generate Recipe JSON-LD with ingredients, steps and times for rich results.
Job Posting Schema Generator
Generate Job Posting JSON-LD to get your job openings into Google for Jobs.
Schema Markup Validator
Validate a live URL or JSON-LD code: SEO score, errors, warnings and rich-results readiness.
Organization Schema Generator
Generate Organization JSON-LD with logo, social profiles and contact for E-E-A-T.
