Video sitemaps: help Google find and index your videos

Learn how to create and submit a video sitemap so Google finds and indexes your videos — required tags, an XML example, and sitemap vs schema.

S
Sneha Nair
Freelance SEO consultant; covers reporting, white-label workflows and getting found locally.
Published 30 Jun 2026·8 min read

A video sitemap is an XML file that tells Google exactly which videos live on your site and where to find their thumbnail, title, description, and the actual video content. It exists for one reason: Google's crawler is good at reading text but bad at spotting a video buried in JavaScript or served from a player it can't inspect. If your videos aren't showing up in search or in the video carousel, a sitemap is often the cheapest fix.

This guide covers when you actually need one, every tag that matters, a copy-paste XML example, how a sitemap differs from schema, and how to submit and debug it in Search Console.

What a video sitemap is and when you need one

A video sitemap follows the standard sitemaps.org XML protocol but adds a video: namespace with fields specific to video — thumbnail, running time, upload date, and so on. Each entry ties one video to the page URL where it's watchable.

Here's the honest version most tutorials skip: you don't always need one. Google can and does discover videos straight from the page if the video is in the rendered HTML and marked up with VideoObject schema. The sitemap earns its keep in specific situations:

  • You host dozens or hundreds of videos and want one file Google can crawl and you can monitor.
  • Your videos load via JavaScript or only after a click, so they're not in the initial HTML.
  • Videos sit behind a custom player where Google can't reliably find the source file.
  • You want the clean Video indexing report in Search Console tied to a single submitted file.

If you have five videos on five well-built pages, skip the sitemap and get video schema markup right instead. If you run a video library, a sitemap is worth the hour it takes to generate. For the bigger picture on how videos earn placement, see our guide to video SEO.

One thing to be clear about: a sitemap helps Google find videos. It does not force indexing, and it won't rank a weak page. Discovery and ranking are different problems.

Required and optional video sitemap tags

Each video is wrapped in a <video:video> block inside a normal <url> entry. Four fields do the heavy lifting; the rest are optional but genuinely useful.

Tag Required? What it does
video:thumbnail_loc Yes URL of the thumbnail image. Must be crawlable. 160×90 to 1920×1080 px.
video:title Yes Video title. Keep it human, ideally matching the on-page <h1>.
video:description Yes Up to 2,048 characters. Describe the video, not the page.
video:content_loc One of these two Direct URL to the raw video file (.mp4, etc.).
video:player_loc One of these two URL of the embed player (e.g. an iframe player page).
video:duration Recommended Length in seconds (1 to 28800). Helps eligibility for rich results.
video:publication_date Recommended When the video went live, in W3C / ISO 8601 format.
video:family_friendly Optional yes or no. Controls SafeSearch treatment.
video:view_count Optional Total views. Minor context signal.
video:tag Optional Up to 32 keyword tags. Distinct from YouTube tags.
video:live Optional yes for live streams.

A few rules that trip people up:

  • You must supply either content_loc or player_loc. Supplying both is fine and often ideal.
  • The thumbnail must be reachable by Googlebot. If robots.txt blocks the image path, the whole entry usually fails.
  • Titles and descriptions in the sitemap should match what's on the page. Google cross-checks, and mismatches erode trust.

A video sitemap XML example

Here's a complete, valid two-video sitemap. Replace the URLs and copy the structure exactly — namespace declaration included.

<?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/guides/onboarding</loc>
    <video:video>
      <video:thumbnail_loc>https://example.com/thumbs/onboarding.jpg</video:thumbnail_loc>
      <video:title>How to onboard your first team in 5 minutes</video:title>
      <video:description>A quick walkthrough of adding teammates, setting roles, and inviting your first project.</video:description>
      <video:content_loc>https://cdn.example.com/video/onboarding.mp4</video:content_loc>
      <video:player_loc>https://example.com/player?id=onboarding</video:player_loc>
      <video:duration>312</video:duration>
      <video:publication_date>2026-05-14T08:00:00+05:30</video:publication_date>
      <video:family_friendly>yes</video:family_friendly>
    </video:video>
  </url>
  <url>
    <loc>https://example.com/guides/reporting</loc>
    <video:video>
      <video:thumbnail_loc>https://example.com/thumbs/reporting.jpg</video:thumbnail_loc>
      <video:title>Build a weekly SEO report in 3 clicks</video:title>
      <video:description>Turn raw rank data into a shareable report without touching a spreadsheet.</video:description>
      <video:content_loc>https://cdn.example.com/video/reporting.mp4</video:content_loc>
      <video:duration>428</video:duration>
    </video:video>
  </url>
</urlset>

A single <url> can hold multiple <video:video> blocks if one page has several videos. Keep each file under 50,000 URLs and 50 MB uncompressed; split into multiple sitemaps and reference them from a sitemap index if you exceed that. Most CMS and video platforms can generate this for you — check before hand-writing hundreds of entries.

Video sitemap vs VideoObject schema

This is the question that stalls most teams. The short answer: they do the same job through different channels, and schema is the better default.

Video sitemap VideoObject schema
Format Separate XML file JSON-LD in the page <head>
Delivery Submitted via Search Console Crawled with the page
Best for Large libraries, JS-loaded video Per-page, template-driven sites
Monitoring Sitemaps + Video indexing report Rich Results Test, Video report
Maintenance One file to keep current Auto-generated per template
Google support Fully supported Fully supported

Google reads both formats and treats them as equivalent sources of metadata. If your CMS renders a VideoObject JSON-LD block on every video page — which most modern setups do — you've already covered the essentials, and a sitemap adds little. Reach for the sitemap when videos aren't in the HTML, or when you specifically want that centralized, monitorable file.

The one case for running both: large sites that want maximum discovery coverage and a single dashboard to watch. There's no penalty for overlap. For the markup itself, our video schema markup walkthrough has the JSON-LD template and the fields Google actually uses.

Submitting and validating in Google Search Console

Once your file is live at a stable URL:

  1. Upload it to your domain root — https://yoursite.com/video-sitemap.xml is the conventional path.
  2. In Google Search Console, open Indexing → Sitemaps.
  3. Paste the sitemap path and click Submit.
  4. Optionally add Sitemap: https://yoursite.com/video-sitemap.xml to your robots.txt so any crawler can find it.

Google crawls on its own schedule — expect days, not minutes. Come back to the Sitemaps report to confirm it was read with no parse errors, then open the Video indexing report (under Indexing) to see how many videos were actually indexed and, crucially, the named reason for any that weren't.

That report is the whole point. It's the difference between guessing and knowing. Pair it with a rank tracker so you can watch whether newly indexed videos start pulling impressions in the video carousel, not just whether Google saw them.

Quick validation checklist

  • XML is well-formed (run it through any XML validator first).
  • The video: namespace is declared on <urlset>.
  • Every entry has thumbnail, title, description, and content or player URL.
  • Thumbnails and video files are not blocked in robots.txt.
  • Sitemap URL returns 200, not a redirect or 404.

Troubleshooting videos that won't get indexed

When the Video indexing report shows videos excluded, it names a reason. Here's what the common ones mean and how to fix them.

Symptom Likely cause Fix
"No video indexed" Video isn't the page's main content Move the video above the fold; make it the page's clear focus
"Google could not determine the prominent video" Multiple videos, none dominant Feature one primary video per page
Thumbnail missing Image blocked or too small Serve a crawlable thumbnail, 160×90 or larger
Video file not crawled robots.txt disallows the path Allow the video and thumbnail directories
Indexed but no traffic Weak page relevance Improve the page and add a transcript

Three patterns cause the majority of real problems:

The video isn't the main content. Google indexes videos that are the point of the page, not a decorative clip in the sidebar. If your video is an afterthought in the layout, Google treats it that way.

Something is blocked by robots.txt. This catches a surprising number of sites. If Googlebot can't fetch the thumbnail or the video file, the entry silently fails. Test both URLs with the URL Inspection tool.

The video loads only after interaction Google can't perform. Autoplay-on-click players and heavily lazy-loaded embeds can hide the video from the crawler. Make sure the source is present in the rendered HTML, which is exactly where a sitemap's content_loc helps by pointing straight at the file.

If you're still stuck after fixing those, the problem is usually ranking, not indexing — the video is indexed but the page isn't competitive. That's a different job. Our guides on how to rank YouTube videos and broader YouTube SEO cover the relevance and engagement side once discovery is sorted.

The short version

Build video schema first. Add a video sitemap when you have scale, JavaScript-loaded video, or you want a single file to monitor. Get the four required tags right, keep your thumbnails and files unblocked, submit through Search Console, and let the Video indexing report tell you exactly what's wrong. Discovery is the easy part — a clean sitemap removes the excuses so you can focus on making the video worth ranking.

Frequently asked questions

Do I need a video sitemap if I already have VideoObject schema?

Usually no. Google reads both, and they carry the same core fields, so for a handful of pages with clean VideoObject markup a separate sitemap is redundant. Add a video sitemap when you have hundreds of videos, when the video isn't present in the rendered HTML (lazy-loaded or gated), or when you want a single file you can monitor in Search Console's Video indexing report. Many large sites run both for belt-and-suspenders coverage.

What tags are required in a video sitemap?

Each <video:video> entry needs a thumbnail_loc, a title, a description, and at least one of content_loc (the raw video file URL) or player_loc (the embed player URL). Those four are effectively mandatory — Google may skip an entry that's missing any of them. Everything else, like duration, publication_date, view_count, and family_friendly, is optional but recommended because it improves eligibility for rich results and gives Google richer context.

How do I submit a video sitemap to Google?

Upload the XML file to your domain (for example /video-sitemap.xml), then open Google Search Console, go to Indexing > Sitemaps, paste the URL, and click Submit. You can also reference it from your robots.txt with a Sitemap: line. Google discovers and crawls it on its own schedule — there's no way to force instant indexing. Check back in the Sitemaps report after a few days to confirm it was read without errors.

Why won't Google index my video even after adding a sitemap?

The most common reasons are a thumbnail that's missing, too small, or blocked by robots.txt; the video not being the main content of the page; or the video file itself being disallowed in robots.txt. Google also won't index a video that loads only after user interaction it can't trigger. Open the Video indexing report in Search Console — it names the specific reason per URL, which is far faster than guessing.

What is the difference between a video sitemap and video schema?

A video sitemap is an XML file listing your videos and their metadata, submitted through Search Console to aid discovery. VideoObject schema is JSON-LD or microdata embedded in the page itself. Both feed Google the same essential fields, but schema travels with the page and is easier for a CMS to generate per-template, while a sitemap centralizes everything into one crawlable, monitorable file. They're complementary, not competing.

Can I include YouTube-hosted videos in my video sitemap?

You can, but it rarely helps. If a video is embedded from YouTube, Google already indexes the canonical YouTube watch page, and your embed is unlikely to outrank it. Video sitemaps pay off most for videos you self-host or serve through your own player. For YouTube content, focus your energy on the YouTube listing itself — title, description, and tags — rather than trying to get the embed page indexed.

Keep reading