
What Video SEO is
Video SEO is the work of getting your videos found, indexed, and shown as rich results in Google, video carousels, and on-page search. It runs on VideoObject structured data, a good thumbnail, an accurate transcript, and smart choices about where the video is hosted. Get it right and a single video can earn a thumbnail in search that pulls clicks a plain blue link never would.
The VideoObject markup that makes a video eligible
Google can't watch your video, so you describe it. VideoObject tells Google the title, description, thumbnail, upload date, duration, and where the file lives. Without it, your video may never surface as a rich result even if the page ranks.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "How to Re-Pot a Snake Plant",
"description": "A 4-minute walkthrough of re-potting a root-bound snake plant.",
"thumbnailUrl": ["https://example.com/thumbs/snake-plant.jpg"],
"uploadDate": "2026-02-14T08:00:00+00:00",
"duration": "PT4M12S",
"contentUrl": "https://example.com/video/snake-plant.mp4",
"embedUrl": "https://example.com/embed/snake-plant",
"hasPart": [{
"@type": "Clip",
"name": "Removing the root ball",
"startOffset": 45,
"url": "https://example.com/video/snake-plant.mp4?t=45"
}]
}
</script>The hasPart block with Clip objects is what powers Key Moments, the timestamped chapters Google shows under a video result. duration uses ISO 8601 (PT4M12S means 4 minutes 12 seconds), and uploadDate should reflect when the video actually went live.
Hosting choices and what each one costs you
Where you put the video shapes what SEO you can do with it. There's no single right answer, only trade-offs.
| Hosting option | Control over schema | Discovery upside | Best when |
|---|---|---|---|
| Self-hosted (your server / CDN) | Full – you own the markup | All SEO credit flows to your page | You want the video result to point at your site |
| YouTube embed on your page | Partial – add VideoObject yourself | YouTube's own reach plus your page's | You want YouTube discovery and site embedding both |
| YouTube only (no site embed) | None on your domain | Strong on YouTube; nothing for your site | YouTube is the destination and your site isn't the goal |
| Vimeo / third-party player | Partial – depends on player | Cleaner embeds, less native search reach | Presentation and ad-free playback matter most |
How to check it on your own site
- View source on a page with a video and search for
"@type": "VideoObject". No markup means no video rich result, full stop. - Confirm the
thumbnailUrlresolves to a real, high-quality image. Google needs a crawlable thumbnail to show the result. - Check that
uploadDateanddurationare present and correctly formatted. Bad ISO formatting silently invalidates the block. - Run the page through the Rich Results Test and confirm it reports a valid Video result with no errors.
- If you want Key Moments, verify the
hasPart/Cliptimestamps line up with the actual video. - Make sure the video is in a video sitemap or your main sitemap so Google can discover it reliably.
- Add captions or a transcript on the page. It aids accessibility and gives Google text to understand the content.
Common mistakes and how to fix them
- Embedding a video with zero structured data. The page might rank, but the video won't get a thumbnail result. Add
VideoObjectto every page with a meaningful video. - Missing or tiny thumbnails. No crawlable, high-res
thumbnailUrlmeans no video rich result. Supply a real image at a proper size. - Broken ISO 8601 duration. Writing
duration: "4:12"instead ofPT4M12Sinvalidates the markup. Use the correct format. - Key Moments timestamps that don't match the video. Misaligned
Clipoffsets confuse users and can get the feature dropped. Verify each start time. - Assuming a YouTube-only video helps your website. If it's not embedded on your page with your own schema, the SEO value stays on YouTube, not your domain.
FAQ
Do I need VideoObject schema if my video is on YouTube?
Only if you also embed it on your own page and want the rich result to point at your site. For YouTube-only videos, YouTube handles discovery and your domain gets nothing. Embed plus your own VideoObject gets you both.
What are Key Moments and how do I get them?
They're the timestamped chapters Google shows under a video result. You enable them with hasPart and Clip objects in your VideoObject, each with a startOffset that matches the video.
Why isn't my video showing a thumbnail in search?
Most often a missing or non-crawlable thumbnailUrl, no VideoObject markup, or a schema error. Run the Rich Results Test and fix what it flags, then check discovery via a video sitemap.
Do transcripts and captions help video SEO?
Yes. They make the video accessible and give Google text to understand what it contains, which supports both ranking and matching to queries. See why videos need captions.
Self-host or use YouTube?
Self-host when you want the search result and its authority to point at your own site. Use YouTube when its native reach is the goal. Many sites do both: host on YouTube for reach, embed with VideoObject for site-level rich results. For the full markup walkthrough, see the VideoObject schema guide and the video carousel and rich results guide.
Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.
About SEO ProCheck
Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.
Work With Me
Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.







