On this page
The short version
- Google requires three VideoObject fields, name, thumbnailUrl and uploadDate, and recommends 11 more, which most guides flatten into one checklist even though the 11 are not equal.
- For a YouTube video embedded in an article, three recommended fields already ship on this site, five have no job on a YouTube embed, and three remain open decisions: creator (who made it), hasPart (key-moment markers) and interactionStatistic (viewer statistics).
- In its key-moments guidelines, Google's page says VideoObject markup belongs on a page where users can watch the video. It gives two key-moments rules, the YouTube description for YouTube-hosted video and Clip or SeekToAction for embedded video, without saying which governs a YouTube video embedded on your own page.
- This site added duration on September 23, 2026, after its own audit found it missing, so the reference lists that most guides copy go stale within weeks.
Google requires three fields in VideoObject markup, the block of labels that tells a search engine a page holds a video. Those fields are name, thumbnailUrl and uploadDate.1 Google also recommends 11 more, and most guides present all 14 as one checklist. Sorted by what applies to a YouTube video embedded in an article, the 11 split into three already done, five with no job on a YouTube embed, and three that are real decisions.
Google requires three VideoObject fields and recommends 11 more, and for a YouTube embed on an article only three of those 11 still need a decision.
What does Google require in VideoObject markup?
Google requires three VideoObject properties. name is the title of the video. thumbnailUrl is a URL pointing to the video’s unique thumbnail image file. uploadDate is the date and time the video was first published, in ISO 8601 format, the standard way to write a date and time as text such as 2026-09-29T09:00:00Z.1
Google also states a placement rule, and it sits in the guidelines for key moments, the labeled jump-to points Google can show inside a video result. Two markup types mark them up, Clip and SeekToAction, and the rule appears there rather than in the table of required fields.
There it says “VideoObject structured data must be added to a page where users can watch the video.”1 The reason it gives is that pointing people to a page where they cannot watch is a bad experience.
Because the sentence sits in the key-moments guidelines, whether Google applies it to every VideoObject block is suspected, not stated. An article that embeds the player meets it either way, since the reader can press play on that page.
What does Google recommend, and which recommended fields apply to a YouTube embed?
Google recommends 11 properties beyond the three required ones. Three ship on this site (description, duration and embedUrl), five have no job on a YouTube embed (contentUrl, expires, ineligibleRegion, publication and regionsAllowed), and three remain open (creator, hasPart and interactionStatistic). Structured data is the set of machine-readable labels a page carries about itself. My read is that accuracy matters more than completeness, so leave out a field that has nothing true to say.
The table lists all 14 fields grouped by tier, with what this site outputs and the tier I put each in. The last column is my own sorting, and Google does not rank the recommended fields against one another.
| Field | Google’s label | Output on this site | Tier |
|---|---|---|---|
name |
Required | Yes | Shipped |
thumbnailUrl |
Required | Yes, three sizes | Shipped |
uploadDate |
Required | Yes | Shipped |
description |
Recommended | Yes | Shipped |
duration |
Recommended | Yes, since September 23, 2026 | Shipped |
embedUrl |
Recommended | Yes, the player address | Shipped |
contentUrl |
Recommended, “if possible” | No. It sent the youtu.be watch page until September 29, 2026, which Google’s page rules out | No job here |
expires |
Recommended, “if applicable” | No | No job here |
publication |
Recommended, “if your video is happening live” | No | No job here |
regionsAllowed |
Recommended, “if applicable” | No | No job here |
ineligibleRegion |
Recommended, “if applicable” | No | No job here |
creator |
Recommended | No | Open |
hasPart |
Recommended, “if your video has important segments” | No | Open |
interactionStatistic |
Recommended, “if applicable” | No | Open |
Field names and labels come from Google’s page.1 The “Output on this site” column comes from this site’s emitter, the code that writes the block into each article page.2
Which recommended VideoObject fields can you skip on an embedded video?
Five recommended fields have no job on a YouTube embed, and four of them describe situations an embed does not have. Skipping those four should cost nothing, because each one is conditional in Google’s own wording.
I have not tested whether leaving them out changes how Google shows the video. Google describes expires as the date after which the video “will no longer be available,” and describes regionsAllowed as the regions where the video is allowed, adding “If not specified, then Google assumes the video is allowed everywhere.”1
ineligibleRegion works the same way for regions where a video is blocked. publication exists so a live broadcast can qualify for the LIVE badge, and a recorded video is not one.1 None of my videos expires, restricts a region or streams live, so leaving them out states nothing false.
The fifth field, contentUrl, belongs here for a different reason. Google’s label for it is “if possible,” and it must point to the video file itself.1 As far as I can tell, YouTube gives a page that embeds its player no URL for the video file itself, so there is no true value to send.
My read: a guide that tells you to fill all 14 is describing a video platform’s needs, and a single article with one embed is a different case. Adding expires to a video that never expires would be a false statement in markup.
What did brandonlazovic.dev already ship, and what did it miss?
brandonlazovic.dev ships six of the 14 fields on every video page, which is three recommended fields plus the three required ones. In the site’s pages as rebuilt on September 29, 2026, 75 article pages carried a VideoObject block, and all 75 carried duration.2
One field went the other way. Until September 29, 2026, this site sent the youtu.be watch page as contentUrl on every video page.2 Google’s page defines the field as “A URL pointing to the video file’s actual content bytes” and adds “Don’t link to the page where the video lives.”1 The emitter stopped sending it on September 29, 2026.2
The duration count was zero two weeks earlier. On September 14 I audited the same block for a piece on video transcripts and found eight fields with no duration among them. The video’s length went into the markup on September 23, written from a stored list because the build cannot ask YouTube for it.
Google defines the field as the length of the video in ISO 8601, for example PT00H30M5S for thirty minutes and five seconds.1 A guide written before that date would have listed it as a gap on this site, and a guide read after that date would not.
What is the creator property, and is it a gap on this site?
creator is a recommended VideoObject field that names the person or organization that made the video. Google’s wording is “The person or organization that created or published the video.”1 It is the one recommended field here that this site emits nowhere on its video block, and it is a fact I already know and never state.
The documentation page shows a last-updated date of September 24, 2026, and my own daily log recorded creator as newly documented on September 25.3 The page does not mark which line changed, so the exact day the property arrived is suspected from that log and not confirmed from Google.
The gap is small. Every video on this site has one creator, so the value is a static name and needs no lookup. The article page already names the same author in its own separate markup for the page, and the video block does not repeat it.
Should you add hasPart and interactionStatistic?
Adding hasPart or interactionStatistic to a VideoObject block is not a clear yes for either field, and the two cases differ. interactionStatistic is where a video’s watch count and similar engagement numbers go, and Google’s label for it is “User statistics applied to the video, if applicable.”1 Those numbers live on YouTube and change daily, while this site’s build never contacts YouTube.
My read: a count baked into a static page goes stale the day after the build, and a stale figure is the kind of claim markup should avoid. I have not tested whether Google ignores or penalizes a stale count, so treat that as reasoning and not a measurement.
hasPart is different, because it carries key moments, the jump-to points described earlier. That raises a question Google’s page does not settle.
Which key-moments rule applies to a YouTube video embedded on your own page?
Google’s video structured data page gives two key-moments rules and does not say which governs a YouTube embed on a third-party page. For the first, it says “If your video is hosted on YouTube, you can specify the exact timestamps and labels in the video description on YouTube.”1 For the second, it says “If your video is embedded on your web page or you’re running a video platform, there are two ways that you can enable key moments:”1
The two methods it then lists are Clip structured data and SeekToAction structured data.
My videos are both. They are hosted on YouTube and embedded on my own pages, so each sentence describes them. Google does not say whether the YouTube description alone is enough, whether hasPart on the article page adds anything, or whether the two could conflict.
I have not run a test that would settle it, and any answer I gave would be a guess. What I can report is the state of the first rule on my side. As of my September 24 inventory, 67 of 73 videos had a chapter list that YouTube displays, and the remaining six were left alone on purpose.3
What should you do with VideoObject fields for an embedded YouTube video?
Copy the required three first, then decide each recommended field by whether a true value exists for your video. For an embedded YouTube video on an article, that means sending description, duration and embedUrl if you do not already, with contentUrl only if you host the video file yourself. Skip the conditional fields that describe situations your video does not have.
A minimal block with the three required fields plus embedUrl looks like this. The values are placeholders, so swap in your own:
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Your video title",
"thumbnailUrl": "https://example.com/thumbnails/your-video.jpg",
"uploadDate": "2026-09-29T09:00:00Z",
"embedUrl": "https://www.youtube.com/embed/YOUR_VIDEO_ID"
}
Then look at creator, since it costs a name and nothing else. Hold hasPart until Google clarifies which key-moments rule applies to your setup, or test it on one page and watch what Search Console reports for it.
One caution about the reference tables in guides, including reference tables on this site. This site’s own rich results table lists nine recommended VideoObject fields and omits creator and ineligibleRegion, two properties Google’s page lists. The same drift that caught duration catches a table, so check Google’s page, dated September 24, 2026, before you copy any list.
Sources
Google Search Central video structured data documentation, read September 29, 2026. The page counts and field checks are my own, run on this site the same day.
- Google Search Central: Video (VideoObject) structured data (last updated 2026-09-24 UTC, read 2026-09-29)
- First-hand: brandonlazovic.dev VideoObject emitter in src/pages/articles/[slug]/index.astro and the built pages in dist/, read and counted 2026-09-29
- First-hand: brandonlazovic.dev daily Pulse log entry for 2026-09-25 recording the creator property, and the YouTube chapters run record, inventory of 2026-09-24
Related reading
From the Daily Pulse
This piece elsewhere
Explore with