---
title: "Learning Resource Structured Data - Google Structured Data"
description: "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"
url: "https://www.tassos.gr/docs/google-structured-data/schemas/learning-resource"
date: "2026-09-28T19:17:11+00:00"
language: "en-GB"
---

[ Home ](https://www.tassos.gr/docs) / [ Google Structured Data ](https://www.tassos.gr/docs/google-structured-data) / [ Schema Types ](https://www.tassos.gr/docs/google-structured-data/schemas)

#  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](https://search.google.com/test/rich-results), but it is fully valid according to the [Schema.org Validator](https://validator.schema.org/).

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](https://www.tassos.gr/docs/google-structured-data/schemas/course) Content Type on its own page.

## [How to mark up Joomla pages with the Learning Resource schema](#how_to_add)

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](https://www.tassos.gr/images/2026/09/gsd-learning-resource-select.png)

The Integration depends on the component you want to mark up. View the [Supported Integrations](https://www.tassos.gr/docs/google-structured-data/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](https://www.tassos.gr/images/2026/09/gsd-learning-resource-settings.png)

To read more about how the mapping works, visit the respective section of the [How to Add Structured Data to Pages](https://www.tassos.gr/docs/google-structured-data/start/structured-data-to-pages#step3) guide.

## [Learning Resource schema properties](#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](#learning-outcomes)). |

| 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](https://www.tassos.gr/docs/google-structured-data/integrations/oscampus). 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](#learning-outcomes)

Lesson pages often show their outcomes as a bulleted list. Point a [CSS Selector](https://www.tassos.gr/docs/google-structured-data/functionality/css-selectors) 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](#part-of)

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](https://www.tassos.gr/docs/google-structured-data/integrations/oscampus). With any other Integration, the markup describes the lesson on its own.

## [Publishing rules](#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](https://www.tassos.gr/docs/google-structured-data/start/structured-data-to-pages#step4) guide.

## [Validate your Learning Resource markup](#validate)

The [Schema Markup Validator](https://validator.schema.org/) checks every schema.org type, including this one.

1. Visit the [Schema Markup Validator](https://validator.schema.org/).
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.

## [Useful links](#useful-links)

- [Schema.org LearningResource Documentation](https://schema.org/LearningResource)
- [Course Content Type](https://www.tassos.gr/docs/google-structured-data/schemas/course)
- [Google Structured Data General Guidelines](https://developers.google.com/search/docs/guides/sd-policies)

## [Frequently asked questions](#faq)

### [Do I need one Structured Data Item per lesson?](#one-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?](#resource-type-values)

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?](#video-lessons)

Use Learning Resource when the page is part of a course, so the lesson keeps its link to the course. Use the [Video](https://www.tassos.gr/docs/google-structured-data/schemas/video) Content Type when the video stands on its own.

 Last updated on Sep 28th 2026 16:09
