Video structured data issues in Google Search Console (GSC) occur when your webpage’s VideoObject schema markup is missing required fields, uses invalid date or duration formatting, or points to inaccessible video and thumbnail files. You can find and diagnose these problems directly in the Videos report under the Enhancements menu in GSC, or check broader playback and page-layout issues in the Video indexing report under Indexing.
Structured data uses a standardised vocabulary (Schema.org), most commonly implemented in JSON-LD format, to explicitly tell search engines a video’s title, description, thumbnail URL, upload date, and duration. When critical errors appear in your markup, Google cannot use the schema to generate video previews, key moments, or video tab placements in search results.
How to Find Video Structured Data Issues in Google Search Console
Many site owners look for video errors in the Performance report, which only tracks impressions and clicks. To find actual markup and indexing diagnostics, you need to check two distinct areas in the left-hand navigation panel of Google Search Console.
1. The Videos Enhancement Report (Schema Markup Errors)
This report specifically audits the VideoObject structured data code on your site. Note that the Videos link only appears under the Enhancements section if Google has detected video schema on at least one indexed page of your property.
- Log in to Google Search Console and select your property.
- Scroll down the left-hand menu to the Enhancements section and click Videos.
- Review the summary chart dividing your markup into Invalid (critical errors in red) and Valid (in green).
- Scroll down to the Why items are invalid table to see specific schema errors, or look below it for non-critical warnings under Improve item appearance.
Critical errors vs non-critical warnings: A critical error (such as a missing thumbnailUrl or uploadDate) invalidates the markup completely, disqualifying the video from rich results. A non-critical warning (such as a missing duration or contentUrl) means your markup is still valid and eligible for display, but supplying the missing recommended property can enable richer features like video duration badges or key moments.
2. The Video Indexing Report (Page and Playback Issues)
Even if your JSON-LD syntax is valid, Google will only index a video if it is the main content of a dedicated watch page and can be rendered properly.
- In the left-hand menu, locate the Indexing section and click Video pages.
- Examine the Why videos aren’t indexed table to see page-level issues such as “Video not the main content of the page”, “No thumbnail URL provided”, or “Video outside the viewport”.
- Click any listed reason to view the affected URLs and inspect individual pages.
Required vs Recommended VideoObject Properties
When writing or auditing your structured data, your code must use exact, case-sensitive Schema.org property names. Using informal labels like “title” instead of name will trigger missing field errors.
| Property Name | Status | Formatting & Technical Requirements |
|---|---|---|
name |
Required | Text string containing the specific title of the video. |
description |
Required | Text string summarising the video content. Ensure it matches the visible context on the page. |
thumbnailUrl |
Required | One or more full URLs pointing to an image file. Must be crawlable by Googlebot (not blocked by robots.txt), provided in a supported image format (such as JPEG, PNG, or WebP), and meet minimum pixel dimensions. |
uploadDate |
Required | The date and time the video was first published, formatted in ISO 8601. Including the time and timezone offset is strongly advised (e.g., 2026-08-15T09:30:00+10:00). |
duration |
Recommended | The runtime of the video in ISO 8601 duration format (e.g., PT1M30S for 1 minute and 30 seconds). |
contentUrl |
Recommended | A direct URL to the actual video media file (e.g., an .mp4 file). Avoid pointing this to an HTML webpage. |
embedUrl |
Recommended | A URL pointing to a player for the specific video (such as a YouTube or Vimeo embed URL). Provide either contentUrl, embedUrl, or both. |
hasPart |
Recommended | Used with Clip markup to define key moments (chapters) with specific timestamps and labels. |
Example of Valid VideoObject JSON-LD Markup
You can use the following JSON-LD template as a reference to verify your syntax. Place this script inside the <head> or <body> of the webpage where the video is embedded, replacing the placeholder values with your actual video details.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "How to Audit Video Structured Data in Search Console",
"description": "A step-by-step walkthrough showing how to locate, diagnose, and fix VideoObject schema errors and video indexing warnings.",
"thumbnailUrl": [
"https://example.com.au/images/video-thumbnail-16x9.jpg",
"https://example.com.au/images/video-thumbnail-4x3.jpg"
],
"uploadDate": "2026-09-14T10:00:00+10:00",
"duration": "PT4M25S",
"contentUrl": "https://example.com.au/media/video-schema-audit.mp4",
"embedUrl": "https://www.youtube.com/embed/dQw4w9WgXcQ",
"hasPart": [
{
"@type": "Clip",
"name": "Checking the Enhancements Report",
"startOffset": 0,
"endOffset": 95,
"url": "https://example.com.au/video-guide?t=0"
},
{
"@type": "Clip",
"name": "Fixing ISO 8601 Date and Duration Errors",
"startOffset": 95,
"endOffset": 265,
"url": "https://example.com.au/video-guide?t=95"
}
]
}
</script>
Troubleshooting Specific GSC Video Errors and Warnings
When Google Search Console flags an issue in either the Videos enhancement report or the Video indexing report, match the exact message below to apply the right fix.
Missing field “thumbnailUrl” or “No thumbnail URL provided”
The cause: Either the thumbnailUrl property is omitted from your JSON-LD, the URL is broken (returning a 404), or the image host is blocking Googlebot via robots.txt.
The fix: Add a valid thumbnailUrl pointing directly to an accessible image file (JPEG, PNG, WebP, or GIF) rather than a webpage. Ensure the image URL resolves with a 200 HTTP status code and does not require a login or session token to view.
Invalid datetime value for “uploadDate”
The cause: The date is written in an informal format (such as 14/09/2026 or September 14, 2026), or the timestamp includes a time without a timezone offset.
The fix: Format the date strictly in ISO 8601: YYYY-MM-DD. If you include the time of day, append a T, the 24-hour time, and the local timezone offset (for example, 2026-09-14T14:30:00+10:00 for Australian Eastern Standard Time or Z for UTC).
Invalid value type for field “duration”
The cause: The video runtime is entered as plain numbers or colon-separated digits (such as 1:30 or 90 seconds).
The fix: Convert the runtime to ISO 8601 duration format. Start the string with PT (Period of Time), followed by hours (H), minutes (M), and seconds (S). A 1-minute and 30-second video must be written as "PT1M30S". A 15-minute video is "PT15M".
Video not on a watch page / Video not the main content of the page
The cause: This appears in the Video indexing report when a video is embedded as supplementary material inside a long blog post, buried in a product gallery, or placed in a sidebar or footer. Adding VideoObject schema to a blog post will not force Google to index a complementary video.
The fix: If the video is only there to support written text, you do not need to take action; it is normal for supplementary videos not to be indexed as standalone video pages. If you want the video itself to rank in Google Video results, create a dedicated watch page where the video is the primary focus above the fold, or move the video player to the very top of the page so it is immediately visible upon loading.
Video outside the viewport
The cause: The video player is placed far down the page, hidden inside an unexpanded accordion or tab, or styled with CSS that pushes it off-screen on mobile or desktop viewports.
The fix: Reposition the video embed higher in the HTML layout so that the player is visible without heavy scrolling when the page loads.
Duplicate structured data on the same page
The cause: The same video is marked up multiple times on a single URL. This commonly happens in WordPress when an SEO plugin automatically generates VideoObject schema for a YouTube embed while a page builder, video plugin, or manual script outputs a second block of schema for the exact same video.
The fix: Inspect your page source code and search for VideoObject. Disable automatic video schema generation in either your video player plugin or your SEO plugin so that only one complete, accurate JSON-LD block outputs per video.
How to Test and Validate Your Fixes
Once you have updated your JSON-LD code or adjusted your WordPress plugin settings, verify the changes before asking Google to recrawl the affected URLs.
- Test with the Rich Results Test: Open Google’s Rich Results Test tool and paste either your live URL or your updated code snippet. Confirm that the tool detects the Videos item with zero critical errors.
- Inspect the live URL in GSC: Paste the repaired page URL into the top search bar in Google Search Console and click Test Live URL. Check the Videos and Video indexing tabs to verify that Googlebot can render the player and read the thumbnail.
- Trigger validation: Return to the specific error page inside the Videos enhancement report or Video pages indexing report, and click the Validate Fix button.
Frequently Asked Questions
Do I need VideoObject schema for embedded YouTube videos?
Adding VideoObject schema to pages with embedded YouTube videos is recommended if the video is a primary piece of content on that page and you want your own webpage URL to be eligible for video rich results. While Google can often automatically extract basic metadata from standard YouTube iframes, providing explicit JSON-LD markup gives you direct control over the title, description, upload date, and chapter timestamps associated with your page.
What is the difference between the ‘Video indexing’ report and the ‘Videos’ enhancement report in GSC?
The Videos enhancement report only checks the syntax and completeness of your VideoObject structured data code on pages where that schema is present. The Video indexing report tracks all pages where Google detected a video (with or without schema) and evaluates whether the page qualifies as a dedicated watch page where the video is prominent, renderable, and the main content.
Will fixing non-critical video schema warnings improve my rankings?
Fixing non-critical warnings (such as missing duration or contentUrl properties) does not directly boost your organic search ranking position. However, supplying recommended properties makes your video listing more informative in search results—such as displaying the video’s runtime badge or chapter links—which can improve click-through rates from searchers.
How do I generate ISO 8601 duration codes for my videos?
You can write an ISO 8601 duration code manually without any special tool by starting with the letters PT (Period of Time) and appending the hours (H), minutes (M), and seconds (S). For example, a video that runs for 3 minutes and 45 seconds is written as PT3M45S, while a 1-hour, 10-minute, and 20-second video is written as PT1H10M20S.
Why is Google saying my thumbnail URL is blocked or unreachable?
This error occurs when the URL inside your thumbnailUrl field points to a directory disallowed by your site’s robots.txt file, sits behind a firewall or hotlink protection rule that blocks Googlebot, or uses a temporary signed URL that expires. Test the exact image URL in Google Search Console’s URL Inspection tool to confirm it returns an HTTP 200 status and is accessible to anonymous crawlers.
How long does ‘Validate Fix’ take in Google Search Console?
Once you click Validate Fix, Google immediately checks a few sample URLs and then queues the remaining affected pages for recrawling. The full validation process typically takes up to two weeks to complete, depending on the number of URLs involved and your website’s normal crawl schedule.