Course Info Structured Data

Course Info (Course and CourseInstance) Structured Data: A Comprehensive Guide

In today’s digital age, it’s more important than ever for educational institutions to make their courses easily discoverable by potential students. One way to do this is by using Course info structured data.

Course info structured data is a powerful tool for educational institutions and online learning platforms to enhance the visibility and discoverability of their courses in search engine results (SERPs). By implementing this structured data markup, you can provide Google with detailed information about your courses, enabling them to present richer and more informative search results to potential learners.

What is Course Info Structured Data?

Course info structured data is a type of structured data used to describe courses. It organises and presents information about courses in a way that is easily understandable for search engines. 

While Course Info structured data was introduced in November 2023, strictly speaking, this isn’t a new feature. For the last few years, Google has supported a markup feature called Course List (previously Course), allowing educational institutions to provide structured data for courses, including name and description as required properties, and publisher as a recommended property.

Here is an example of a single course details page:

<script type="application/ld+json">

    "@context": "",

    "@type": "Course",

    "name": "Advanced Data Analysis and Machine Learning",

    "description": "An in-depth course covering advanced techniques in data analysis and machine learning.",

    "provider": {

      "@type": "Organization",

      "name": "Data Science Institute",

      "sameAs": ""



Both Course List and Course Info Structured Data markup use the same structured data type, and both types of markup will be supported in the future with two course rich result (also known as rich snippets) features in the SERPs. Therefore, if you are currently using Course List, the traffic coming from Google to your website won’t be affected (Important!). At the same time, if you have both types of markup in your HTML, you will be potentially eligible for both course rich results features in Google.

The two course rich results features are as follows (according to Google):

  • Course list: A rich result that lists courses from the same website.
  • Course info: A carousel that shows detailed course information from a variety of websites.
Course info: A carousel that shows detailed course information from a variety of websites.
Course info: A carousel that shows detailed course information from a variety of websites.

Course Info Structured data provide more detailed information about a course than a Course List, such as reviewer ratings, pricing, and course details. If you have the development capabilities I would strongly recommend aiming to implement Course Info Structured data over Course List. 

Understanding Course and CourseInstance

Course Info structured data encompasses two main types of entities: Course and CourseInstance.

  • Course: Represents the overarching description of an educational offering, including its name, description, learning objectives, and other essential details.
  • CourseInstance: Represents a specific offering of a course, typically at a particular time and location or through a specific mode of delivery, such as online or in-person. Every course must have at least one course instance (Important!).

Essential Properties for Course Info Structured Data

The Course and CourseInstance types involve several important properties that should be included in the structured data markup and will be listed in the next few sections.

Course Required Properties

  • name: The full name of the course.
  • description: A comprehensive description of the course’s content and learning objectives. The recommended length is 240 characters and the maximum length is 500 characters.
  • organization: Information about the organisation that created the content for the course.
  • The name of the organisation that offers the course.
  • offersProvide details regarding the final price to finish the course, inclusive of service fees. Avoid presenting a price that is applicable only to specific users, such as a ‘20% discount exclusively for first-time users’.
  • offers.category: Describe the pricing category of the course using one of the following values: Free, Partially Free, Subscription or Paid.
  • hasCourseInstanceAs previously stated, each course should have at least one CourseInstance that provides comprehensive information about the course offerings.

Course Recommended properties

  • about: Outline the skills that may be acquired by users upon completing the course.
  • aggregateRatingDetails regarding the average course rating, derived from feedback provided by users who have completed the course, if applicable.
  • availableLanguage: Describe the languages the course is offered in using the two-letter codes from the list of ISO 639-1 alpha-2 codes.
  • coursePrerequisites: Any prerequisite knowledge required for the course, if applicable, can be indicated by either describing the necessary background or providing links to another course, or employing a combination of both methods.
  • datePublished: Provide the date a course was first published using the 8601 date format (YYYY-MM-DD).
  • educationalCredentialAwardedThe credentials that students will earn upon completing the course. Note: If there is an additional charge for the award, please specify the extra cost.
  • educationalCredentialAwarded.credentialCategory: Specify the type of award the user may receive choosing from the following options: Certificate (an acknowledgement confirming the user’s successful completion of the course or program) or Certification (an official credential that typically involves an examination, affirming the user’s competence in the subject matter).
  • If applicable specify the name of the award. 
  • educationalCredentialAwarded.offers.category: Specify the pricing category for the award using one of the following classifications: Free, Subscription or Paid.
  • educationalCredentialAwarded.offers.price: The price of the award.
  • educationalCredentialAwarded.offers.priceCurrency: The currency of the award’s price specified in the ISO 4217 currency format (3-letter code).
  • educationalCredentialAwarded.url: Provide the URL of the award page. 
  • educationalLevel: Describe the applicable education level targeted by the course. Choose from the following options: Beginner, Intermediate or Advanced.
  • financialAidEligible: Any available scholarships, specialised payment arrangements, or other opportunities for financial aid for individuals interested in enrolling in the course.
  • image: The URL leading to an image representing the course. Please use images pertinent to the course content, avoiding the use of logos or captions. All the images must be crawlable and indexable with a ratio of 16×9, 4×3 or 1×1.
  • inLanguage:  The primary language of instruction for the course (use the short, two-letter language codes as defined in the ISO 639-1 standard).
  • offers.price: A numeric representation of the price or fee that a student or participant needs to pay to enrol in the course.
  • offers.priceCurrency: The currency in which the course is priced, following the ISO 4217 currency format
  • provider.url: The URL linking to the homepage of the course provider.
  • publisher: Details regarding the organisation responsible for publishing and presenting the course.
  • The name of the publisher.
  • publisher.url: The URL directing to the homepage of the course publisher.
  • review: A list of user reviews about the course. Please adhere to Google’s review snippet guidelines for additional details.
  • syllabusSections: Provide information about the different modules that make up the course.
  • syllabusSections.description: An explanation of the module’s content and purpose.
  • The title of the course module.
  • syllabusSections.timeRequired: The duration of the module. Use the 8601 duration format
  • teaches: The skills or knowledge that users will acquire through course completion.
  • totalHistoricalEnrollment: The cumulative count of users who have enrolled throughout the course’s existence.
  • video: A video preview or trailer for the course. Please follow the VideoObject guidelines for more information.

CourseInstance Required properties

Each course should include a minimum of one CourseInstance with all the required properties completed.

  • courseMode: The method by which the course will be conveyed. Choose from the following options: Online, Onsite or Blended.
  • courseScheduleDetails about the average time it takes for the typical user to complete the course, based on a suggested pace. Additionally, provide start and end dates for courses with a predetermined timeline.
  • courseSchedule.repeatCount: The numeric representation of the course duration in units of repeatFrequency and repeatCount.
  • courseSchedule.repeatFrequency: As this field is related to duration and repeatCount use one of the following values: Daily, Weekly, Monthly or Yearly.
  • courseWorkload: The overall time required to watch all videos, complete assignments, and exams for the course. Please utilize the ISO 8601 duration format.

CourseInstance Recommended properties

  • courseSchedule.duration: The suggested pacing for the average user’s expected time commitment, specified in repeatFrequency units and adhering to the ISO 8601 duration format, if applicable. For instance, if the repeatFrequency is weekly and the duration is PT8H30M, users should anticipate dedicating 8 hours and 30 minutes per week. 
  • courseSchedule.endDate: Provide the end date for the course, in 8601 date format
  • courseSchedule.startDate: Provide the start date for the course, in 8601 date format.
  • image: The URL that links to an image of the instructor. All the images must be crawlable and indexable with a ratio of 16×9, 4×3 or 1×1.
  • instructor: Use the schema property Person. Provide information about the instructor for the course.
  • instructor.description: Details about the instructor and their qualifications.
  • The name of the instructor. 
  • location: The address of the physical location where the course will be taught.

Course Program Required properties

A course program consists of individual child courses, each designed as a standalone course with unique URLs (Important!) and landing pages. If your webpage represents a course program, you must include all Course Program required properties, in addition to the Course and CourseInstance required properties.

  • hasPart: The list of child courses that are a part of this program. 
  • The complete title of the child course.
  • hasPart.url: The URL of the child course landing page.

Course Program Recommended properties

hasPart.description: Description of what the child course covers. The recommended length is 240 characters and the maximum length should be 500 characters. 

Course Info Structured Data Example

    <title>Digital Marketing Strategies Course</title>
    <script type="application/ld+json">
      "@context": "",
      "@id": "",
      "@type": "Course",
      "name": "Strategic Digital Marketing Mastery",
      "description": "Elevate your digital marketing skills with advanced strategies.",
      "publisher": {
        "@type": "Organization",
        "name": "DigitalStrategiesUniversity",
        "url": ""
      "provider": {
        "@type": "Organization",
        "name": "Fictional Digital University",
        "url": ""
      "image": [
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": 4.8,
        "ratingCount": 2000,
        "reviewCount": 800
      "offers": [{
        "@type": "Offer",
        "category": "Paid",
        "priceCurrency": "GBP",
        "price": 16.99
      "totalHistoricalEnrollment": 25000,
      "datePublished": "25th June 2020",
      "educationalLevel": "Advanced",
      "about": ["Strategic Digital Marketing", "Online Branding"],
      "teaches": ["Craft effective digital marketing strategies",
                  "Implement data-driven decision-making in marketing."],
      "financialAidEligible": "Scholarship Opportunities",
      "inLanguage": "en",
      "availableLanguage": ["es", "fr"],
      "syllabusSections": [
          "@type": "Syllabus",
          "name": "Strategic Content Marketing",
          "description": "Learn how to create and implement strategic content marketing plans.",
          "timeRequired": "PT9H"
          "@type": "Syllabus",
          "name": "Data-Driven Marketing Analytics",
          "description": "Utilise data analytics for informed marketing decision-making.",
          "timeRequired": "PT14H"
      "review": [
        "@type": "Review",
        "author": {
            "@type": "Person",
            "name": "Alexandra B."
        "datePublished": "15th March 2021",
        "reviewBody": "Exceptional course! Transformed my approach to digital marketing.",
        "reviewRating": {
          "@type": "Rating",
          "bestRating": 10,
          "ratingValue": 9.5
      "coursePrerequisites": [
        "Basic understanding of digital marketing principles.",
      "educationalCredentialAwarded": [{
        "@type": "EducationalOccupationalCredential",
        "name": "Digital Strategies Master Certification",
        "url": "",
        "credentialCategory": "Certification",
        // offers only needed if the credential costs extra money.
        "offers": [{
          "@type": "Offer",
          "category": "Paid",
          "price": 8,
          "priceCurrency": "EUR"
      "video": {
        "@type": "VideoObject",
        "name": "Mastering Digital Strategies",
        "description": "A video previewing the mastery of digital marketing strategies in this course.",
        "uploadDate": "2016-03-31T08:00:00+08:00",
        "contentUrl": "",
        "thumbnailUrl": ""
      "hasCourseInstance": [
        // Blended, instructor-led course meeting 3 hours per day in September.
        "@type": "CourseInstance",
        "courseMode": "Blended",
        "location": "Fictional Digital University",
        "courseSchedule": {
          "@type": "Schedule",
          "duration": "PT3H",
          "repeatFrequency": "Daily",
          "repeatCount": 30,
          "startDate": "1st September 2023",
          "endDate": "30th September 2023"
        "instructor": [{
          "@type": "Person",
          "name": "Dr. Marketing Expert",
          "description": "Senior Marketing Professor at Fictional Digital University",
          "image": ""
        // Online self-paced course that takes 3 days to complete.
        "@type": "CourseInstance",
        "courseMode": "Online",
        "courseWorkload": "P3D"
      // Only required for course programs that link to child courses.
      "hasPart": [{
        "@type": "Course",
        "name": "Advanced Social Media Strategies",
        "url": "",
        "description": "Explore advanced strategies for social media marketing.",
        "provider": {
        "@type": "Organization",
        "name": "Social Media University",
        "url": ""
      }, {
        "@type": "Course",
        "name": "Data-Driven Email Marketing",
        "url": "",
        "description": "Learn to leverage data for effective email marketing.",
        "provider": {
        "@type": "Organization",
        "name": "Data University",
        "url": ""

Adopting the code above will give a chance to be included in Googles’ Course list or Course info rich results.

Course info rich result example
Course info rich result example – both Coursera and Udemy have Course Info structured data on their pages.

Course Info structured data content guidelines

It is very important to understand that only educational material that meets Google’s criteria for a course can qualify to be included in the Course info rich result. 

With that in mind, you should only present Course markup structured data on a web page that offers a full, single course or course program. The following examples will not qualify for the course info rich result:

  1. An overview page summarising academic degrees.
  2. A standalone page for an examination.
  3. A public event targeting the general public, e.g. “International Archaeology Day”.  
  4. A brief 5-minute video titled “How to change a watch battery”. 

How to test your Course Info structured data

Once you have implemented Course Info structured data on your website, you can use the Google’s Rich Results Testing Tool to test it. This tool will show you any errors or warnings in your markup.

Course Info structured data rich result test
Course Info structured data rich result test

How to monitor your Course Info structured data

You can use Google Search Console to monitor your Course Info structured data. The Structured Data report will show you how many pages on your website have valid Course Info structured data, and any errors or warnings.


What is structured data?

Structured markup is a script tag (I would recommend using JSON-LD) that you place on your website in a format that is easy for web crawlers to understand. It is not displayed to human users; instead, it is visible only in the HTML of a page and is used solely to clarify and confirm the information on your pages.

What are Rich Results?

Rich results are enhanced search results displayed by search engines, providing more information and context directly on the search engine results pages (SERPs). These results go beyond the standard text snippets and may include additional features like images, reviews, ratings, prices, and more, depending on the type of content and the structured data provided by the website.

Rich results are often achieved through the implementation of structured data markup on a website. By using markup languages like JSON-LD (JavaScript Object Notation for Linked Data), microdata or RDFa, website owners can provide explicit information about their content, helping search engines better understand the context and meaning of the data.

What is Schema?

Schema refers to a structured data markup vocabulary that webmasters can use to provide more meaningful information about their content to search engines in order to improve their SEO. This markup helps search engines understand the content on web pages, enabling them to present richer and more informative results for users. The most commonly used schema markup is provided by, a collaboration between major search engines like Google, Microsoft, Yahoo, and Yandex.

Events in Google Analytics 4


One response to “Course Info (Course and CourseInstance) Structured Data: A Comprehensive Guide”

  1. Petar Petrov avatar
    Petar Petrov

    I don’t know about other people, but I love your articles. No fancy words, no unnecessary information. Straight to the point. I just follow your instructions, and things work. Thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.