Video SEO is the work of getting a video to rank inside Google Search, video results and image results — not inside YouTube. It comes down to three things Google needs before it will show a video rich result: a crawlable thumbnail, a public watch or embed page, and structured data (or a video sitemap) that describes the file. Get those right and you earn a thumbnail-plus-duration listing that consistently out-clicks a plain text result.
This guide walks through where to host, what on-page signals matter, how thumbnails and transcripts feed indexing, and the exact schema and sitemap setup that produces rich results — plus a checklist and the mistakes that quietly kill video visibility.
What video SEO is (and how it differs from YouTube SEO)
Video SEO optimizes for Google's index. YouTube SEO optimizes for YouTube's internal search and recommendation system. They share DNA — both reward a strong title, a compelling thumbnail and content that answers a real query — but they're judged by different machines.
Google cares about structured data, crawlable thumbnails, page relevance and load speed. YouTube cares about watch time, average view duration, session length and click-through rate on its own surface. A tutorial can top YouTube search and never appear in Google, because Google may not have a clean video result to show. The reverse happens too: a self-hosted explainer with perfect schema can win a Google video result while being invisible on YouTube.
| Signal | Video SEO (Google) | YouTube SEO |
|---|---|---|
| Primary surface | Google Search / video / images | YouTube search + suggested |
| Top ranking factor | Relevance + structured data | Watch time + retention |
| Thumbnail role | Must be crawlable for rich result | Drives CTR in-platform |
| Text signal | On-page transcript + surrounding copy | Title, description, tags |
| Where the click lands | Often your own domain | Stays on YouTube |
If your goal is traffic to your website, treat video SEO as the priority. If your goal is subscribers and YouTube reach, invest in YouTube SEO and YouTube ranking factors. Most serious teams do both, and the video SEO vs YouTube SEO distinction is really about where the click should land.
Where to host: YouTube, self-hosted, or both
Hosting is the first strategic decision, and it changes which page can rank.
Embed from YouTube when reach on YouTube itself matters, when you want free bandwidth and reliable playback, and when you're fine with the video rich result often pointing back to YouTube rather than your page. The tradeoff: YouTube keeps the audience and the eventual clicks.
Self-host (via a CDN, or a dedicated host like Vimeo, Wistia or Cloudflare Stream) when you want the ranking URL to live on your domain, keep viewers on your site, and control the player and data. The tradeoff: you handle bandwidth, adaptive streaming and encoding — and you must add schema yourself, because there's no platform doing it for you.
Both is the common answer for high-value content: publish on YouTube for discovery, then embed that same video (or a self-hosted copy) on a dedicated landing page with full VideoObject markup so the page can win its own Google result.
Whichever you choose, the video must be the main content of a standalone, indexable page. A video buried three-quarters down a page full of unrelated text rarely earns a video result.
On-page signals: titles, surrounding text and embeds
Once hosting is settled, the host page carries the ranking weight. Google reads the page around the player to understand what the video is about.
Title and H1. Make the page title match search intent and include the primary phrase naturally. "How to reset a Wi-Fi router (step-by-step video)" beats "Our helpful video."
Surrounding text. Put a real, descriptive paragraph above or below the embed — what the video covers, who it's for, key takeaways. This is your strongest on-page relevance signal after the transcript. Aim for at least 150–300 words of genuinely useful context, not keyword filler.
One primary video per page. If you have a library, give each important video its own URL. Ten videos crammed onto one page dilute every one of them.
Clean embed code. When you embed a video for SEO, use a standard, crawlable embed and set the embedUrl in your schema to match. Lazy-loading is fine for speed, but don't hide the video behind an interaction Google can't detect. Playback speed matters too — a slow-loading player hurts both rankings and retention, so keep the page fast per web.dev's Core Web Vitals guidance.
Thumbnails, transcripts and captions for indexing
This is where most video pages leak relevance — and it's the easiest to fix.
Thumbnails
Google needs a publicly fetchable thumbnail to render a video rich result. Requirements are strict but simple:
- Minimum 60x30 px; larger (1280x720) is strongly preferred.
- Formats: BMP, GIF, JPEG, PNG, WebP (and a few others).
- The URL must not be blocked by robots.txt and must return a 200.
- The
thumbnailUrlin your schema must point to it exactly.
A custom, high-contrast thumbnail also lifts click-through once you rank. If you're producing at scale, our guide to YouTube thumbnails and CTR covers the design side.
Transcripts
Search engines can't watch pixels. A transcript published on the page is the richest text signal you can give them — it surfaces long-tail phrases, product names and questions the spoken content answers. It also helps Google set accurate key moments (the clickable timestamps in some video results). Add the full transcript in an expandable block below the video; see video transcripts for SEO for the how-to.
Captions
Captions are a timed file (.vtt or .srt) that plays with the video. They serve viewers and accessibility, and platforms read them, but the on-page transcript is what most directly feeds Google's topical understanding. Do both: captions for the player, transcript for the page.
VideoObject schema and video sitemaps for rich results
This is the technical core. Google shows video enhancements when it can reliably parse a video from your page — and the reliable way to tell it is VideoObject structured data.
Required properties for a valid VideoObject:
name— the video titledescription— a plain-language summarythumbnailUrl— the crawlable thumbnail from aboveuploadDate— ISO 8601 formatcontentUrlorembedUrl— the actual file or the player URL
Recommended additions that unlock more features: duration (ISO 8601, e.g. PT2M30s), and — for live streams — the BroadcastEvent markup. Full field definitions live in Google's VideoObject documentation and on schema.org.
Here's a minimal, valid JSON-LD block:
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "How to reset a Wi-Fi router",
"description": "A 2-minute walkthrough of resetting any home router.",
"thumbnailUrl": "https://example.com/thumb-1280x720.jpg",
"uploadDate": "2026-06-19",
"duration": "PT2M30S",
"contentUrl": "https://example.com/video.mp4",
"embedUrl": "https://example.com/embed/router-reset"
}
Video sitemaps are the second mechanism. A dedicated sitemap (or video entries inside your main sitemap) explicitly tells Google which pages host videos and gives the same core metadata. Schema and sitemap aren't either/or — using both maximizes the chance of discovery, especially for large libraries. Our video sitemap guide has the exact XML.
After deploying, validate every template with the Rich Results Test and monitor the Videos report in Search Console. Then confirm the result actually appears in the wild — a thumbnail can validate in testing yet fail to show if the watch page isn't treated as the main video location.
Video SEO checklist and common mistakes
Run this before you consider a video page done:
| Step | Done when |
|---|---|
| Standalone indexable URL | The video is the main content of its own page |
| Descriptive title + H1 | Matches intent, includes primary phrase naturally |
| Surrounding text | 150+ words of real context around the embed |
| Crawlable thumbnail | 200 response, not robots-blocked, ≥60x30 px |
| On-page transcript | Full text published, not just captions |
| VideoObject schema | Passes Rich Results Test, all required fields |
| Video sitemap entry | Page listed with metadata |
| Fast player load | No render-blocking, good Core Web Vitals |
| Tracked | Query + position + rich-result presence monitored |
The mistakes that quietly cost you rankings:
- Blocking the thumbnail in robots.txt. If Google can't fetch it, no rich result — full stop.
- Multiple videos on one URL. Give each meaningful video its own page.
- Schema that doesn't match the page. A
contentUrlpointing to a deleted file, or anembedUrlthat differs from the real embed, breaks validation. - No transcript. You're asking Google to rank content it can't read.
- Autoplay-behind-interaction embeds that Google can't detect as a video.
- Ignoring speed. A player that takes 5+ seconds to become interactive loses both rankings and viewers.
Once your video pages are live, treat them like any other keyword target: watch the query, the position, and whether the video enhancement is actually rendering. You can monitor those movements — including video rich results — in DeployFlare's rank tracker, which flags when a page gains or loses its thumbnail in the SERP. Pair that with solid YouTube keyword research so the videos you produce are aimed at demand that exists.
Video SEO isn't complicated once you internalize the pattern: a real page, real text, a fetchable thumbnail, valid schema, and a sitemap. The teams that win aren't producing better cinematography — they're the ones who didn't skip the transcript and the structured data.