Learning Resource Structured Data

The Learning Resource Structured Data schema type is not officially supported by Google. It will not be detected in the Google Rich Results Test, but it is fully valid according to the Schema.org Validator.

Even though Google Search may not directly use this type, structured data can still provide value. Other Google services, third-party search engines, and AI models such as ChatGPT can read it to better understand your content.

Remember: today we should not add structured data only for Google, but also for the broader web ecosystem, including alternative search engines and AI systems.

A Learning Resource is a single piece of teaching material, like a lesson, a video, an exercise or a quiz. Marking it up tells search engines what the page teaches, how long it takes, what kind of resource it is, and which course it belongs to. Use it on lesson pages. The course that holds the lessons gets the Course Content Type on its own page.

How to mark up Joomla pages with the Learning Resource schema

  1. Log into your Joomla backend.
  2. Go to Components → Google Structured Data → Items.
  3. Click New.
  4. Enter a Title. It's for your own reference, so anything works.
  5. Select Learning Resource in the Content Type dropdown.
  6. Select the Integration of the component that holds your lessons.
  7. Click Save.

The Learning Resource Content Type selected with the OSCampus Integration

The Integration depends on the component you want to mark up. View the Supported Integrations.

Once the page reloads, a new section called Learning Resource appears, where you map each property to page data.

The Learning Resource schema properties

To read more about how the mapping works, visit the respective section of the How to Add Structured Data to Pages guide.

Learning Resource schema properties

Name Description
Title The name of the lesson.
Description A description of the lesson.
URL The URL of the lesson page.
Image An image that represents the lesson.
Resource Type The kind of resource the page is, such as Lesson, Video or Quiz. It defaults to the Learning Resource Type option.
Time Required How long the lesson takes, in minutes. The markup turns it into an ISO 8601 duration, so 45 becomes PT45M. A value that's already a duration, such as PT1H, is kept as it is. It defaults to the Length in Minutes option.
Learning Outcomes What the visitor can do after the lesson. Separate multiple outcomes with a comma, or read them from the page with a CSS Selector (see below).
Subjects The subjects the lesson covers, separated by a comma. It defaults to the Tags option.
Educational Level The level the lesson is aimed at, such as Beginner.
Date Published The date the lesson was published.
Date Created The date the lesson was created.
Date Modified The date the lesson was last modified.

The Title, Description and URL properties are required. The rest are optional.

The Resource Type, Time Required and Subjects defaults are options of the OSCampus Integration. With any other Integration, map these properties yourself, or pick Custom Value and type a fixed value, such as Lesson.

Always mark up content that visitors can see on the page. Markup that describes hidden content can lead to a spammy structured markup penalty.

Read learning outcomes from a list

Lesson pages often show their outcomes as a bulleted list. Point a CSS Selector at the list items and each one becomes a separate outcome.

  1. Wrap the list in an element with a class of your own, such as my-outcomes.
  2. Set Learning Outcomes to CSS Selector.
  3. Enter .my-outcomes li as the selector.
  4. Keep Return Node Text in the dropdown next to it.
  5. Click Save.

Keep the li in the selector. Without it the selector matches the list as a whole, and every outcome ends up in one long string.

The course and module of the lesson

A lesson makes more sense inside its course. The Learning Resource points at the course it belongs to, and at the module inside that course, through its isPartOf property.

There's no field to map for this. The Integration supplies it, so it appears only with an Integration that knows the course of each lesson, such as the OSCampus Integration. With any other Integration, the markup describes the lesson on its own.

Publishing rules

This section controls the pages where your Learning Resource item runs. Every Integration comes with its own publishing rules, so the options depend on the Integration you picked. With OSCampus, you can target lessons by learning path, by course, or one by one.

Leave all options Disabled to apply the schema on every page the selected Integration covers.

To learn more about the Publishing Rules section, visit the How to Add Structured Data to Pages guide.

Validate your Learning Resource markup

The Schema Markup Validator checks every schema.org type, including this one.

  1. Visit the Schema Markup Validator.
  2. Enter the URL of your lesson page and click RUN TEST.
  3. Check that the LearningResource item is detected and that it has no errors.

Frequently asked questions

Do I need one Structured Data Item per lesson?

No. Map the properties to page data and one item covers every lesson page that its Publishing Rules target.

Which values can Resource Type take?

Any text works, and schema.org keeps no fixed list. Pick words that describe the page plainly, like Lesson, Video, Quiz or Exercise. The OSCampus Integration fills it from the lesson type for you.

My lesson is a video. Should I use the Video Content Type instead?

Use Learning Resource when the page is part of a course, so the lesson keeps its link to the course. Use the Video Content Type when the video stands on its own.

Last updated on Sep 28th 2026 16:09