Skip to content
100% local

Course schema generator

Build a schema.org Course JSON-LD block from a course name, provider, dates and pricing.

Output

Course schema generator

Fill in a course name, description and provider and this tool builds a complete schema.org Course JSON-LD block, ready to paste into your page's `<head>`. It covers the fields search engines look for: the provider organization and its URL, the course language, a course code, prerequisites and the audience the course is aimed at.

Beyond the basics, you can add a course instance describing how and when the course runs — online, onsite or blended, with a start date, end date, a free-text schedule and an instructor name — plus pricing as an Offer (price, currency and availability) and an AggregateRating built from a rating value and review count. Every optional block only appears in the output once at least one of its fields is filled in, so a bare course listing stays a bare course listing.

Options control the shape of the output: wrap it in a `<script type="application/ld+json">` tag or copy the bare JSON, indent it for readability or compact it for production, sort keys alphabetically, and choose whether blank optional fields are omitted or kept as empty strings. A quote-escaping toggle controls how a literal quotation mark inside a course name or description is written, and a required-properties check flags in the live tally when the name, description or provider is still missing — schema.org's baseline for a usable Course entry.

Everything runs in your browser. The fields you type are never uploaded or stored anywhere — the JSON-LD is generated locally and only leaves your device when you copy or download it. Copy the result, download it as a .txt file, or send it to another tool's input to keep building.

FAQ

What does a Course rich result need?
At minimum a name, description and provider. Add hasCourseInstance or offers to make the listing eligible for Google's course rich result.
Why is the course instance missing from my output?
It only appears once you fill in at least one of start date, end date, schedule or instructor — an empty instance block would carry no information.
What date formats are accepted?
A bare date like 2026-10-01, or a date and time like 2026-10-01 09:00. Other formats are rejected so the schema never carries an ambiguous date.
Can I use this for a single course session instead of a whole program?
Yes. Leave the instance fields empty for a course with no fixed schedule, or fill them in to describe one specific run.
Is my course data uploaded anywhere?
No. The schema is generated entirely in your browser — nothing you type is sent to a server.