On this page:
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.

educationalLevel

educationalLevel · Not mentioned by Google

Appears in

Course

What is it?

The difficulty or progression level of a course. educationalLevel communicates whether content targets beginners, intermediate learners, or advanced practitioners. It accepts free text strings ("Beginner," "Intermediate," "Advanced") or references to formal educational frameworks using a DefinedTerm.

Most course platforms use this field to set learner expectations before enrollment. It appears on the Course type through inheritance from CreativeWork and LearningResource.

Why this matters for AEO

When a user asks "beginner Python courses" or "advanced machine learning classes," AI engines filter results by educationalLevel. A course marked "Beginner" gets surfaced for introductory queries; one marked "Advanced" gets surfaced for expert queries. Without this field, the AI engine has no structured signal for difficulty and must guess from the course title or description.

What the specs say

Schema.org: DefinedTerm, Text, URL. The level in terms of progression through an educational or training context. Examples of educational levels include 'beginner', 'intermediate' or 'advanced', and formal sets of level indicators. schema.org/educationalLevel

Google: Not mentioned. This field is not listed in Google's structured data documentation for Course. Google Course docs

How to find your value

  • Course platform — Level badge or filter (Beginner, Intermediate, Advanced)
  • Syllabus — Prerequisites section implies the target level
  • Learning management system — Course metadata or catalog settings
  • Accreditation body — Formal framework levels (e.g., CEFR A1/B2 for languages)

Format and code

educationalLevel accepts three formats:

Plain text (most common):

{
  "@context": "https://schema.org",
  "@type": "Course",
  "name": "Responsive Web Design",
  "provider": {
    "@type": "Organization",
    "name": "freeCodeCamp",
    "sameAs": "https://www.freecodecamp.org"
  },
  "educationalLevel": "Beginner"
}

DefinedTerm (formal framework):

{
  "@context": "https://schema.org",
  "@type": "Course",
  "name": "German Language B2",
  "provider": {
    "@type": "Organization",
    "name": "Goethe-Institut"
  },
  "educationalLevel": {
    "@type": "DefinedTerm",
    "name": "B2 Upper Intermediate",
    "inDefinedTermSet": "https://www.coe.int/en/web/common-european-framework-reference-languages"
  }
}

Common text values:

  • Beginner — No prerequisites, introductory content
  • Intermediate — Assumes foundational knowledge
  • Advanced — Requires significant prior experience
  • All Levels — Content spans multiple skill levels

Webflow implementation

Static pages

Add educationalLevel inside the Course JSON-LD block in Page Settings > Custom Code (Before ):

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Course",
  "name": "Introduction to Data Science",
  "description": "Learn the fundamentals of data science with Python.",
  "provider": {
    "@type": "Organization",
    "name": "DataCamp"
  },
  "educationalLevel": "Beginner"
}
</script>

CMS template pages

Map a CMS plain text field or dropdown option to educationalLevel. Store the value as a clean string: "Beginner," "Intermediate," or "Advanced."

In Schema HQ

educationalLevel is output in Course schema generation. Set the level once and it publishes alongside other Course fields in the JSON-LD output.

Real examples

freeCodeCamp (live markup):

{
  "@type": "Course",
  "name": "Responsive Web Design",
  "description": "freeCodeCamp responsive web design certification",
  "provider": {
    "@type": "Organization",
    "name": "freeCodeCamp",
    "sameAs": "https://www.freecodecamp.org"
  },
  "educationalLevel": "Beginner",
  "inLanguage": "en"
}

Related fields

FAQ

What values should I use for educationalLevel?

Use "Beginner," "Intermediate," or "Advanced" for general courses. For language courses, consider CEFR levels (A1 through C2) wrapped in a DefinedTerm. For academic courses, use the institution's classification system.

Does Google use educationalLevel in Course rich results?

Google does not list educationalLevel in its Course structured data requirements. The field is valid schema.org and AI engines use it to match courses to difficulty queries, but it will not trigger or enhance Google Course rich results on its own.

On this page:
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.

Need help with schema on your site?

We implement structured data for Webflow sites — from audit to deployment.

Work with us

Work with us