Video SEO best practices

Video is a growing format for content creation and consumption on the web, and Google indexes videos from millions of different sites to serve to users. Videos can appear in several different places on Google, including the main search results page, Video mode, Google Images, and Discover:

A screenshot that shows video content in Google search results, the video tab, and Discover

Optimize your videos to appear on Google by following these best practices:

  1. Help Google find your videos
  2. Ensure your videos can be indexed
  3. Allow Google to fetch your video content files
  4. Enable specific video features
  5. Remove, restrict, or update your videos as needed

Help Google find your videos

  • Make sure that each video is available on a public web page where users can watch the video. Make sure that the page isn't blocked by robots.txt or noindex robots meta tag; this ensures that Google can find and index your page.
  • To give your videos maximum exposure, create a dedicated page for each video, where the video is the main focus of the page. Most video results require that type of video page, including features like Key Moments, the Live Badge, and other rich result formats. It's fine to include the same video on both a dedicated page and its original page alongside other information, like a news article or a product detail page.

    a web page where the video is the main content on the page
  • Include your video in an appropriate HTML tag. Google can more easily identify a video on your page when there's an HTML tag around it, for example: <video>, <embed>, <iframe>, or <object>.
  • Create a video sitemap to make it even easier for Google to find your videos. Learn how to submit your sitemap to Google.
  • Ensure that the page doesn't require complex user actions or specific URL fragments to load, or Google might not find your videos.
    • Don't lazy-load primary content upon user interaction. Google may not find content that requires user interactions to load (for example, swiping, clicking, or typing). Make sure Google can see lazy-loaded content.
    • If you are using overly complicated JavaScript to embed video objects from within JavaScript only under certain circumstances, then it's also possible that Google won't correctly index your videos.
    • URLs for content or landing pages that require fragment identifiers are not supported.
    • Make sure that your videos are visible and easy to find on your video pages. We recommend using a standalone page for each video with a descriptive title or description unique to each individual video. Make sure the video is the main focus of the page, and isn't hidden or difficult to find.

Third-party embedded players

If your website embeds videos from third-party platforms like YouTube, Vimeo, or Facebook, Google may index the video both on your web page and on the equivalent page from the third-party hosting site. Both versions may appear in video features on Google.

For your own page where you've embedded the third-party player, we still recommend that you provide structured data, and you may also include these pages in your video sitemaps. Check with your video host to ensure they allow Google to fetch your video content file; for example, this is supported by YouTube for public videos.

Ensure your videos can be indexed

Once Google has identified a video on a page, additional information is needed to make it eligible to appear in video results.

Provide a high-quality video thumbnail

To be eligible to appear in video results in Google Search, a video must have a valid thumbnail image. Otherwise, the page may be indexed but would only appear as a text result.

You can allow Google to generate a thumbnail, or provide one in one of the supported ways:

Supported thumbnail formats: BMP, GIF, JPEG, PNG, WebP, and SVG.

Size: Minimum 60x30 pixels, larger preferred.

Location: The thumbnail file must be accessible by Googlebot. Don't block the file with robots.txt or a login requirement. Make sure that the file is available at a stable URL.

Transparency: At least 80% of the thumbnail's pixels must have an alpha (transparency) value greater than 250.

Provide structured data

Provide structured data describing your video, to help Google understand what the video is about and surface it for relevant queries. Ensure that any information that you provide in structured data is consistent with the actual video content. When adding structured data, make sure to use unique thumbnails, titles, and descriptions for each video on your site. You should provide the same title, thumbnail URL, and video URL in all sources (sitemap, HTML tags, meta tags, and structured data) that describe the same video on the same page.

Allow Google to fetch your video content files

A video page may be indexed and eligible to appear on Google, but Google needs to fetch the video file itself to understand the video contents and enable features like video previews and key moments.

Allow Google to fetch your video content files by following these best practices:

  • Use structured data to provide the contentURL value in a supported file format.
  • Don't block Google from fetching the video's streaming file bytes. For example, don't block the video content URL or domain with the noindex tag or robots.txt file.
  • The video host page and the server streaming the actual video must have the bandwidth to be crawled. So if your landing page at example.com/puppies.html has an embedded puppies video served by somestreamingservice.com, both example.com and somestreamingservice.com must be accessible to Google and have available server load.
  • The video file must be available at a stable URL.

Supported video encodings

Google can fetch the following video file types: 3GP, 3G2, ASF, AVI, DivX, M2V, M3U, M3U8, M4V, MKV, MOV, MP4, MPEG, OGV, QVT, RAM, RM, VOB, WebM, WMV, and XAP.

Use stable URLs for video and thumbnail files

Some CDNs use quickly expiring URLs for video and thumbnail files. These URLs may prevent Google from successfully indexing your videos or fetching the video files. This also makes it harder for Google to understand users' interest in your videos over time.

Use a single unique and stable URL for each video. This allows Google to discover and process the videos consistently, confirm they are still available and collect correct signals on the videos.

If you are concerned about bad actors (for example, hackers or spammers) accessing your content, you can verify Googlebot before displaying a stable version of your media URLs. For example, you can choose to serve the contentUrl property only to trusted bots like Googlebot, whereas other clients accessing your page would not see that field. With this setup, only trusted clients will be able to access the location of your video content file.

Which URL is which?

There are several URLs that can be associated with a video file on the page. Here is a summary of most of them:

Diagram of URLs on a video page
  1. The URL of the page hosting the video. You can specify this with the <loc> video sitemap tag.
  2. The URL of the custom player. This is often the src value for an <iframe> or <embed> tag on the page. Possible tags include: VideoObject.embedUrl (structured data), <video:player_loc> (video sitemap tag), <iframe src="...">.
  3. The URL of the actual content bytes, either on the local site or on a streaming service. Possible tags include:
    • <video src="..."> (HTML tag)
    • <embed src="..."> (HTML tag)
    • <video:content_loc> (video sitemap tag)
    • VideoObject.contentUrl (structured data)

Enable specific video features

Video previews

Video preview in search results

Google selects a few seconds from your video to display a moving preview, which can help users better understand what they'll find in your video. To make your videos eligible for this feature, allow Google to fetch your video content files. You can set the maximum duration for these video previews using the max-video-preview robots meta tag.

Key moments

Video with key moments in search results

The key moments feature is a way for users to navigate video segments like chapters in a book, which can help users engage more deeply with your content. Google Search tries to automatically detect the segments in your video and show key moments to users, without any effort on your part. Alternatively, you can manually tell Google about the important points of your video. We will prioritize key moments set by you, either through structured data or the YouTube description.

  • If your video is hosted on your web page, there are two ways that you can enable key moments:
    • Clip structured data: Specify the exact start and end point to each segment, and what label to display for each segment. This is supported in all languages where Google Search is available.
    • SeekToAction structured data: Tell Google where timestamps typically go in your URL structure, so that Google can automatically identify key moments and link users to those points within the video. This is currently supported for the following languages: English, Spanish, Portuguese, Italian, Chinese, French, Japanese, German, Turkish, Korean, Dutch, and Russian. We aim to extend this to more languages over time. Even in supported languagues, not all videos will have key moments identified, but we aim to improve this over time as well.
  • If your video is hosted on YouTube, you can specify the exact timestamps and labels in the video description on YouTube. Check out the best practices for marking timestamps in YouTube descriptions. This is supported in all languages where Google Search is available.

    If you want to enable Video Chapters on YouTube, follow these additional guidelines.

To opt out of the key moments feature completely (including any efforts Google may make to show key moments automatically for your video), use the nosnippet meta tag.

Live Badge

Video with a LIVE badge in search results

For livestreaming videos, you can enable a red "LIVE" badge to appear in search results by using BroadcastEvent structured data and the Indexing API.

Remove or restrict your videos

Remove a video

To remove a video from your site, do one of the following:

  • Return a 404 (Not found) HTTP status code for any landing page that contains a removed or expired video. In addition to the 404 response code, you can still return the HTML of the page to make the change transparent to most users.
  • Include a noindex robots meta tag on any landing page that contains a removed or expired video. This prevents the landing page from being indexable.
  • Indicate an expiration date in your schema.org structured data (the expires property) or video sitemap (use the <video:expiration_date> element). Here is an example of a video sitemap with a video that expired in November 2009:
    <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>
          Bob shows you how to grill steaks perfectly every time
      </video:description>
      <video:player_loc>
          https://www.example.com/videoplayer?video=123
      </video:player_loc>
      <video:expiration_date>2009-11-05T19:20:30+08:00</video:expiration_date>
    </video:video>
    </url>
    </urlset>

When Google sees a video with an expiration date in the past, we will not include the video in any search results. The landing page may still be shown as a web result, without a video thumbnail. This includes expiration dates from sitemaps, structured data, and meta tags in the site header. Make sure that your expiration dates are correct for each video. While this is useful if your video is no longer available after the expiration date, it's easy to accidentally set the date to the past for an available video. If a video doesn't expire, don't include expiration information.

Restrict a video based on the user's location

You can restrict search results for your video based on the user's location. If your video doesn't have any country restrictions, omit the country restriction tags.

Restrict using structured data

If you use VideoObject structured data to describe a video, set the regionsAllowed property to specify which regions can get the video search result. If you omit this property, all regions can see the video in search results.

Restrict using a video sitemap

In a video sitemap, the <video:restriction> tag can be used to allow or deny the video from appearing in specific countries. Only one <video:restriction> tag is allowed per video entry.

The <video:restriction> tag must contain one or more space-delimited ISO 3166 country codes. The required relationship attribute specifies the type of restriction.

  • relationship="allow": The video can appear only for the specified countries. If no countries are specified, the video will not appear anywhere.
  • relationship="deny": The video can appear everywhere except for the specified countries. If no countries are specified, the video will appear everywhere.

In this video sitemap example, the video will only appear in search results in Canada and Mexico.

<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>
    Bob shows you how to get perfectly done steaks every time
</video:description>
<video:player_loc>
      https://www.example.com/player?video=123
</video:player_loc>
<video:restriction relationship="allow">ca mx</video:restriction>
</video:video>
</url>

SafeSearch is a setting in Google user accounts that specifies whether to show or block explicit images, videos, and websites in Google Search results. Make sure Google understands the nature of your site so that Google can apply SafeSearch filters to your site if appropriate. Learn more about labeling SafeSearch pages.