Educational Occupational Program Structured Data

The Educational Occupational Program 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.

An Educational Occupational Program is a structured set of courses that leads somewhere, like a learning path, a training track or a certificate program. Marking it up tells search engines what the program is called, what it covers, and which courses it's made of. Use it on the page that presents the program as a whole. The courses inside it get the Course Content Type on their own pages.

How to mark up Joomla pages with the Educational Occupational Program 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 Educational Occupational Program in the Content Type dropdown.
  6. Select the Integration of the component that holds your programs.
  7. Click Save.

The Educational Occupational Program 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 Educational Occupational Program appears, where you map each property to page data.

The Educational Occupational Program schema properties

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

Educational Occupational Program schema properties

Name Description
Title The name of the program.
Description A description of the program.
URL The URL of the page that describes the program.
Image An image that represents the program.

The Title, Description and URL properties are required. Image is optional.

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

The courses of the program

The Educational Occupational Program lists its courses in its hasCourse property, each course with its name, URL, description and image.

There's no field to map for this list. The Integration supplies it, so the list appears only with an Integration that knows which courses belong to a program, such as the OSCampus Integration, where every learning path lists its courses in the order OSCampus shows them. With any other Integration, the markup describes the program on its own, with no course list.

Publishing rules

This section controls the pages where your Educational Occupational Program item runs. Every Integration comes with its own publishing rules, so the options depend on the Integration you picked. With OSCampus, the Learning Path rule targets specific learning paths.

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 Educational Occupational Program 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 program page and click RUN TEST.
  3. Check that the EducationalOccupationalProgram item is detected, that it lists its courses under hasCourse, and that it has no errors.

Frequently asked questions

Do I need one Structured Data Item per program?

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

Should I use Educational Occupational Program or Course?

Use Course on the page of a single course, and Educational Occupational Program on the page that groups several courses into a path. On a site with both kinds of page, create one item of each. With OSCampus, the program markup then points at the page of every course it holds.

Why is there no course list in my markup?

The course list comes from the Integration. Check that you selected an Integration that supplies it, such as OSCampus, and that the program has published courses the visitor can view.

Last updated on Sep 28th 2026 16:09