Video Sitemap

What a video sitemap is and when you need one — the required and optional video:video tags, the limits, accepted media and thumbnail file types, multiple videos per page, and the mRSS alternative.

First published: Jun 22, 2026 · Last updated: Jul 18, 2026 · Advanced
demand #8 in Discovery#36 in How Search Works#188 in Technical SEO#248 on the site
1 evidence signal on this page

A video sitemap is an XML sitemap that uses Google's video:video extension to tell Google about videos on your pages, especially newly added or otherwise hard-to-discover ones. Each video needs four required pieces of metadata — a thumbnail (video:thumbnail_loc), a title (video:title), a description (video:description), and at least one of video:content_loc (the media file) or video:player_loc (the player) — and neither content_loc nor player_loc can be the same URL as the page's own loc. The namespace is http://www.google.com/schemas/sitemap-video/1.1, the repeated video:tag element caps at 32 per video (that's not a limit on total metadata fields), duration runs 1–28,800 seconds, and the description caps at 2,048 characters. Every referenced URL — page, thumbnail, media file — must be crawlable: no robots.txt block, no login wall, and content_loc can't be a streaming-only protocol. Use the current Google file-type list (the old .flv/.ra enumeration is stale), and don't panic over the tags Google deprecated in 2022 — they're safe to leave. mRSS is an accepted alternative. Bing does not document video-sitemap support.

TL;DR — A video sitemap is an XML sitemap using the video:video extension (namespace http://www.google.com/schemas/sitemap-video/1.1), most useful for videos that are newly added or otherwise hard to discover. Required per video: <video:thumbnail_loc>, <video:title>, <video:description>, plus at least one of <video:content_loc> (the media file) or <video:player_loc> (the player) — neither can be the same URL as the page’s own <loc>. Optional tags refine it within limits — the repeated <video:tag> element caps at 32 per video (not a total-tag-count limit), duration 1–28,800 s, description ≤2,048 chars. You can nest multiple <video:video> blocks under one <loc> for a page with several videos. Every referenced URL must be crawlable (not robots-blocked, no login wall), and content_loc can’t be a streaming-only protocol. Use Google’s current content_loc and thumbnail file-type lists; the tags Google deprecated in 2022 are safe to leave in place. mRSS is an accepted alternative. Bing does not document video-sitemap support.

Evidence for this claim A video sitemap supplies Google with video metadata, particularly for videos that are difficult to discover by normal crawling. Scope: Current Google video sitemap guidance. Confidence: high · Verified: Google Search Central: Video sitemaps Evidence for this claim Video sitemap entries require thumbnail URL, title, description, and either content URL or player URL; optional fields have documented constraints. Scope: Current Google video sitemap reference. Confidence: high · Verified: Google Search Central: Video sitemap reference

What a video sitemap actually is

A video sitemap is a normal XML sitemap with Google’s video extension switched on. You add the video namespace to your <urlset>http://www.google.com/schemas/sitemap-video/1.1 — and then, inside each <url> block, you describe the videos on that page with <video:video> tags. The <loc> points at the page the video sits on (its landing page or watch page), not at the video file; the file lives inside <video:content_loc>.

You don’t have to maintain a separate file. You can add video:video blocks to an existing XML sitemap right alongside (or in the same way as) your page URLs — the same way image tags get folded into a regular sitemap. And there’s a non-XML option: Google also accepts an mRSS (Media RSS) feed as a way to provide the same video information.

When you need one

A video sitemap is the explicit way to tell Google what videos you have and how to present them. Google’s own framing is narrower than “use this for every video”: it calls out newly added videos and otherwise hard-to-discover content as where the extension earns its keep — for example, videos that are lazy-loaded, JavaScript-injected, or behind a custom player, or where you want full control over the title, description, and thumbnail Google associates with each video instead of letting it infer those. As with every sitemap, it’s a discovery aid — it helps Google find and understand your videos, but it never guarantees a video is indexed or surfaced.

Required tags

Every video needs a parent <video:video> block and, inside it, four required pieces of metadata:

  • <video:video> — the parent element wrapping all the information about a single video.
  • <video:thumbnail_loc>“A URL pointing to the video thumbnail image file.”
  • <video:title>“The title of the video. All HTML entities must be escaped or wrapped in a CDATA block.”
  • <video:description> — the description of the video (≤2,048 characters).
  • At least one of:
    • <video:content_loc>“A URL pointing to the actual video media file.” This is the one Google recommends when you can supply it.
    • <video:player_loc> — a URL to a player that embeds/plays the video.

If you can give both content_loc and player_loc, do — but one is enough to be valid. One constraint applies to both: neither content_loc nor player_loc can be the same URL as the page’s own <loc>. Google documents this requirement separately for each tag — it’s not optional, and it trips up sitemaps that reuse the landing-page URL as a placeholder media/player link.

Beyond the required set, you can refine each video with optional tags: <video:duration>, <video:expiration_date>, <video:rating>, <video:view_count>, <video:publication_date>, <video:family_friendly>, <video:restriction>, <video:platform>, <video:requires_subscription>, <video:uploader>, <video:live>, and <video:tag>. They help Google understand freshness, eligibility, and context — for example, expiration_date tells Google when to stop showing a video, and live flags a live stream.

Three limits to respect:

  • <video:tag> caps at 32 per video. This is a limit on the repeated keyword-tag element specifically (create one <video:tag> per keyword, up to 32) — it is not a cap on the total number of metadata fields a <video:video> block can carry. A video with the four required tags plus several optional ones (duration, rating, publication date, and so on) is fine; only the count of <video:tag> elements is bounded at 32.
  • <video:duration> must be 1–28,800 seconds (that’s a hard ceiling of 8 hours).
  • <video:description> ≤2,048 characters.

Multiple videos on one page

If a single page hosts more than one video, you don’t create multiple <url> entries — you keep one <loc> for the page and nest multiple <video:video> blocks inside that same <url>. Each <video:video> describes one video, with its own thumbnail, title, description, and content/player link.

Accessibility: everything you reference must be crawlable

This is the rule that quietly breaks video sitemaps. Every URL you put in the file — the page in <loc>, the <video:thumbnail_loc>, and the <video:content_loc>/<video:player_loc> — has to be fetchable by Google:

  • Not blocked in robots.txt. If the thumbnail directory or the media file is disallowed, Google can’t use it.
  • Not behind a login wall or any access gate.
  • content_loc must be a directly fetchable filestreaming-only protocols are not supported. If your video is only available over a streaming protocol rather than as a file Google can download, point Google at the player with player_loc instead, or provide a fetchable media file for content_loc.

Accepted file types

Use Google’s current lists here — the older enumeration that included formats like .flv and .ra/.ram is stale, and a lot of third-party guides still quote it.

<video:content_loc> media files — Google’s supported video formats are: 3GP, 3G2, ASF, AVI, DivX, M2V, M3U, M3U8, M4V, MKV, MOV, MP4, MPEG, OGV, QVT, RAM, RM, VOB, WebM, WMV, XAP. The file at that URL should be one of these and directly fetchable.

<video:thumbnail_loc> thumbnails — supported image formats are BMP, GIF, JPEG, PNG, WebP, SVG, and AVIF. The thumbnail must be at least 60×30 pixels (larger is preferred) and sit at a stable, crawlable URL — don’t point it at a URL that rotates or expires.

Deprecated tags (safe to leave)

Google announced this deprecation on May 6, 2022, effective August 6, 2022: <video:category>, the allow_embed and autoplay attributes on <video:player_loc>, <video:gallery_loc>, <video:price>, and <video:tvshow>. You don’t need to rush to strip these out. Per Google’s announcement, these tags “will have no effect on indexing and search features” and there’s “no immediate action required” — you can leave them in place without drawbacks. Remove them on your own schedule, or not at all.

How this fits the rest of the sitemap family

A video sitemap is one extension among several. The XML sitemap is the base format; the image sitemap is the parallel for images; a sitemap index ties multiple sitemap files together once you cross the 50,000-URL / 50MB-per-file limit; and the sitemaps overview covers when you need any of this at all and how to submit it. Video tags can live in their own file or be combined into a regular sitemap. For the bigger picture of how engines find your URLs in the first place, see discovery.

One scope note: this is Google’s extension. Bing does not document video-sitemap support — it defers to the base sitemaps.org protocol — so treat video:video as a Google feature and don’t expect Bing to act on it.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin an expert quote first.