By SitemapFixer Team
Updated April 2026

Course Rich Results Schema: Complete Guide

Validate your course schema for Google rich results eligibilityAnalyze My Site Free

Course rich results allow online learning platforms and course providers to surface their offerings in a dedicated Google Search courses carousel, displaying the course name, provider, and brief description. For e-learning businesses and educational content creators, valid Course schema can unlock significant organic discovery traffic from learners actively searching for courses on specific topics. This guide covers required properties, the CourseInstance type, pricing markup, and how to troubleshoot course schema issues.

What Are Course Rich Results?

Course rich results appear in a dedicated Google Search courses carousel that surfaces when users search for educational content — "learn Python online," "SEO course," "free marketing certification." The carousel shows course cards with the course title, provider name, and a brief description. Clicking a card takes the user directly to the course enrollment or detail page. This feature benefits both major MOOC platforms and individual course creators who host courses on their own websites. Course schema also helps Google understand your content for AI Overviews and educational knowledge panels.

Required Schema Markup (JSON-LD)

A complete Course schema example with CourseInstance:

{
  "@context": "https://schema.org",
  "@type": "Course",
  "name": "Technical SEO Fundamentals",
  "description": "Learn technical SEO from scratch — sitemaps, crawlability, Core Web Vitals, structured data, and more. 6 hours of video content with hands-on exercises.",
  "provider": {
    "@type": "Organization",
    "name": "SitemapFixer",
    "sameAs": "https://sitemapfixer.com"
  },
  "url": "https://sitemapfixer.com/courses/technical-seo",
  "image": "https://sitemapfixer.com/images/technical-seo-course.jpg",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "ratingCount": "1240"
  },
  "hasCourseInstance": [
    {
      "@type": "CourseInstance",
      "courseMode": "Online",
      "instructor": {
        "@type": "Person",
        "name": "Alex Rivera",
        "description": "Senior SEO Engineer with 10+ years of experience"
      },
      "startDate": "2026-05-01",
      "endDate": "2026-06-01",
      "courseWorkload": "PT6H",
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "USD",
        "category": "Free"
      }
    }
  ]
}

Required vs Recommended Properties

Required properties for Course rich results are name and description. The provider property (an Organization with a name) is effectively required since Google uses it to display the course source in the carousel card. Strongly recommended: url, image, aggregateRating, and hasCourseInstance. The hasCourseInstance is important because it carries scheduling, pricing, and delivery mode information via the CourseInstance type. Without it, Google can still show a basic course card but cannot display pricing or availability filters in the courses carousel.

CourseInstance: Scheduling and Delivery

The CourseInstance type describes a specific run or offering of a course. Key properties: courseMode (Online, Onsite, or Blended), instructor (Person type with name), startDate and endDate (for scheduled courses), courseWorkload (ISO 8601 duration for total learning time), and offers for pricing. For self-paced courses without a fixed start date, omit startDate and endDate. For evergreen courses always available, you can use a single CourseInstance. If you run multiple cohorts or scheduled sessions of the same course, add multiple CourseInstance objects to the hasCourseInstance array.

Free vs Paid Course Markup

Google's courses carousel allows filtering by price, making correct pricing markup valuable. For free courses, set the Offer price to "0" and include "category": "Free". For paid courses, provide the numeric price and currency code. For courses with multiple pricing tiers (individual, team, enterprise), use multiple Offer objects. For courses that require a subscription rather than a one-time payment, you can use Offer with priceSpecification to indicate recurring pricing. Always ensure pricing in the schema matches the pricing displayed on the page — mismatches will cause Google to suppress the rich result.

Eligibility Requirements

Course rich results are intended for genuine educational courses that teach a skill or body of knowledge. Pages that are actually product landing pages, webinar registrations, or marketing materials disguised as courses may not qualify. Each course page must represent a distinct course — do not use a single page with multiple Course schemas for different courses (create separate pages). The description must accurately represent the course content. Courses must be accessible to the user who visits the page (registration walls are acceptable; impenetrable paywalls where the course is not described are not). The page must be indexable and the schema must match visible content.

How to Test Course Schema

Use the Rich Results Test to validate Course schema on your course detail pages. Verify that the course name, description, and provider are detected correctly. Check that CourseInstance properties are parsed — especially pricing, which affects carousel filtering. In Google Search Console, look for course-related structured data reports. To see if your courses are appearing in the carousel, search for your course topics followed by "course" or "online course" and look for the carousel. New course pages can take several weeks to appear; accelerate discovery by including them in your XML sitemap and ensuring they are linked from your course catalog pages.

Common Mistakes and Fixes

Common course schema errors: missing or vague description (fix: write a detailed 100–300 word description of what students learn and what skills they gain); provider name not matching the actual organization (fix: use your official organization name as it appears on your site and GBP); multiple courses marked up on a single page (fix: one Course schema per page, one page per course); CourseInstance missing courseMode (fix: always specify Online, Onsite, or Blended); and aggregateRating added when no reviews are on the page (fix: only markup ratings from genuine student reviews visible on the course page).

Course Schema and E-E-A-T

Course content falls under Google's YMYL (Your Money or Your Life) guidelines when it touches health, finance, law, or technical skills with real-world consequences. For these course topics, E-E-A-T signals are especially important. Strengthen your course pages by adding instructor profiles with credentials and experience, linking to the instructor's public professional profiles, including real student testimonials with dates, and demonstrating institutional or certification partnerships. Course schema that includes a well-qualified instructor with a Person schema linking to their public profile will perform better in Google's quality evaluation than anonymous or poorly attributed course content.

Validate Your Course Schema Now
Free analysis in 60 seconds
Analyze My Site Free

Related Guides