You have built a great online course. You have a solid landing page, a clear curriculum, and happy students. But when someone searches Google for a course exactly like yours, your page is nowhere to be found, and a competitor shows up instead.
Often, the missing piece is Course schema.
Course schema is the structured data that tells Google, and increasingly AI tools like ChatGPT and Perplexity, that your page is an educational course. Without it, search engines are left guessing. With it, your course becomes a clear, machine-readable entity that can be discovered, compared, and recommended.
This guide walks you through what Course schema is, an important recent change you need to know about, the properties that matter, and how to add it to your WordPress site the easy way.
Quick answer: Course schema is structured data based on the Schema.org Course type that tells search engines a page is an educational course. It requires at least a name and a provider. While Google retired the detailed course-info rich result in 2025, the Course List carousel is still supported, and Course schema remains highly valuable for AI search visibility. On WordPress, a plugin like SchemaEngine AI is the simplest way to add it correctly.
What Is Course Schema?
Let’s keep this simple. Course schema is a type of structured data, based on the Schema.org vocabulary, that labels a web page as an educational course. It is used by online course creators, universities, bootcamps, and training providers to help their courses show up in Google Search and get picked up by AI answer engines.
Schema.org defines a course as a sequence of one or more educational events or works that aims to build a learner’s knowledge, competence, or ability. In plain terms: if your page teaches something specific and has a clear learning outcome, it likely qualifies.
Google is stricter, though. It only wants Course markup on content that genuinely fits its definition of a course. So what does not qualify?
- A single short how-to video, like “How to change a watch battery”
- A public event aimed at the general public, like “International Archaeology Day”
- A page summarizing academic degrees rather than a specific course
- A standalone exam with no teaching involved
If your page is a real course or course program with actual lessons and an outcome, you are good to go.
The Course Schema Properties That Matter
Course schema has just two required properties, plus several recommended ones that make your markup far more useful. Let’s break them down.
The two required properties:
- name: The exact title of your course. This one has strict rules, which we cover in the mistakes section below.
- provider: The organization or person offering the course. This must include a name, and it is how Google identifies who is behind the course.
Recommended properties worth adding:
- description: A clear, concise summary of what the course covers and what learners will achieve.
- provider.url: A link to the providing organization, which strengthens your entity connection.
- educationalLevel: The level of the course, such as Beginner, Intermediate, or Advanced. This is especially useful for AI and voice search.
- hasCourseInstance: A specific scheduled offering of the course, with details like date, location, and mode of study (online or on-site). One course can have several instances, such as a January cohort and a March cohort.
- offers: Pricing information for the course.
- aggregateRating: Ratings from your learners, if you display them on the page.
You do not need every property. A focused set of accurate ones beats a long list of weak or guessed values every time.
Getting Into the Course List Carousel
If you want to appear in the Course List carousel, Google has three specific requirements that trip up a lot of people. Miss any one, and you will not qualify.
- You must mark up at least three courses. Two is not enough. If you only have two courses, use individual Course schema on each page rather than padding a list with duplicates.
- You need Carousel (ItemList) markup. The carousel is powered by an
ItemListon a summary page that links to your individual course pages, or an all-in-one page that holds everything together. - Every course needs a unique URL. Duplicate URLs disqualify your carousel. If the same course lives at more than one URL, canonicalize first, then mark up only the canonical version.
Think of it as two layers working together: each course page carries its own Course schema, and a summary page uses ItemList markup to tie three or more of them into a browsable row.
How to Add Course Schema in WordPress
Now for the practical part. You have two main options on WordPress.
The Manual Route
You can write the JSON-LD yourself and drop it into your page. Here is a simplified example of what a single course looks like:
json
{
"@context": "https://schema.org",
"@type": "Course",
"name": "Python for Beginners",
"description": "Learn Python from scratch in four weeks.",
"provider": {
"@type": "Organization",
"name": "Your Academy",
"url": "https://youracademy.com"
}
}This works, but it comes with baggage. You have to keep the code accurate, update it whenever your course details change, make sure it matches the visible page, and validate it by hand. Do that across ten or twenty courses, plus a carousel summary page, and it becomes a real chore, and an easy place to make mistakes.
The Plugin Route (Much Easier)
For most WordPress users, a schema plugin is the smarter path. It generates valid Course markup, connects it to your organization, and keeps everything consistent as your courses change.
This is where SchemaEngine AI comes in. Rather than hand-coding JSON-LD for every course and building the carousel structure yourself, SchemaEngine AI can generate accurate Course schema, link each course to your provider entity, and validate it against requirements in real time. It works whether you want to control every field manually or let AI read your course content and fill in the right properties for you. As you add more courses, your markup stays clean and in sync, without the manual upkeep.
Common Course Schema Mistakes
A few errors show up again and again. Avoid these and you are ahead of most course sites.
Stuffing the name field. This is the big one. Google strictly enforces the name property, and it must contain only the course title. Words like “best,” “#1,” “free,” a percentage off, or a price will trigger errors, because these are policy violations, not style choices. Keep it to the clean course name.
Putting Course schema on a category page. Apply Course markup to individual course pages, one per course. Use ItemList on the summary or listing page, not Course.
Leaving out the provider name. A provider object without a name causes an error. Google needs it to identify your institution.
Using duplicate URLs in your carousel. Every course in an ItemList needs its own unique URL, or the carousel is disqualified.
Marking up content that is not a real course. Short videos, exams, and general events do not qualify. Only mark up genuine courses.
Skipping validation. Always test your markup before publishing. Even with the course-info rich result gone, validation catches syntax errors that break AI understanding.
Why Course Schema Still Matters (Even More Now)
Let’s circle back to that deprecation, because this is the part that changes how you should think about Course schema going forward.
Yes, the detailed rich result is gone. But the way people find courses is shifting fast. More and more learners are not scrolling through search results at all. They are asking an AI:
“What are the best online Python courses for beginners?”
“Find me a beginner React course I can take online.”
When AI search systems like Google’s AI Overviews, ChatGPT Search, and Perplexity answer these questions, they do not read your marketing copy the way a human does. They parse structured data to identify courses, their providers, levels, and pricing. A course wrapped in clean Course schema is a structured, machine-readable entity, and it is far more likely to be cited than a page that is just prose.
The same goes for voice assistants, which pull directly from structured course data to answer spoken questions.
So the takeaway is simple. Course schema used to be about earning a rich result. Now it is about being understood and recommended by the AI tools that are quietly becoming the front door to course discovery. The fields that matter most here are educationalLevel, provider.name, and description, so make sure those are strong.
Let SchemaEngine AI Do the Heavy Lifting
Getting Course schema right means choosing the correct properties, keeping the name field policy-compliant, linking every course to your provider, building a valid carousel across at least three courses, and validating all of it. That is a lot to juggle by hand, especially as your course catalog grows.
SchemaEngine AI takes that off your plate. It generates accurate Course schema, connects it to your organization for a clean entity graph, and validates everything in real time, so your courses are structured correctly for both the Course List carousel and AI search. Whether you prefer manual control or AI-assisted generation, your course pages end up machine-readable and ready to be discovered. Your existing content stays exactly as it is.
Frequently Asked Questions
What is Course schema markup?
Course schema is structured data based on the Schema.org Course type that tells search engines and AI a web page describes an educational course.
What are the required properties for Course schema?
Course schema requires at least a name (the course title) and a provider (the organization or person offering it).
Did Google remove the Course rich result?
Google retired the detailed course-info rich result in 2025, but the Course List carousel is still supported and Course schema remains valuable for AI search.
How many courses do I need for the Course List carousel?
You need at least three courses marked up, each with a unique URL, plus ItemList carousel markup on a summary or all-in-one page.
Can I put keywords like “best” or a price in the course name?
No, the name field must contain only the course title, since terms like “best,” “free,” or prices violate Google’s content policy and cause errors.
How do I add Course schema in WordPress?
The easiest way is a schema plugin like SchemaEngine AI that generates, links, and validates Course markup for you instead of hand-coding JSON-LD.
What content does not qualify for Course schema?
Short how-to videos, standalone exams, general public events, and degree overview pages do not qualify, since they are not genuine courses.
Wrapping Up
Course schema is one of the most effective ways to help your online courses get discovered, both in Google and in the AI tools learners increasingly rely on. The detailed rich result may be gone, but the underlying value has only grown, because structured data is how machines understand and recommend what you teach.
Keep it simple: mark up real courses, use a clean name and a valid provider, add helpful properties like educationalLevel and description, and if you want the carousel, line up at least three courses with unique URLs and ItemList markup. Validate everything before you publish.
And if hand-coding JSON-LD is not how you want to spend your time, SchemaEngine AI can generate, link, and validate your Course schema automatically, so your courses are ready for search and AI from day one.
Ready to get your courses discovered? Try SchemaEngine AI and turn your course pages into structured signals that search engines and AI can actually understand.



