Rankite
ServicesResultsToolsTeamAboutBlogCareersContactFree SEO Audit
Free tool

Course Schema Generator: Build Valid JSON-LD for Course Pages

Fill in your course details to get clean, ready-to-paste Course structured data, free.

Home / Tools / Course Schema Generator
Your Course JSON-LD

Built by Rankite, the SEO team behind Swordfish AI's +400% revenue and Zluri's +45% organic growth. See the case studies

Course structured data tells Google exactly what a page is offering: the name and description of the course, who provides it, and practical details like delivery mode, dates and price. Done well, it gives search engines a clean, machine-readable version of information a visitor would otherwise have to read the whole page to find.

What Google actually requires

Google's documentation lists only name and description as required on the Course type itself. provider is marked recommended rather than required, but skipping it leaves out a basic piece of context, who is actually running this course, so it is worth including on every real page. Everything past that is optional detail that makes the markup more useful without being strictly necessary for validity.

Why hasCourseInstance is worth adding

A CourseInstance nested under hasCourseInstance is where the practical scheduling and pricing information lives: courseMode, startDate, endDate, and a nested offers object for price. A Course entry without any instance data is technically valid but tells a search engine almost nothing beyond a name and a description, which limits how useful the markup actually is for someone comparing options in search results.

Valid courseMode values

Use Online, Onsite or Blended depending on how the course is actually delivered, matching Google's documented guidance for this property. If the same course runs in more than one format, publish a separate CourseInstance entry for each mode rather than trying to combine them into a single instance.

Related articles

FAQ

Course Schema Generator: questions, answered

What fields does Google require for Course schema?
Google's structured data guidelines require only name and description on the Course itself. The provider property is recommended, not strictly required, but leaving it out means Google has no clear signal for who is actually offering the course, so it is worth filling in on every real course page.
Do I need hasCourseInstance?
It is not strictly required, but it is where the useful details live: whether the course is online, onsite or blended, its start and end dates, and pricing through a nested offers property. A bare Course entry with just a name and description is valid but gives search engines very little to work with.
What are valid values for courseMode?
Google's guidance points to three values: Online, Onsite and Blended. Use whichever matches how the course is actually delivered, and if you run the same course in more than one mode, you can publish a separate CourseInstance for each.
Can I mark up a free course?
Yes. Set the price to 0 and it will still generate a valid offers object with priceCurrency set. A free course is a legitimate offer, it just has no cost attached, this is different from omitting pricing information entirely.
Does Course schema guarantee a rich result?
No structured data type guarantees a specific search appearance. Adding valid Course schema makes your page eligible for Google's course-related rich result treatment where available, it does not force it to appear, and eligibility can also depend on factors outside the markup itself, like the site's overall quality and the page's ranking.
What if my course runs multiple times a year?
Publish one hasCourseInstance entry per scheduled session, each with its own startDate and endDate. This tool generates a single instance to keep things simple, for a page listing several sessions you would repeat the hasCourseInstance block for each one inside the same Course object.

More free tools

Let's grow

Ready to own page one?

Get a free, no-obligation SEO audit and a 30-minute strategy session. We'll show you exactly where the growth is hiding.

Book your free audit Explore services
Get in touch

Tell us about your project

Fill out the form and we'll get back to you within one business day. Prefer email? Write to us directly at contact@rankite.com.

Or copy our email and write to us directly: contact@rankite.com