BlogFindings

Video schema: 21 of the 270 home pages showing a video declared one

Lantad asked all 1,419 hostnames in this repository's committed corpus for robots.txt on 23 September 2026 and read each home page with no JavaScript executed. 1,084 answered HTTP 200 with HTML and 270 of those put a video in front of the crawler. 21 of the 270 declared video schema, the 43 VideoObject nodes between them all carried the three properties Google requires, and 2 carried a transcript.

16 min read Lantad

So the question worth measuring is not whether crawlers can watch video. None of them claims to. The question is what a site writes down beside the video, and whether any of it is the kind of structured data a machine can lift. This run asked all 1,419 hostnames in this repository's two committed corpus seed files for robots.txt on 23 September 2026, then requested each home page once as LantadBot and read the raw bytes with no JavaScript executed. 1,084 home pages answered HTTP 200 with HTML. 270 of them put a video in front of the crawler by one of four mechanisms, and what those 270 pages said about their videos is the finding.

In short

  • Video schema was declared by 21 of the 270 home pages that showed a video to Lantad's crawler on 23 September 2026, which is 7.8 percent of them and 1.9 percent of the 1,084 home pages read.
  • All 43 VideoObject nodes found carried name, thumbnailUrl and uploadDate, the three properties Google's video structured data documentation dated 2026-09-08 UTC lists as required, so the gap in this corpus is absence rather than malformation.
  • 2 of the 43 nodes carried a transcript, dynatrace.com at 918 characters and hsbc.com at 4,985 characters, and none carried a caption property.
  • 14 of the 21 sites declaring the markup served no video element and no recognised player iframe in their HTML, so the schema was the only evidence in the delivered bytes that a video was on the page at all.
  • The 270 pages carrying video held a median 1,254 visible words against 892 on the 814 pages without, so video in this corpus sat alongside prose rather than replacing it.
StageCountWhat happened
Hostnames asked1,419The committed corpus, an editorial frame rather than a random draw
robots.txt disallows LantadBot at the root10Left alone, not requested further
Home page returned no status at all32Connection refused, DNS failure, or a timeout at twenty five seconds
Home page answered something other than 200 with HTML293209 answered 403 and 54 answered 503
Home pages read1,084The denominator for everything below
Showed a video to the crawler27024.9 percent of the pages read
Declared video schema217.8 percent of the 270
One GET of https://<host>/robots.txt, then one GET of https://<host>/, each as LantadBot/1.0 with redirects followed, a twenty five second timeout, no JavaScript executed and from one network location. Measured by Lantad on 23 September 2026 across the 1,419 hostnames in this repository's two committed corpus seed files.

What is video schema, and what does it tell an AI crawler?

Two documents define it and they want different things from you.

schema.org, at release 30.1 dated 2026-09-16, defines VideoObject as a media object with eight properties of its own, and one of them is the whole subject of this post. The vocabulary defines transcript as "If this MediaObject is an AudioObject or VideoObject, the transcript of that object", typed as plain Text. There is also a caption property, an embeddedTextCaption property, and the inherited machinery for naming a duration, an upload date, a thumbnail and the address of the file. The vocabulary, in other words, already has a field whose entire purpose is to put the words spoken in a video into the page as text.

Google's video structured data documentation, carrying Last updated 2026-09-08 UTC, asks for three properties and none of them is that one. It requires name, "The title of the video"; thumbnailUrl, "A URL pointing to the video's unique thumbnail image file"; and uploadDate, "The date and time the video was first published, in ISO 8601 format". Its recommended list runs to contentUrl, description, duration, embedUrl, expires, hasPart, ineligibleRegion, interactionStatistic, publication and regionsAllowed. The string transcript appears zero times in the page as served on 23 September 2026. The same is true of Google's video SEO best practices page, dated 2025-12-18 UTC, which states that Google can find videos referenced by a video, embed, iframe or object element, and never mentions a transcript either.

That gap matters here more than it does for search. A thumbnail and an upload date are enough to build a video result in a list of blue links, because a person clicks through and watches. An answer engine has nothing to click through with. The only part of a video that can survive into a generated answer is text somebody wrote down, which makes transcript the one property on this type that does the job this site measures, and the only one nobody is asked for. It is the same shape of finding as the FAQ measurement published earlier today, where 298 of 1,277 answers were not in the page the crawler was served: the markup exists, the vocabulary supports the honest version of it, and the published requirements stop short of asking for the part a machine can use.

DocumentDate it carriesWhat it asks forTimes it says transcript
schema.org VideoObjectRelease 30.1, 2026-09-16Defines transcript, caption and embeddedTextCaption on the type4
Google video structured data2026-09-08 UTCRequires name, thumbnailUrl, uploadDate0
Google video SEO best practices2025-12-18 UTCSays Google finds videos via video, embed, iframe or object elements0
The two documents that govern video markup, quoted from the pages themselves, each fetched and read at source on 23 September 2026. Occurrence counts are of the served bytes with script content removed.

How many home pages showed a crawler a video

270 of the 1,084 home pages read carried at least one of four signals: an HTML video element, an iframe pointing at a recognised video host, an og:video meta property, or a VideoObject node. That is 24.9 percent, so a quarter of these home pages show a crawler a video. The markup that would describe one is a different story, and it sits inside the same body of structured data this corpus has been measured for repeatedly, most recently in finding that 103 of 385 pages with JSON-LD named no organization.

The mechanisms are not evenly used. 216 sites served 1,178 video elements between them, which is the great majority of the video on these pages. What is in those files was not measured and cannot be from the markup: 1,110 of the 1,178 sit on a page carrying no caption track at all, so the element is usually the only thing declaring that a video is there. 54 sites served 134 player iframes. The addresses inside those iframes named YouTube 101 times, Vimeo 16, Wistia 16, Loom twice and Brightcove once, which sums to 136 rather than 134 because two elements named the same player in both a src and a lazy loading data-src attribute. Four pages declared an og:video property and not one declared a twitter:player.

One number here should be read carefully rather than quoted. 351 of the 1,178 video elements carried a src attribute of their own. The rest either name their file in a child source element or are filled in by a script after the page loads, and this scan did not separate those two cases, because a source element is also how a responsive image is written and counting them together would have produced a figure that means nothing. What can be said is narrower and still useful: on 148 of the 216 sites carrying a video element, not one of those elements named a file directly in the markup. That is the same class of dependency this blog measured when it found that JavaScript supplied 7.6 percent of the prose and all of it on 11 of 271 pages, and it is worth knowing about before you assume a crawler saw what you see.

The scanner's own user agent was used throughout and robots.txt was read first on every host, which is why 10 hostnames were left alone entirely. The 293 that answered with something other than HTML are a real limit on this sample rather than a footnote: 209 of them, 71 percent, returned 403, which is bot defence rather than a broken site, and this is the same population that produced the finding that 79 of 115 sites refused a crawler their robots.txt allows.

MechanismSitesElementsWhat a crawler gets from it
HTML video element2161,178The element and its attributes. No speech, no captions inline
Player iframe54134An address on another host, plus a title attribute if one was written
og:video meta property4At least 4A URL and nothing describing it
VideoObject in JSON-LD2143Whatever the publisher chose to write down
The four ways a video was visible to a crawler in the served HTML of the 1,084 home pages Lantad read on 23 September 2026. A page can use more than one, so the site counts do not sum to 270.

The 21 sites that declared it, and what their 43 nodes carried

21 sites carried video schema, 43 nodes between them. The distribution of quality inside those 43 is the surprise, and it runs the opposite way to most structured data findings on this site.

Every one of the 43 carried name, thumbnailUrl and uploadDate. All three required properties, on all 43 nodes, with no exceptions. 32 carried a description, with a median length of 153 characters. 30 declared a duration, 26 gave a contentUrl and 26 gave an embedUrl. Compare that against the defect rates this corpus normally produces, where 117 of 612 home pages with JSON-LD carried a defect, or against the product markup measured yesterday where 22 of 42 nodes carried no manufacturer identifier. Video markup in this corpus is not written badly. It is simply not written. The people who do it are following the documentation closely, and there are 21 of them.

Where it appears is as lopsided as how often. Nine of the 21 are SaaS companies, out of 48 SaaS sites that showed a video at all. Three are finance, one is government, one is news and one is travel. Not one of the 33 education sites showing a video declared the markup, and not one of the 17 healthcare sites did either, which are the two categories most likely to be publishing a lecture or a patient explainer, the two kinds of video whose content is almost entirely speech. Among the platform strata the count is near zero throughout: no Webflow site, no Framer site and no Shopify storefront in this corpus declared it.

The detail that changes what the markup is for came out of crossing the two measurements. Of the 21 sites declaring a VideoObject, 14 served no video element and no recognised player iframe anywhere in the HTML the crawler received. unesco.org, foxnews.com, docker.com, twilio.com, dynatrace.com and nine others describe a video in their JSON-LD and then build the player in the browser. For those 14 the schema is not a description of something the crawler can also see. It is the only evidence in the delivered bytes that a video exists on the page at all, which makes it more load bearing than its authors probably intended.

  • SaaS, 48 pages with video 9 of 48
  • Finance, 16 with video 3 of 16
  • SaaS marketing, 20 with video 2 of 20
  • Single page app startups, 16 with video 2 of 16
  • News, 17 with video 1 of 17
  • Government, 12 with video 1 of 12
  • Travel, 14 with video 1 of 14
  • Education, 33 with video 0 of 33
  • Healthcare, 17 with video 0 of 17
  • Webflow, 14 with video 0 of 14
  • Shopify direct to consumer, 14 with video 0 of 14
  • Ecommerce, 11 with video 0 of 11
  • Framer, 11 with video 0 of 11
Home pages showing a video, and the number of those declaring video schema, by the corpus category the hostname is filed under in worker/seeds/corpus-seeds-industry.json and worker/seeds/corpus-seeds-platform.json. Measured by Lantad on 23 September 2026. Categories where fewer than 11 pages showed a video are omitted.

What text a crawler actually got from the video

This is the part the whole run was built to answer, and the answer is short.

Two of the 43 nodes carried a transcript. dynatrace.com carried 918 characters of one on a node named "Understand your business like never before with Dynatrace", and hsbc.com carried 4,985 characters on a node named "HSBC Culture of Innovation". Not one node carried a caption property. Across 1,084 home pages, 270 of them showing video, the total quantity of spoken video content written into machine readable text was two nodes and roughly 5,900 characters, and 4,985 of those characters belong to one bank.

The obvious objection is that captions are the proper mechanism and schema is not. The objection is right about the mechanism and wrong about the outcome. 14 sites served 53 track elements of kind captions, subtitles or descriptions. The track element, on a page last modified 24 April 2026, lets an author "specify a timed text track (or time-based data) that can be displayed in parallel with the media element", and those tracks are WebVTT files living at their own URLs. So the caption text is not in the home page either. A crawler that reads the HTML and stops there sees a filename. Thirteen of those 14 track-carrying sites are inside the 270, and the fourteenth carries a track with no video element or player iframe in its markup at all. Between the two mechanisms, 15 of the 270 sites with video wrote the words down anywhere a machine could reach them, and only two put them in the page itself.

What is left is titles. 102 of the 134 player iframes carried a title attribute and 32 did not, which means roughly a quarter of the embedded players on these pages are anonymous even to a screen reader. The 32 descriptions on VideoObject nodes have a median length of 153 characters, roughly a sentence and a half. The word transcript appears in the visible text of 11 of the 1,084 home pages and 5 of the 270 with video, so a link to a transcript elsewhere on the site is about as rare as the markup. Set against the prose parity question this scanner exists to answer, video is the cleanest example in the corpus of content that is present for a person and absent for a machine, and it does not show up in a syntax check the way 22 of 385 pages carrying microdata did, because there is no defect to find. There is nothing there to be wrong.

What reaches a crawler from a video on a home page, traced through the four mechanisms counted on 23 September 2026. Only the transcript property and the iframe title put words in the response the crawler already has.

The pages with video were not the text-poor ones

The tidy version of this story would be that sites put their message in a video instead of writing it, and the crawler gets a blank page. That is not what the corpus shows, and the measurement is worth publishing precisely because it cuts against the pitch.

The 270 home pages carrying video held a median 1,254 visible words. The 814 without held a median 892. Pages with video carried about 40 percent more readable prose than pages without, and only 9 of the 270 fell below 200 words, against the 17 near-empty home pages counted when this blog measured that 17 of 380 home pages sent a crawler zero words. Video on these sites is decoration and demonstration layered over a page that already says what it does. The loss is not that the page is empty. The loss is the specific content that only exists as speech, and nothing in this measurement tells you how much of that there is, because measuring it would mean watching 1,178 videos.

What the crawler vendors say about any of this is close to nothing, and that absence is checkable. Anthropic's crawler documentation, dated 7 April 2026, names ClaudeBot, Claude-User and Claude-SearchBot and contains the strings video and transcript zero times each in the bytes it serves. OpenAI's crawler page names GPTBot, OAI-SearchBot, OAI-AdsBot and ChatGPT-User, and the four occurrences of video and three of transcript in its served bytes are all navigation links to unrelated API guides rather than statements about the crawlers. Neither vendor documents a media pipeline, a transcription step or a file type list, which is consistent with the position this site has taken since it started publishing the registry of crawler tokens it evaluates: what an engine does after the fetch is not observable from the page, so this post claims nothing about it. What is observable is what left the server, and for 268 of the 270 pages, what left the server said nothing about what the video says.

  • Pages showing a video, 270 1,254 median words
  • Pages showing no video, 814 892 median words
  • Pages with video under 200 words 9 of 270
Median visible words in the served HTML, script, style, noscript and comment content removed, across the 1,084 home pages Lantad read on 23 September 2026, split by whether the page showed the crawler a video.

What to check on your own site

Five checks, in the order they cost you the least, and every one of them runs against the HTML your server sends rather than the page your browser assembles. Fetch the page with curl or with what GPTBot sees and read the response, because on 148 of the 216 sites here the video element in the markup named no file at all.

First, find out whether your video is in the response. If the player is built by a script, a crawler gets no signal that a video exists unless you also declared it, which is the position 14 of the 21 markup-carrying sites in this corpus are in without necessarily knowing it. Second, if you write a VideoObject, write name, thumbnailUrl and uploadDate, because those are the three Google requires and every one of the 43 nodes found here managed it. Third, write a description longer than the 153 character median, since that is the sentence an answer engine has to work with if it has anything at all.

Fourth, and this is the one almost nobody does, put the transcript in the markup. The property exists, it is typed as text, and two sites in 1,419 used it. If your video carries an argument, a demonstration or a spoken explanation that is not written anywhere else on the page, then that argument currently reaches no machine. Publishing the transcript as visible prose beside the player is better still, because it needs no vocabulary and no parser, and it is the version that survives whatever any given engine decides to support. Fifth, give every player iframe a title attribute, which 32 of the 134 here do not have.

None of this is an AI visibility score and none of it is a ranking claim. It is the difference between a page that mentions a video and a page that says what is in it, measured on one day across one corpus, using the same method as the rest of this repository's crawlability research. The corpus is an editorial frame rather than a random sample of the web, one page per site, one network location and one moment, so read the ratios and not the decimal places.

  • The player is in the served HTML 14 of the 21 sites declaring video schema served no video element and no player iframe in the response
  • A VideoObject node is declared 21 of 270 pages with video, which is 7.8 percent
  • name, thumbnailUrl and uploadDate are all present 43 of 43 nodes, the one thing this corpus does well
  • A description longer than a sentence 32 of 43 nodes carried one, median 153 characters
  • A transcript in the markup 2 of 43 nodes, dynatrace.com at 918 characters and hsbc.com at 4,985
  • Every player iframe carries a title 102 of 134 titled, 32 anonymous
The five checks behind this post, and what the 23 September 2026 run found across the 270 home pages that showed a crawler a video.

Written by

Lantad

Published .

An AI crawler downloads bytes and reads what is in them. A video file is not in them. The player is a reference to a file somewhere else, the speech inside that file is a waveform rather than text, and nothing in the HTTP response that carries a home page tells a machine what anybody in the video said. This blog has measured the neighbouring case already and found that 834 iframes on 433 home pages held 9,098 words between them, most of them tag managers carrying no prose at all. Video is the harder version of the same problem, because an iframe at least sometimes contains a document a crawler can open.

Common questions

What is video schema?

Video schema is the VideoObject type from the schema.org vocabulary, usually written as JSON-LD in the page head, describing a video that appears on the page. Google's video structured data documentation, dated 2026-09-08 UTC, requires three properties on it: name, thumbnailUrl and uploadDate. schema.org release 30.1 defines several more, including a transcript property typed as plain text.

Can an AI crawler watch a video on my page?

No AI crawler vendor documents doing so, and Lantad has not measured what any engine does after the fetch, because that is not observable from the page. What is observable is that a video file's audio is not in the HTML response. Anthropic's crawler page dated 7 April 2026 contains the words video and transcript zero times, and OpenAI's crawler page mentions them only in navigation links to unrelated API guides.

Does adding video schema get my video into an AI answer?

This measurement cannot tell you that and neither can anyone else from outside the models. What it can tell you is what a crawler receives. On 14 of the 21 sites here that declared a VideoObject, the markup was the only evidence in the served bytes that a video existed at all, because the player itself was built by JavaScript that the crawler did not run.

Is a caption track the same as a transcript?

Not for this purpose. A track element of kind captions or subtitles points at a WebVTT file at its own URL, so the words are one more request away rather than in the page a crawler already has. 14 sites in this corpus served 53 such tracks. Two sites put transcript text directly in their markup, which is the only form that arrives with the page.

See what AI can read on your site

Run a free scan and get a graded report of exactly what AI crawlers can and cannot read, with ranked fixes.