Skip to content
Issue docs

No video sitemap found

Suggestionvideo_sitemap_createdIssue 18

What is this issue?

This issue checks whether a website has a dedicated video sitemap that helps search engines discover and index video content, enabling video rich results in Google Search.

A passing implementation means:

  • A video sitemap exists at a standard location (e.g., /video-sitemap.xml or /sitemap-video.xml)
  • The sitemap is properly formatted with <video:video> entries following the Video Sitemap schema
  • Videos are listed with required metadata (URL, thumbnail, title, description)
  • The video sitemap is referenced in the main sitemap or robots.txt

Example:

<?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/tutorial</loc>
    <video:video>
      <video:thumbnail_loc>https://example.com/thumbs/tutorial.jpg</video:thumbnail_loc>
      <video:title>SEO Tutorial for Beginners</video:title>
      <video:description>Learn SEO basics in this comprehensive guide</video:description>
      <video:content_loc>https://example.com/videos/tutorial.mp4</video:content_loc>
      <video:duration>600</video:duration>
    </video:video>
  </url>
</urlset>

Why it matters

Video Discovery: Search engines may not discover videos that are loaded via JavaScript, embedded from third-party platforms, or located deep in the site structure. A video sitemap ensures all videos are found.

Video Rich Results: Properly indexed videos can appear in Google Video search and may be eligible for video rich results in regular search results with video thumbnails and duration.

SEO Traffic: Videos can drive significant traffic through Google Video search and enhance regular search results with visual appeal.

Metadata Context: The video sitemap provides important metadata (duration, thumbnail, title, description) that helps search engines understand and rank video content.

SEO Health Score: Having a video sitemap improves the technical SEO score by demonstrating comprehensive video content optimization.

How to fix it

  1. Create a video sitemap - Generate an XML sitemap specifically for videos following the Video Sitemap schema.

  2. Include required metadata - For each video, include:

    • <video:content_loc> or <video:player_loc> (required)
    • <video:thumbnail_loc> (required)
    • <video:title> (required)
    • <video:description> (required)
    • <video:duration> (recommended, in seconds)
  3. Add optional metadata - Consider including:

    • <video:publication_date>
    • <video:tag>
    • <video:category>
    • <video:family_friendly>
  4. Submit the sitemap - Add the video sitemap URL to:

    • Google Search Console
    • Your main sitemap index file (if using one)
    • The Sitemap: directive in robots.txt
  5. Keep it updated - Ensure the sitemap is regenerated when new videos are added or old ones removed.

  6. Validate the format - Use Google Search Console's sitemap testing tool to verify the sitemap is properly formatted.

Examples

Example 1: Basic Video Sitemap

Problematic State (Fails): No video sitemap exists. Videos are only discoverable through crawling HTML pages.

Corrected State (Passes): Create a video sitemap at /video-sitemap.xml:

<?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/tutorial</loc>
    <video:video>
      <video:thumbnail_loc>https://example.com/thumbs/tutorial.jpg</video:thumbnail_loc>
      <video:title>SEO Tutorial for Beginners</video:title>
      <video:description>Learn SEO basics</video:description>
      <video:content_loc>https://example.com/videos/tutorial.mp4</video:content_loc>
      <video:duration>600</video:duration>
    </video:video>
  </url>
</urlset>

Example 2: Missing Sitemap Declaration

Problematic State (Fails): A video sitemap exists at /video-sitemap.xml but is not declared in robots.txt.

Corrected State (Passes): Add the sitemap to robots.txt:

User-agent: *
Disallow: /admin/

Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/video-sitemap.xml

Example 3: Videos Not Discoverable via HTML

Problematic State (Fails): Videos are loaded via JavaScript and not present in the initial HTML:

<div id="video-player"></div>
<script>
  // Video loaded dynamically via JavaScript
</script>

Corrected State (Passes): Create a video sitemap to ensure these videos are discovered:

<url>
  <loc>https://example.com/videos/tutorial</loc>
  <video:video>
    <video:content_loc>https://example.com/videos/tutorial.mp4</video:content_loc>
    <video:thumbnail_loc>https://example.com/thumbs/tutorial.jpg</video:thumbnail_loc>
  </video:video>
</url>

How PixyScan detects this

This is a suggestion, and it only applies to a site that actually publishes video.

  1. Count the video embeds the crawl found. Counted as embeds, not as elements:

    • each <video> element counts once, however many <source> fallbacks it carries. A <video> with mp4, webm and ogg sources is one video written the way every browser-compatibility guide says to write it, and it used to be counted as three
    • a <source type="video/…"> that sits outside a <video> counts as its own video
    • an <iframe> pointing at a video platform counts as one video. YouTube (including youtube-nocookie.com and youtu.be), Vimeo, Dailymotion, Wistia, Loom, Brightcove, JW Player and VideoPress are recognised. Only YouTube and Vimeo were recognised before, so a site using a hosted B2B player counted zero videos and this check could never fire
  2. Find and walk the XML sitemap, from the Sitemap: directives in robots.txt and the conventional paths, including nested sitemap-index files.

  3. Look for <video:video> entries inside each <url> element, reading both the namespaced form and the bare element name.

  4. Report when all of these hold:

    • an XML sitemap exists (if there is none, that is issue #4's finding, not this one)
    • the sitemap contains no <video:video> entries at all
    • the crawl found at least one video

One video is the threshold, because unlike images a single video is already worth declaring for video search.

The finding records the video count it was based on, so the suggestion can name the number it saw rather than asserting a bare absence.

What we store

Storage Level

Site Level — This issue is evaluated at the site/domain level.


Database Table / Prisma Model

SiteCrawlBehaviourData


Stored Fields

Field Type Description
sitemapUrls Json? Array of sitemap URLs found during the crawl
videoSitemapEntries Json? Array of video sitemap entries found during crawl

Detection Dependencies

  • The following data sources are required to evaluate this issue:
  • XML Sitemap — The crawler looks for video sitemaps (sitemap with video extensions)
  • Video Sitemap — Entries containing <video:video> tags are parsed
  • HTTP Response — The crawler fetches and parses video sitemap files

Further reading