Learning Video

Google Search is an entry point for students and teachers to discover and watch educational videos. When you explicitly provide learning-specific information with structured data, such as the educational level and concept and skills covered in the video, Google can better understand the content in your video, and provide an enhanced experience to help learners find the right content.

Example of a Learning Video rich result

Feature availability

The Learning Video rich result is available in English in all regions where Google Search is available. The feature is only available when searching for academic learning content on desktop and mobile.

Examples

Single Learning Video

Here's an example of a single Learning Video.


<html>
  <head>
    <title>Learning video markup example</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": ["VideoObject", "LearningResource"],
      "name": "An introduction to Genetics",
      "description": "Explanation of the basics of Genetics for beginners.",
      "learningResourceType": "Concept Overview",
      "educationalLevel": "Grade 8 (US)",
      "contentUrl": "https://www.example.com/video/123/file.mp4",
      "thumbnailUrl": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
      ],
      "uploadDate": "2016-03-31T08:00:00+08:00"
    }
    </script>
  </head>
  <body>
  </body>
</html>

Learning Video with multiple clips

Here's an example of a Learning Video that has three clips: two clips for walking through the problem, and one clip for an overview of the concept.


<html>
  <head>
    <title>Learning video and clips markup example</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": ["VideoObject", "LearningResource"],
      "name": "An introduction to XYZ",
      "description": "Solving equations using exponent properties",
      "educationalLevel": "High school (US)",
      "educationalAlignment": {
        "@type": "AlignmentObject",
        "educationalFramework": "Common Core",
        "targetName": "HSA-SSE.B.3",
        "targetUrl": "http://www.corestandards.org/Math/Content/HSA/SSE/#CCSS.Math.Content.HSA.SSE.B.3"
      },
      "contentUrl": "https://www.example.com/video/123/file.mp4",
      "thumbnailUrl": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
      ],
      "hasPart": [{
        "@type": ["Clip", "LearningResource"],
        "learningResourceType": "Concept Overview",
        "name": "Understanding exponents",
        "startOffset": 40,
        "endOffset": 120,
        "url": "http://www.example.com/example?t=501"
      },{
        "@type": ["Clip", "LearningResource"],
        "learningResourceType": "Problem Walkthrough",
        "name": "Example problem 1: suspended wires",
        "text": "Consider a weight suspended from two wires as shown in Figure. Find the tension in each wire.",
        "startOffset": 150,
        "endOffset": 225,
        "url": "http://www.example.com/example?t=30"
      },{
        "@type": ["Clip", "LearningResource"],
        "learningResourceType": "Problem Walkthrough",
        "name": "Example problem 2: exponents",
        "text": "Consider a weight suspended from five wires as shown in Figure. Find the tension in one wire.",
        "startOffset": 275,
        "endOffset": 500,
        "url": "http://www.example.com/example?t=201"
      }],
      "uploadDate": "2018-03-31T08:00:00+08:00"
    }
    </script>
  </head>
  <body>
  </body>
</html>

Problem Walkthrough video

This example shows all the properties that must be added to the Learning Videos markup to make it a valid Problem Walkthrough video.


<html>
  <head>
    <title>Problem Walkthrough Learning Video example</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": ["VideoObject", "LearningResource"],
      "name": "Mechanics problem for Grade 4",
      "description": "Video walks through solution for problems in mechanics.",
      "learningResourceType": "Problem Walkthrough",
      "text": "Three balls have a mass of 2kg, 4kg and 6kg each. Find the relative velocity after collision.",
      "contentUrl": "https://www.example.com/video/123/file.mp4",
      "thumbnailUrl": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
      ],
      "uploadDate": "2016-03-31T08:00:00+08:00"
    }
    </script>
  </head>
  <body>
  </body>
</html>

Multiple Problem Walkthrough clips

Here's an example of webpage with multiple Problem Walkthrough clips. This example shows all the properties that must be added to the Learning Videos markup at video and clip level to make it a valid Problem Walkthrough clip markup.


<html>
  <head>
    <title>Problem Walkthrough in clips in Learning Videos markup</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": ["VideoObject", "LearningResource"],
      "name": "An introduction to XYZ",
      "description": "Solving equations using exponent properties",
      "learningResourceType": "Problem Walkthrough",
      "contentUrl": "https://www.example.com/video/123/file.mp4",
      "text": "Three balls have a mass of 2kg, 4kg and 6kg each. Find the relative velocity after collision.",
      "thumbnailUrl": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
      ],
      "hasPart": [{
        "@type": ["Clip", "LearningResource"],
        "learningResourceType": "Problem Walkthrough",
        "name": "Example problem 1: suspended wires",
        "text": "Consider a weight suspended from two wires. Find the tension in each wire.",
        "startOffset": 150,
        "endOffset": 225,
        "url": "http://www.example.com/example?t=150"
      },{
        "@type": ["Clip", "LearningResource"],
        "learningResourceType": "Problem Walkthrough",
        "name": "Example problem 2: exponents",
        "text": "Consider a weight suspended from five wires. Find the tension in one wire.",
        "startOffset": 275,
        "endOffset": 500,
        "url": "http://www.example.com/example?t=275"
      }],
      "uploadDate": "2018-03-31T08:00:00+08:00"
    }
    </script>
  </head>
  <body>
  </body>
</html>

How to add structured data

Structured data is a standardized format for providing information about a page and classifying the page content. If you're new to structured data, you can learn more about how structured data works.

Here's an overview of how to build, test, and release structured data. For a step-by-step guide on how to add structured data to a web page, check out the structured data codelab.

  1. Add the required properties. Based on the format you're using, learn where to insert structured data on the page.
  2. Follow the guidelines.
  3. Validate your code using the Rich Results Test.
  4. Deploy a few pages that include your structured data and use the URL Inspection tool to test how Google sees the page. Be sure that your page is accessible to Google and not blocked by a robots.txt file, the noindex tag, or login requirements. If the page looks okay, you can ask Google to recrawl your URLs.
  5. To keep Google informed of future changes, we recommend that you submit a sitemap. You can automate this with the Search Console Sitemap API.

Guidelines

For your page to be eligible for Learning Video rich results, you must follow these guidelines:

Technical guidelines

  • In addition to Learning Video markup, you must add the VideoObject required and recommended properties.
  • The video must be publicly available to watch without a subscription.
  • The total video duration must be a minimum of 30 seconds.
  • Learning Video markup must be added to a page where users can watch the video. It's a bad user experience to point users to a page where they can't watch the video.

Structured data type definitions

The full definition of VideoObject and LearningResource is available on schema.org VideoObject and LearningResource.

You must include the required properties for your content to be eligible for display as a Learning Video rich results. You can also include the recommended properties to add more information about your content, which could provide a better user experience.

Learning Video [VideoObject, LearningResource]

Learning Video markup is intended to give more visibility into the educational contents of the video. The markup can hold information about the various concepts and skills taught in the video.

Use the [VideoObject, LearningResource] type for Learning Videos. In addition to the VideoObject required and recommended properties, add the following properties for Learning Videos.

Required properties
educationalAlignment

AlignmentObject

The official standard code, class, or exam associated with the content. Only use this property if your content is aligned with a specific standard or exam. If not, only use the educationalLevel property. If you include the educationalAlignment property, add the following properties (as applicable):

Examples:

"educationalAlignment":
  {
    "@type": "AlignmentObject",
    "educationalFramework": "Common Core",
    "targetName": "CCSS.MATH.CONTENT.7.SP.B.4",
    "targetUrl": "http://www.corestandards.org/Math/Content/7/SP/B/4/"
  }
"educationalAlignment":
  {
    "@type": "AlignmentObject",
    "educationalFramework": "NCERT",
    "targetUrl": "https://ncert.nic.in/"
  }
educationalLevel

Text

The target education level for the video. Set the target education level to either an academic or non-academic value.

Nonacademic values:

Only one of these nonacademic values may be specified as educationalLevel.

  • Beginner: No prior knowledge is needed to understand the content
  • Intermediate: Some knowledge might be needed to understand the content
  • Advanced: This content is targeted towards advanced learners that have prior knowledge in the topic
"educationalLevel": "Beginner"

Academic values:

Only one of these academic values may be specified as educationalLevel.

  • Preschool
  • Elementary school
  • Middle school
  • High school
  • Pre-K
  • Kindergarten
  • Primary school
  • Secondary school
  • Undergraduate
  • Grade Y (or Y grade)
  • Year Y (or Y year)
  • Primary Y
  • Form Y
  • Class Y

For a full list of accepted academic values, refer to the Educational Stage article.

Examples:

"educationalLevel": "Beginner"
"educationalLevel": "High school (US)"
"educationalLevel": "Grade 8 (GB-SCT)"
learningResourceType

Text

The type of contents in the video based on what the video tries to accomplish. This property can be used at the video level (if the video has only one content type) or at the clip level (if the video has more than one content type). The list below gives some examples of acceptable values. If your video doesn't fit in any of these values, you can create a new one, as we are considering new values to support. Note that if the value is not set to one listed below, the learning type information may not be used in any search features.

    • Concept overview: The video is explaining a topic or concept.
    • Problem walkthrough: The video shows the method or steps to solve an academic problem, such as a math or science word problem.
    • Real life application: The video shows how a concept is applied or used in real life.
    • Activity: The video shows a demonstration or application of a learning activity, such as an example, an improv game, a concept map, a peer review, or a forced debate.
    • Science experiment: The video shows a science experiment.
    • Lecture: The video shows a class, lecture, or webinar.
    • How-to: The video provides a method or series of steps to do something. For video that are solving procedural STEM problems, use the Problem walkthrough type.
    • Tips: The video is sharing tips and tricks.
    "learningResourceType": "Problem walkthrough"
Recommended properties
educationalAlignment.educationalFramework

Text

The name of the official standard associated with the content.

"educationalFramework": "Common Core"
educationalAlignment.targetName

Text

The standard code or node (for example, CCSS.MATH.CONTENT.7.SP.B.4, AP physics A, CCSS.MATH).

"targetName": "CCSS.MATH.CONTENT.7.SP.B.4"
educationalAlignment.targetUrl

Url

The URL to the standard description.

"targetUrl": "http://www.corestandards.org/Math/Content/8/EE/A/2/"
hasPart

Clip

A list of clips in the video. Each clip must focus on a specific topic or problem.

The list of required and recommended properties for the educational Clip object are listed in a separate table.

Here's an example of a problem walkthrough clip:

{
  "@type": ["Clip","LearningResource"],
  "learningResourceType": "Problem Walkthrough",
  "name": "Example 1",
  "text": "Consider a weight suspended from five wires as shown in Figure. Find the tension in one wire.",
  "startOffset": 201,
  "url": "http://www.example.com/example?t=201"
}

here's an example of a clip that gives an overview of a concept:

{
  "@type": ["Clip","LearningResource"],
  "learningResourceType": "Concept Overview",
  "name": "ABC Law",
  "startOffset": 501,
  "url": "http://www.example.com/example?t=501"
}
text

Text

The text of the question that's being solved in the video. This property must include the complete question, not just the title of the question.

If your video solves more than one problem, you can use the same property but at the Clip level.

"text": "Consider a weight suspended from two wires as shown in Figure. Find the tension in each wire."

Learning Clip [Clip, LearningResource]

Learning clips can be specified as part of the hasPart property in Learning Videos. Here is a list of recommended properties for clips.

Tag the learning clips with the [Clip, LearningResource] type. In addition to the Clip required and recommended properties, add the following properties for Learning Clips.

Recommended properties
learningResourceType

Text

The type of contents in the clip based on what the clip tries to accomplish. If the clip has a step-by-step solution of a problem, the value can be set to "Problem walkthrough". If the clip has explanation of some concept, the value can be set to "Concept overview".

The list below gives some examples of acceptable values. If your clip doesn't fit in any of these values, you can create a new one, as we are considering new values to support. Note that if the value is not set to one listed below, the information may not be used in any search features.

Acceptable values:

  • Concept overview: The clip is explaining a topic or concept.
  • Problem walkthrough: The clip shows the method or steps to solve an academic problem, such as a math or science word problem.
  • Real life application: The clip shows how a concept is applied or used in real life.
  • Activity: The clip shows a demonstration or application of a learning activity, such as an example, an improv game, a concept map, a peer review, or a forced debate.
  • Science experiment: The clip shows a science experiment.
  • Lecture: The clip shows a class, lecture, or webinar.
  • How-to: The clip provides a method or series of steps to do something. For clips that are solving procedural STEM problems, use the Problem walkthrough type.
  • Tips: The clip is sharing tips and tricks.
"learningResourceType": "Problem walkthrough"

Problem Walkthrough Video [VideoObject, LearningResource]

Problem Walkthrough Video is a sub-type of Learning Video that provides a step-by-step solution of a problem.

Use the [VideoObject, LearningResource] type for problem walkthrough videos. In addition to the VideoObject required and recommended properties, add the following properties for problem walkthrough videos.

Required properties
learningResourceType

Text

The type of contents in the video based on what the video tries to accomplish. For Problem Walkthrough videos, this must be set to "Problem walkthrough".

"learningResourceType": "Problem walkthrough"
text

Text

The text of the question that's being solved in the video.

If your video solves more than one problem, you can use the same property in the Clip level.

"text": "Consider a weight suspended from two wires as shown in Figure. Find the tension in each wire."
Recommended properties
hasPart

Clip

A list of clips in the video. Each clip must focus on a specific problem.

The list of required and recommended properties for the educational Clip object are listed in a separate table.

Here's an example of a clip with a problem walkthrough:

[
  {
    "@type": ["Clip","LearningResource"],
    "learningResourceType": "Problem Walkthrough",
    "name": "Example 1",
    "text": "Consider a weight suspended from five wires as shown in Figure. Find the tension in one wire.",
    "startOffset": 201,
    "url": "http://www.example.com/example?t=201"
  },
  {
    "@type": ["Clip","LearningResource"],
    "learningResourceType": "Problem Walkthrough",
    "name": "Example 2",
    "text": "Consider two weights suspended from five wires as shown in Figure. Find the tension in all wires.",
    "startOffset": 501,
    "url": "http://www.example.com/example?t=501"
  }
]

Problem Walkthrough Clip [Clip, LearningResource]

Problem Walkthrough clips can be specified as part of the hasPart property in Learning Videos. Problem Walkthrough clip is a sub-type of Learning clip which has a step-by-step solution of a problem. Here is a list of required properties for Problem Walkthrough clips.

Use the [Clip, LearningResource] type for learning clips. In addition to the Clip required and recommended properties, add the following properties for problem walkthrough clips.

Required properties
learningResourceType

Text

If the clip has a step-by-step solution of a problem, the value must be set to "Problem walkthrough".

"learningResourceType": "Problem walkthrough"
text

Text

The text of the question that's being solved in the clip.

"text": "Consider a weight suspended from two wires as shown in Figure. Find the tension in each wire."

Monitor rich results with Search Console

Search Console is a tool that helps you monitor how your pages perform in Google Search. You don't have to sign up for Search Console to be included in Google Search results, but it can help you understand and improve how Google sees your site. We recommend checking Search Console in the following cases:

  1. After deploying structured data for the first time
  2. After releasing new templates or updating your code
  3. Analyzing traffic periodically

After deploying structured data for the first time

After Google has indexed your pages, look for issues using the relevant Rich result status report. Ideally, there will be an increase of valid pages, and no increase in errors or warnings. If you find issues in your structured data:

  1. Fix the errors.
  2. Inspect a live URL to check if the issue persists.
  3. Request validation using the status report.

After releasing new templates or updating your code

When you make significant changes to your website, monitor for increases in structured data errors and warnings.
  • If you see an increase in errors, perhaps you rolled out a new template that doesn't work, or your site interacts with the existing template in a new and bad way.
  • If you see a decrease in valid items (not matched by an increase in errors), perhaps you are no longer embedding structured data in your pages. Use the URL Inspection tool to learn what is causing the issue.

Analyzing traffic periodically

Analyze your Google Search traffic using the Performance Report. The data will show you how often your page appears as a rich result in Search, how often users click on it and what is the average position you appear on search results. You can also automatically pull these results with the Search Console API.

Troubleshooting

If you're having trouble implementing or debugging structured data, here are some resources that may help you.

Content doesn't match the structured data

What caused the issue: A page includes content that doesn't match the structured data on the page. For example, the title of a video on the page doesn't match the value listed for the name property. There may also be spammy content, like click-baity titles and descriptions, or the markup isn't representative of the actual video. You may have received this Search Console message: "Structured data policy violation - Content on pages found to be different than structured data on the page".

Fix the issue

  1. Verify that the structured data aligns with the actual content on the page.
  2. Use the URL Inspection tool to make sure that the content is visible on the rendered page (the rendered page is how Googlebot sees your page).
  3. After you resolve the issue, submit your site for reconsideration.