Video sitemap guide for 2026: Google's XML syntax, required and dropped tags, when it helps, VideoObject schema vs mRSS, and why videos stay unindexed.

On this page
In short
A video sitemap is an XML sitemap (or an mRSS feed) that tells Google which videos appear on which pages, using the namespace http://www.google.com/schemas/sitemap-video/1.1. Each video needs a thumbnail, a title, a description and either the file URL (video:content_loc) or a player URL (video:player_loc). It helps Google discover videos, but a video only gets indexed when it sits on a watch page where it is the main content. VideoObject structured data on the page does the same job from inside the HTML, and most sites benefit from both.
Want to go further? Ask
Quick quiz
Who should fix the technical side of your site?
Our advice for you
List your real watch pages is the right solution for you
Number 1 in this ranking, the best match for your answers.
Our advice for you
Generate the file is the right solution for you
Number 2 in this ranking, the best match for your answers.
Our advice for you
Check every URL is reachable is the right solution for you
Number 3 in this ranking, the best match for your answers.
Our advice for you
Submit and reference it is the right solution for you
Number 4 in this ranking, the best match for your answers.
A video sitemap is the most direct way to hand Google a list of your videos with their metadata. The rules live in Google's video sitemap and mRSS reference (last updated May 2026), and they have changed more than most guides admit: five tags were dropped, and since December 2023 Google ignores videos that only support a text page. This guide gives the current syntax, says when a video sitemap is worth the effort, compares it with schema markup and mRSS, and lists the reasons videos stay out of the index.
A video sitemap is a standard XML sitemap extended with video entries. Each url element still points to a page (the watch page), and inside it one video:video block describes each video shown there: thumbnail, title, description, file or player URL, plus optional details such as duration or publication date.
Three facts frame everything else:
If you already run an image sitemap, the logic is identical: the page stays the unit, and the media extension adds what Google cannot reliably guess.
Here is a minimal, valid file with one watch page and one self-hosted video, following Google's format:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url>
<loc>https://example.com/videos/grilling-steaks.html</loc>
<video:video>
<video:thumbnail_loc>https://example.com/thumbs/123.jpg</video:thumbnail_loc>
<video:title>Grilling steaks for summer</video:title>
<video:description>Bob shows how to get perfectly done steaks every time.</video:description>
<video:content_loc>https://cdn.example.com/video/123.mp4</video:content_loc>
<video:duration>600</video:duration>
<video:publication_date>2026-05-20T08:00:00+00:00</video:publication_date>
</video:video>
</url>
</urlset>For a YouTube embed, replace video:content_loc with <video:player_loc>https://www.youtube.com/embed/VIDEO_ID</video:player_loc>. Several video:video blocks can sit under the same url, one per video on the page, but Google asks you not to list videos unrelated to the main content of the page.
| Tag | What it holds | Rules |
|---|---|---|
| video:video | Parent element of one video | One per video on the page |
| video:thumbnail_loc | Thumbnail image URL | Must meet Google's thumbnail requirements |
| video:title | Video title | Should match the title shown on the page; escape HTML entities or use CDATA |
| video:description | Video description | 2,048 characters maximum; close to the on-page text, not necessarily word for word |
| video:content_loc or video:player_loc | Media file URL or player URL | One of the two is required, content_loc is preferred; both must differ from the page URL in loc |
Many generators and older tutorials still output tags that Google removed from its documentation: video:category, video:gallery_loc, video:price, video:tvshow, and the autoplay and allow_embed attributes of video:player_loc. They do not break the file, but they add nothing. Remove them when you clean up a template.
Tip
Use exactly the same thumbnail URL in the video sitemap, in the VideoObject markup and in the og:image tag. Google's video best practices ask for one consistent thumbnail per video across all metadata sources.
The answer depends less on the file than on the page that hosts the video. In a Search Central blog post of December 4, 2023, Google announced that Video mode would only lead to pages where the video is the main content. Its own examples of pages where the video is supplementary: a blog post where the video complements the text, a product page with a video, and a category page listing several videos of equal prominence.
Google's video SEO best practices (updated December 2025) add that the watch page itself must be indexed and perform well in Search before its video can be considered. A sitemap cannot get around that rule.
| Your situation | Video sitemap useful? | Why |
|---|---|---|
| Self-hosted videos, one watch page per video (courses, media, tutorials) | Yes, high value | Google gets file URL, duration and thumbnail for every page, even if the player loads late |
| Large or changing video library (hundreds of pages, expiring content) | Yes | expiration_date, restriction and platform tags are easier to manage in one feed |
| Livestreams and replays | Yes, with schema | video:live in the sitemap, BroadcastEvent markup for the LIVE badge |
| YouTube videos embedded in blog posts | Rarely | The page is an article, so the video will not be indexed as a video result; the YouTube page ranks instead |
| Product pages with a demo video | Low | The product is the main content; invest in the product page and the YouTube upload |
Watch out
Listing every blog post that embeds a YouTube video in a video sitemap does not create video results. Those URLs will show up in Search Console as "No video indexed". Keep the sitemap for real watch pages.
Google reads video metadata from three sources: structured data, video sitemaps (or mRSS feeds) and Open Graph tags. Its documentation does not rank one above the others, so the choice is practical.
| Method | Where it lives | Best for | Limits |
|---|---|---|---|
| Video sitemap | XML file submitted in Search Console | Bulk discovery, many watch pages, expiry and country rules | No key moments, no LIVE badge |
| VideoObject schema (JSON-LD) | In the HTML of each watch page | Rich results, key moments (Clip, SeekToAction), LIVE badge | Must be present in the rendered page; one page at a time |
| mRSS feed | Media RSS file submitted like a sitemap | Platforms that already publish RSS | Search Console can report "MRSS failure; try using schema.org instead" |
| Open Graph (og:video) | Meta tags in the page head | Social previews, a fallback signal | Little metadata |
Google's VideoObject structured data guide (updated September 2026) requires only three properties: name, thumbnailUrl and uploadDate. It recommends contentUrl (preferred over embedUrl), description, duration and hasPart for Clip segments. Key moments need a video of at least 30 seconds, and the LIVE badge needs a BroadcastEvent with isLiveBroadcast set to true. None of this exists in sitemap syntax, which is why the best setup pairs a video sitemap for discovery with schema on each watch page. Our free schema generator builds the JSON-LD, and the structured data validator checks it before you publish. For the wider picture on markup, see our guide to structured data for AI search.
Start from the pages where the video is the first thing a visitor sees and the reason the page exists. Leave out articles and product pages that only embed a video.
Most video hosting platforms and CMS plugins can export a video sitemap; on a custom site, generate it from your database so that titles, thumbnails and durations stay in sync with the pages. A standard sitemap holds up to 50,000 URLs or 50 MB uncompressed; beyond that, split it and use a sitemap index.
Google requires that page, thumbnail and video URLs are not blocked by robots.txt, need no login, are not stopped by a firewall, and use HTTP or FTP (streaming protocols are not supported). A thumbnail blocked by robots.txt even has its own error in the Video indexing report.
Add the file in the Sitemaps report of Search Console and reference it in robots.txt with a Sitemap: line. Our guide on how to submit a sitemap to Google walks through both, and the sitemap checker catches malformed XML before Google does.
Update the file when a video is added, replaced or removed, and set video:expiration_date for content with an end date. A sitemap that lists deleted videos wastes crawl and blurs your reports.
The Video indexing report in Search Console shows how many indexed pages contain an indexed video, and why the others do not. The most frequent reasons and their fixes:
| Reason in Search Console | What it means | Fix |
|---|---|---|
| Video isn't on a watch page | The video supports the page instead of being its main content | Create a dedicated watch page, or accept that the page ranks as text |
| Cannot determine video position and size | The player is missing at load, often hidden behind a click-to-play image | Render the player in the initial HTML, above the fold |
| No thumbnail URL provided / Invalid thumbnail size | Missing thumbnail, or smaller than 60x30 pixels | Add a larger thumbnail in sitemap and schema |
| Thumbnail blocked by robots.txt | Googlebot cannot fetch the image | Allow the thumbnail path, including on the CDN |
| Thumbnail is transparent | Fewer than 80% of pixels are opaque enough | Use an opaque JPEG, PNG, WebP or AVIF image |
| Video not found on host service | Video deleted or made private on its host | Remove the entry or restore the video |
If the watch page itself is not indexed, fix that first: our guide to Google indexing covers the usual causes.
For Google, a clean video sitemap plus VideoObject markup makes each watch page eligible for video results, key moments and the Videos tab. For AI assistants, the picture is different. Sorank's YouTube AI citation study (301,025 AI answers, August 2025 to August 2026) found YouTube cited in 2.35% of measured answers over the last three months, with large gaps between models: 3.69% on Gemini, 0% on Claude. AI assistants mostly quote text, so a watch page earns citations when it carries a written summary or transcript next to the player.
The practical consequence is a split: host your key videos on watch pages you control (sitemap plus schema), publish the same videos on YouTube for reach (see our guide to YouTube marketing), and surround them with articles that answer the questions your buyers ask. That last part is where Sorank helps: it is an SEO and GEO software in autopilot that finds your keywords, groups them into topics with the topical cluster generator, and writes and publishes optimized articles with the blog article generator.

A video sitemap pays off only on true watch pages: list them with the required tags, add VideoObject schema on each page, and keep thumbnails reachable. To build the written content around your videos on autopilot, compare the plans on the pricing page; every plan starts with a 3-day free trial.
No. A video sitemap describes videos on pages of your own site. A YouTube video ranks through its YouTube page, title, description and engagement. You can still declare a YouTube embed with video:player_loc, but only if the page that embeds it is a real watch page.
A sitemap file holds up to 50,000 URLs or 50 MB uncompressed, and each URL can contain several video entries, one per video shown on the page. Large libraries split their videos across several files and list them in a sitemap index.
Yes, on sites with many watch pages. Structured data is read only when Google crawls each page, while the sitemap lists all videos in one place and carries expiry, country and platform rules. Key moments and the LIVE badge require structured data, so the two work best together.
THEY TRIED SORANK BEFORE YOU
