---
title: "Image, News & Video Sitemaps Guide – Structure, Best Practices & XML Examples"
description: "## Image Sitemaps: What & How ### What are Image Sitemaps? - A way to tell **Google** about images on your site, especially those **not easily found** by crawlers (e.g., images loaded via JavaScript). - Can be a **separate sitemap**…"
url: "https://fsidm.in/knowledge/seo/image-news-video-sitemaps/"
updated: "2025-08-09"
category: SEO
---

# Image, News & Video Sitemaps Guide – Structure, Best Practices & XML Examples

## Image Sitemaps: What & How

### What are Image Sitemaps?

- A way to tell **Google** about images on your site, especially those **not easily found** by crawlers (e.g., images loaded via JavaScript).
- Can be a **separate sitemap** or **added as tags** inside your existing sitemap.
- Follows the same best practices as general sitemaps.

## Why Use Image Sitemaps?

- Helps Google discover and index images you want to show in search results.
- Useful for rich media-heavy sites or when images aren’t directly linked in HTML.

## Basic Structure of an Image Sitemap (XML)

<?xml version="1.0" encoding="UTF-8"?>

<urlset 

  xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"

  xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">

  <url>

    <loc>https://example.com/sample1.html</loc>

    <image:image>

      <image:loc>https://example.com/image.jpg</image:loc>

    </image:image>

    <image:image>

      <image:loc>https://example.com/photo.jpg</image:loc>

    </image:image>

  </url>

  <url>

    <loc>https://example.com/sample2.html</loc>

    <image:image>

      <image:loc>https://example.com/picture.jpg</image:loc>

    </image:image>

  </url>

</urlset>

### **Required Tags**

- <image:image> — Wraps each image’s info; you can list up to **1,000 images** per URL.
- <image:loc> — The **full URL** of the image.

### **Important Notes**

- Image URLs can be on a **different domain** if you verify that domain in Google Search Console.
- Make sure your **robots.txt** doesn’t block crawling of images you want indexed.
- Deprecated tags like <image:caption>, <image:geo_location>, etc., are no longer used.

# News Sitemaps: What & How

## What are News Sitemaps?

- Special sitemaps for **news publishers** to tell Google about their latest news articles and metadata.
- Can be **part of an existing sitemap** or a **separate sitemap** just for news articles (recommended for better tracking).

## Why Use News Sitemaps?

- Helps Google find, crawl, and index **fresh news content** quickly.
- Supports inclusion of important metadata like publication name, language, publication date, and article title.

### **Best Practices**

- **Keep it fresh:** Include only articles published within the **last 2 days**.
- Remove URLs or the <news:news> tag for older articles to avoid clutter.
- It’s okay if your sitemap is temporarily empty; Google understands this.
- Update your news sitemap regularly; don’t create new sitemaps every time you update.

## Basic Structure of a News Sitemap (XML)

<?xml version="1.0" encoding="UTF-8"?>

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"

        xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">

  <url>

    <loc>http://www.example.org/business/article55.html</loc>

    <news:news>

      <news:publication>

        <news:name>The Example Times</news:name>

        <news:language>en</news:language>

      </news:publication>

      <news:publication_date>2008-12-23</news:publication_date>

      <news:title>Companies A, B in Merger Talks</news:title>

    </news:news>

  </url>

</urlset>

### **Required Tags Explained**

- <news:news>: Wraps all news-specific metadata; one per <url>.
- <news:publication>: Contains publication info like name and language.
- <news:name>: Exact name of your news publication as shown on Google News.
- <news:language>: Language of the publication using ISO 639 codes (e.g., "en" for English).
- <news:publication_date>: Date/time article was first published, in W3C datetime format.
- <news:title>: Article headline (don’t add author or publication details here).

**Extra Tips**

- Split your news sitemap if you have more than **1,000 news URLs**.
- Use the **correct date and time** when the article first appeared, not when added to the sitemap.
- Avoid stuffing titles with extra info; use clean, natural article titles.

## **Video Sitemaps & Alternatives**

### **What is a Video Sitemap?**

A **video sitemap** is a sitemap that includes extra metadata about videos on your site. It helps Google **discover and understand your video content** more effectively—especially newly added or hard-to-find videos.

### **Why Use Video Sitemaps?**

- Help Google find videos that normal crawling might miss.
- Provide detailed info like video title, description, thumbnail, duration, publication date, and more.
- Improve video SEO and chances of appearing in rich video search results.

### **Alternatives to Video Sitemaps**

- **mRSS (media RSS) feeds:** A simpler way to submit video info, supported by most CMSs and video platforms.
- You can either create:

  - A **separate video sitemap or mRSS feed**, OR
  - Add **video tags inside your existing sitemap**.

### **Key Video Sitemap Best Practices**

- Only list videos **relevant to the page content** (don’t add unrelated ads or extras).
- All video URLs (player or content) must be:

  - Accessible to Googlebot (not blocked by robots.txt or firewalls).
  - Publicly available without login.
  - Served over supported protocols (HTTP, FTP).
- Verify Googlebot identity to prevent spam abuse if needed.

### **Basic Video Sitemap XML 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://www.example.com/videos/some_video_landing_page.html</loc>

    <video:video>

      <video:thumbnail_loc>https://www.example.com/thumbs/123.jpg</video:thumbnail_loc>

      <video:title>Grilling steaks for summer</video:title>

      <video:description>Alkis shows you how to get perfectly done steaks every time</video:description>

      <video:content_loc>http://streamserver.example.com/video123.mp4</video:content_loc>

      <video:player_loc>https://www.example.com/videoplayer.php?video=123</video:player_loc>

      <video:duration>600</video:duration>

      <video:publication_date>2007-11-05T19:20:30+08:00</video:publication_date>

      <video:family_friendly>yes</video:family_friendly>

      <video:live>no</video:live>

    </video:video>

  </url>

</urlset>

### **Embedding Videos from Platforms**

- **Vimeo example:**

<video:player_loc>https://player.vimeo.com/video/987654321</video:player_loc>

- **YouTube example:**

<video:player_loc>https://www.youtube.com/embed/1a2b3c4d</video:player_loc>

### **Video Sitemap Tags Reference (Namespace:****http://www.google.com/schemas/sitemap-video/1.1****)**

Each video on a page must be enclosed in its own <video:video> tag nested inside the page’s <url> tag.

### **Required Tags for Each Video**

1. **<video:video>**
   - Parent container for all video metadata for a single video.
   - You can have multiple <video:video> tags per URL if the page has multiple videos.
2. **<video:thumbnail_loc>**
   - URL of the video’s thumbnail image.
   - Must follow thumbnail requirements (clear, relevant, crawlable).
3. **<video:title>**
   - Title of the video as shown on the page.
   - HTML entities must be escaped or wrapped in CDATA.
   - Should closely match the visible title on your webpage.
4. **<video:description>**
   - Description of the video (max 2048 characters).
   - HTML entities must be escaped or wrapped in CDATA.
   - Should reflect the video description on the page (not necessarily word-for-word).
5. **Either****<video:content_loc>****OR****<video:player_loc>****(One is mandatory)**
   - **<video:content_loc>**: URL to the actual video media file (e.g., MP4).

     - Recommended as the primary method.
     - Must be accessible to Googlebot (not behind login, firewall, or blocked).
     - Cannot be the same as the page URL (<loc>).
     - Formats like HTML and Flash are not supported.
     - Equivalent to VideoObject.contentUrl in structured data.
     - Use Googlebot verification if you want to restrict access but allow crawling.
   - **<video:player_loc>**: URL to a video player page or embedded player (e.g., YouTube iframe embed).

     - Use if the actual video file URL is not available.
     - Must not be the same as the page URL (<loc>).
     - Common for Vimeo, YouTube, or other platforms with embedded players.
     - Equivalent to VideoObject.embedUrl in structured data.
     - Also requires Googlebot access verification if restricted.

### **Summary:**

At minimum, each <video:video> must contain:

<video:video>

  <video:thumbnail_loc>THUMBNAIL_URL</video:thumbnail_loc>

  <video:title><![CDATA[Video Title]]></video:title>

  <video:description><![CDATA[Video description here...]]></video:description>

  <video:content_loc>VIDEO_FILE_URL</video:content_loc> <!-- OR -->

  <video:player_loc>VIDEO_PLAYER_URL</video:player_loc>

</video:video>

### **Optional Video Sitemap Tags Explained**

| **Tag Name** | **Purpose** | **Notes / Values** |
| --- | --- | --- |
| **<video:duration>** | Length of the video in seconds | Integer from 1 to 28,800 (8 hours max) |
| **<video:expiration_date>** | When the video expires and should no longer appear in search | W3C date format: YYYY-MM-DD or full datetime with timezone (e.g., 2022-07-16T19:20:30+08:00) |
| **<video:rating>** | Video rating (quality/popularity) | Float between 0.0 (lowest) and 5.0 (highest) |
| **<video:view_count>** | Number of times the video has been viewed | Integer (e.g., 12345) |
| **<video:publication_date>** | Date the video was first published | W3C date format similar to expiration_date |
| **<video:family_friendly>** | Whether video is suitable for SafeSearch | yes = visible with SafeSearch on; no = visible only if SafeSearch is off |
| **<video:restriction>** | Control video visibility by country | Requires relationship attribute: allow or deny. Use ISO country codes (e.g., US CA). Example: <video:restriction relationship="allow">CA MX</video:restriction> |
| **<video:platform>** | Control video visibility by device/platform | Requires relationship attribute: allow or deny. Values: web, mobile, tv. Example: <video:platform relationship="allow">web tv</video:platform> |
| **<video:requires_subscription>** | Whether a subscription is needed to view | Values: yes or no |
| **<video:uploader>** | Name of the video uploader | Max 255 chars; optional info attribute for uploader info URL on the same domain |
| **<video:live>** | Indicates if the video is a livestream | Values: yes or no |
| **<video:tag>** | Descriptive tags related to the video content | Multiple tags allowed (max 32); use separate <video:tag> per tag |

### **Example snippet using some optional tags:**

<video:video>

  <video:thumbnail_loc>https://example.com/thumb.jpg</video:thumbnail_loc>

  <video:title><![CDATA[How to Grill Perfect Steaks]]></video:title>

  <video:description><![CDATA[Step-by-step guide to grilling juicy steaks.]]></video:description>

  <video:content_loc>https://example.com/video.mp4</video:content_loc>

  <video:duration>600</video:duration>

  <video:publication_date>2024-07-20T10:00:00+05:30</video:publication_date>

  <video:family_friendly>yes</video:family_friendly>

  <video:restriction relationship="allow">IN US CA</video:restriction>

  <video:platform relationship="deny">mobile</video:platform>

  <video:requires_subscription>no</video:requires_subscription>

  <video:uploader info="https://example.com/uploader-profile">GrillMaster</video:uploader>

  <video:live>no</video:live>

  <video:tag>grilling</video:tag>

  <video:tag>steak</video:tag>

  <video:tag>outdoor</video:tag>

</video:video>

## **Deprecated Video Sitemap Tags and Attributes**

Google **removed** these from their video sitemap specification:

- <video:category>
- <video:gallery_loc>
- autoplay and allow_embed attributes of <video:player_loc>
- <video:price> tag and its attributes
- <video:tvshow> tag and its attributes

## **Sitemap Alternative: mRSS Feeds**

Google **supports mRSS** (Media RSS) as an alternative or complement to video sitemaps. mRSS is an extension of RSS 2.0 designed specifically for multimedia content.

- mRSS allows more detailed multimedia metadata than standard RSS.
- You can test, submit, and update mRSS feeds similarly to sitemaps.
- For full mRSS specification, refer to official media RSS documentation.

### **Basic Structure of an mRSS Feed with Video Example**

<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" 

     xmlns:media="http://search.yahoo.com/mrss/" 

     xmlns:dcterms="http://purl.org/dc/terms/">

  <channel>

    <title>Example MRSS</title>

    <link>https://www.example.com/examples/mrss/</link>

    <description>MRSS Example</description>

    <item>

      <link>https://www.example.com/examples/mrss/example.html</link>

      <media:content url="https://www.example.com/examples/mrss/example.flv" fileSize="405321"

                     type="video/x-flv" height="240" width="320" duration="120" medium="video" isDefault="true">

        <media:player url="https://www.example.com/shows/example/video.swf?flash_params" />

        <media:title>Grilling Steaks for Summer</media:title>

        <media:description>Get perfectly done steaks every time</media:description>

        <media:thumbnail url="https://www.example.com/examples/mrss/example.png" height="120" width="160"/>

        <media:price price="19.99" currency="EUR" />

        <media:price type="subscription" />

      </media:content>

      <media:restriction relationship="allow" type="country">us ca</media:restriction>

      <dcterms:valid>end=2020-10-15T00:00+01:00; scheme=W3C-DTF</dcterms:valid>

      <dcterms:type>live-video</dcterms:type>

    </item>

  </channel>

</rss>

### **Required mRSS Tags for Google**

| **Tag** | **Purpose** | **Notes** |
| --- | --- | --- |
| <media:content> | Encapsulates video info and URL | medium="video", direct video URL in url attribute or <media:player> required |
| <media:player> | URL of the video player | Must differ from <link> URL (which is page URL) |
| <media:title> | Video title | Max 100 chars; escape HTML or use CDATA |
| <media:description> | Video description | Max 2048 chars; escape HTML or use CDATA |
| <media:thumbnail> | Video thumbnail URL | Follow thumbnail requirements |

### **Useful Optional Tags**

| **Tag** | **Purpose** |
| --- | --- |
| <dcterms:valid> | Publication and expiration date/time range |
| <media:restriction> | Country-based access restrictions (with relationship and type="country" attributes) |
| <media:price> | Pricing info for purchase, rent, subscription, or package options |

### **Key Differences: Video Sitemap vs mRSS**

| **Aspect** | **Video Sitemap** | **mRSS Feed** |
| --- | --- | --- |
| Format | XML sitemap with video namespace | RSS 2.0 with media RSS extension |
| Usage | Google’s recommended way to provide video metadata | Supported alternative, especially if syndicating multimedia feeds |
| Detail Level | Focused on video metadata for indexing | More detailed multimedia syndication including pricing, player, etc. |
| Deprecated Tags | Some video sitemap tags removed | Uses different tags, e.g., <media:price> is supported |

## **How to Combine Sitemap Extensions**

### **1. Declare Multiple Namespaces in****<urlset>**

Each sitemap extension you want to use needs its **namespace declared** in the root <urlset> tag using the xmlns attribute.

For example, if you want to combine **news**, **video**, **image**, and **hreflang (xhtml)** extensions, your <urlset> looks like this:

<?xml version="1.0" encoding="UTF-8"?>

<urlset

    xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"

    xmlns:news="http://www.google.com/schemas/sitemap-news/0.9"

    xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"

    xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"

    xmlns:xhtml="http://www.w3.org/1999/xhtml">

### **2. Add Extension Tags Inside Each****<url>****Tag**

Within each <url> entry, you can include **any combination of tags** from the declared extensions that apply to that URL.

Example structure inside a <url>:

<url>

  <loc>https://www.example.com/article1.html</loc>

  <!-- News extension -->

  <news:news>

    <news:publication>

      <news:name>Example News</news:name>

      <news:language>en</news:language>

    </news:publication>

    <news:publication_date>2025-07-28</news:publication_date>

    <news:title>Breaking News Headline</news:title>

  </news:news>

  <!-- Video extension -->

  <video:video>

    <video:thumbnail_loc>https://www.example.com/thumb.jpg</video:thumbnail_loc>

    <video:title>How to Combine Sitemaps</video:title>

    <video:description>Quick tutorial on sitemap extensions</video:description>

    <video:content_loc>https://cdn.example.com/videos/tutorial.mp4</video:content_loc>

  </video:video>

  <!-- Image extension -->

  <image:image>

    <image:loc>https://www.example.com/images/image1.jpg</image:loc>

  </image:image>

  <!-- Hreflang extension -->

  <xhtml:link 

    rel="alternate" 

    hreflang="fr" 

    href="https://www.example.com/fr/article1.html"/>

  <xhtml:link 

    rel="alternate" 

    hreflang="es" 

    href="https://www.example.com/es/article1.html"/>

</url>

### **3. Follow Individual Extension Rules**

- Each extension’s tags should follow their **specific documentation and structure**.
- You can include **multiple tags per extension** inside a single <url>, like multiple <video:video>, multiple <image:image>, or multiple <xhtml:link>.
- No conflict occurs because namespaces keep them separate.

### **4. Final Notes**

- Your sitemap file can have up to **50,000 URLs** and each can have multiple extension tags.
- Combining extensions helps Google better understand rich content and localized pages **in one place**.
- Always validate your sitemap with tools like **Google Search Console** or XML sitemap validators to avoid errors.
