Product video SEO is making the video on each product page something Google can find, read and show. Google gives a product page with a supporting video as an example of a page that is not a watch page, so expect a text result or a Google Images result with a video badge rather than a video result. Put the player in the HTML with a poster, add one VideoObject per video beside your Product markup, list it in a video sitemap and publish a transcript.
What Google does with video on a product page
Google keeps most video features for watch pages, and a product page is not one, so a product video supports the page rather than ranking as a video.
Google's video SEO best practices define a watch page as one whose main purpose is to show a single video, and say one is needed for video results on the main results page, Video mode, key moments and the LIVE badge. Among pages that are not watch pages, Google lists “a product page with a 360 video of a product”. Search Console's help for the Video indexing report adds “a product details page with a complementary video”. A non-watch page, Google says, “can still be eligible to appear as a text result and Google Image result with a video badge”.
For product pages, that means:
- Judge the video by the page's job. It helps a shopper choose. The search result is still the product page.
- Keep it findable. Google finds videos in a
<video>,<embed>,<iframe>or<object>element, says the video can't be hidden behind other elements, and says not to rely on user actions such as clicking to load it. Keep the player in the HTML, not in a tab or pop-up. - One video per product, where shoppers look. Early in the gallery or directly under it. Each video needs its own markup and sitemap entry, so one is easier to keep right.
- A watch page where it makes sense. If people search for the video itself, such as an assembly how-to, Google suggests a dedicated watch page for each video “if it makes sense for your business”. Link it from the product page.
Which products to start with, and what each video should show, are in ecommerce product video; this guide covers getting the video found.
VideoObject beside Product markup
Keep the page's Product markup as it is and add one VideoObject for the video that plays on the page, describing that video only.
Google's video structured data documentation requires name, thumbnailUrl and uploadDate, recommends description, duration and contentUrl or embedUrl, and asks for a unique name and description per video. Google's general structured data guidelines say not to mark up content that is not visible to readers, and to put structured data on the page it describes. So VideoObject goes only where the player is.
| Property | What a product page puts there |
|---|---|
| name | The product name and what the video covers |
| description | What the shopper will see: sizes, materials, features |
| thumbnailUrl | The player's poster, at one stable URL |
| uploadDate | When the video first went on the page, with a timezone |
| contentUrl or embedUrl | contentUrl for an MP4 you host; embedUrl for a YouTube player |
Product markup does not carry the video: Google's product structured data documentation describes no video property. Google's general guidelines use @id to say a video is about the recipe on the page; for a product, we suggest a VideoObject whose about points at the Product's @id. Illustrative, for a fictional bag:
{
"@context": "https://schema.org",
"@graph": [
{ "@type": "Product",
"@id": "https://www.example.com/products/weekend-bag#product",
"name": "Canvas weekend bag",
"image": "https://www.example.com/img/weekend-bag.jpg",
"offers": { "@type": "Offer", "price": "89.00", "priceCurrency": "GBP" } },
{ "@type": "VideoObject",
"name": "Canvas weekend bag: size, pockets and straps",
"description": "A 45-second look at the bag's size, pockets and straps.",
"thumbnailUrl": ["https://www.example.com/videos/WB-OLIVE.jpg"],
"uploadDate": "2026-10-16T09:00:00+01:00",
"duration": "PT45S",
"contentUrl": "https://www.example.com/videos/WB-OLIVE_16x9.mp4",
"about": { "@id": "https://www.example.com/products/weekend-bag#product" } }
]
}
The Product block is trimmed; Google's merchant listing documentation sets out what it requires and recommends. VideoObject schema covers every video property and how to test it.
Variant pages and canonical URLs
Put the video, markup and sitemap entry on the URL you want in search, usually the main product page.
- Variants on one page. Where shoppers pick colour or size on one page, Google's product variant documentation says “there must be only one distinct canonical URL” for the product group, usually the base URL with no variant preselected. One video and one VideoObject go there.
- Variants on separate pages. Google says each page needs full, self-contained markup, so a variant page playing a video carries its own VideoObject.
- A canonical is a hint. Google's canonicalization guide calls it “a hint, not a rule”, and its sitemap guidance says to list the URL you prefer, not every URL with the same content. List the video under the canonical URL.
- Match the variant. A video of the olive bag should not play on the navy page.
Sitemaps, transcripts and posters across a catalogue
Every product page with a video needs a sitemap entry, a transcript and a poster, so generate all three rather than writing them by hand.
A video sitemap for the catalogue
Google's video sitemap documentation calls one a good way to help Google find video, “especially content that was recently added or that we might not otherwise discover with our usual crawling mechanisms”. Don't list videos unrelated to the host page. Google limits a single sitemap to 50MB uncompressed or 50,000 URLs, so a large catalogue splits the file and can submit a sitemap index. Video sitemaps lists every tag.
Transcript and captions
Give the player a WebVTT caption track, put the transcript as text under it, and burn captions into the social cut. WCAG 2.2 success criterion 1.2.2 asks for captions for prerecorded audio in synchronised media, at Level A. Video transcripts and captions covers the formats.
Poster first, load on play
A product video should cost the page almost nothing until a shopper presses play. Use a <video> element with a poster, a width and height, and preload="metadata" or "none", which ask the browser to fetch little or nothing before play. Don't build the player on click: Google's Video indexing help says to load the player at its actual size and position when the page loads. web.dev times a video's Largest Contentful Paint from the poster or the first frame, whichever is earlier, so compress the poster like a gallery image, and use the same thumbnail URL across all metadata, as Google asks. VDP video covers preload and layout shift in detail.
Measuring product video SEO
Measure two things: whether Google found the video, in Search Console, and whether shoppers use it, in your analytics.
- Inspect sample pages. The URL Inspection tool shows the user-declared and Google-selected canonical, can test the live URL, and has a Video indexing section when it detects a video. Check the rendered HTML holds player and VideoObject.
- Read the Video indexing report. It shows, for indexed pages, how many videos are eligible for video features and why others weren't indexed. On product pages, expect “Video isn't on a watch page”: Google's examples for it include a product details page with a complementary video. Fix the other reasons, such as “No thumbnail URL provided” or “Cannot determine video position and size”.
- Check the Video rich result report. Google's video best practices list it for VideoObject issues; the Performance report filters by the Videos search appearance.
- Send your own play events. Google Analytics' enhanced measurement records video_start, video_progress and video_complete for embedded YouTube videos with JS API support enabled. For a self-hosted player, send a play event carrying the SKU and compare add-to-basket rates with and without video.
We quote no figure for what product video does to sales; compare similar products of your own.
How Videngine puts a video on each product page
Videngine renders one narrated, captioned video per product and, on a static HTML site, publishes it into the product page with player, transcript, markup and sitemap entry.
- Choose the products. A workspace set up for products and e-commerce reads your sitemap to list product pages, and your team picks which become videos. Or send a CSV or JSON file of products; batch runs from a file start on Growth (see bulk video creation from a CSV).
- Review every video. Each draft is reviewed in the studio, and a rejection gets a defect code such as pronunciation, specification or photo. A pronunciation lexicon and banned phrases keep names and claims in line.
- Render both cuts. 16:9 for the product page and 9:16 for social, up to 1080p, captions burned in or as .srt, files named by your product reference.
- Publish to a static site. For a static HTML site built from a GitHub repository, one commit adds the MP4, poster and WebVTT track; writes the player (poster, metadata-only preload), transcript and VideoObject into the page the video was made from; and updates video-sitemap.xml and robots.txt, all in the HTML the server sends. Framework-built sites aren't supported yet; one video per page.
- Or add it to product media. On other platforms, download the 16:9 MP4, add it to the product's media and check what player and markup your platform outputs; Shopify product video covers Shopify stores. On Growth and above, a read-only API looks up the approved video by stock number and fetches its WebVTT captions.
When product facts change, render again: the rebuild is saved as _v2, and re-rendering the same video in the same month is free. See Videngine pricing.
When product video, or Videngine, is not the fix
A video adds to a product page that already works; it does not repair thin content, missing data or slowness.
| Situation | Why video will not fix it | Better first step |
|---|---|---|
| Thin product pages | The video can only repeat what the page or data says | Write the description, sizes and specification first |
| Missing product data | VideoObject does not fill gaps in Product markup or your feed | Complete price, availability, identifiers and images |
| Pages slow for other reasons | A poster-first player adds little and removes nothing | Fix the scripts, apps or images slowing the page |
| Wanting a video result for the product | A product page is not a watch page | A dedicated watch page, or YouTube (see YouTube vs self-hosted video) |
| Filmed demonstrations or 360 spins | Videngine creates no footage | Film it, or use a 360 spin tool |
| Automatic publishing on a framework-built site | Website publishing writes into HTML files in a repository | Add the MP4 through your templates or product media |
| Narration in another language | Narration is English only | A tool that narrates in your shoppers' language |
Fix the page first: a better page also makes a better video.
Questions about product video SEO
Does video on a product page help SEO?
Not as a video result, usually. Google gives a product page with a supporting video as an example of a page that is not a watch page, though such a page can still appear as a text result and a Google Images result with a video badge. Judge it by what it does for shoppers.
Do I need VideoObject markup if the page already has Product markup?
It is worth adding. Product markup describes the product, and Google's product documentation describes no video property. Add one VideoObject per video, on the page where it plays, with at least name, thumbnailUrl and uploadDate.
Why does Search Console say my product video isn't on a watch page?
Because the page's main purpose is the product, not the video. Google's help for the Video indexing report lists a product details page with a complementary video among its examples. Fix other reasons, such as a missing thumbnail.
Should each colour or size variant have its own video?
Usually not. Put one video on the canonical product page and list it in the video sitemap under that URL. Make a separate video only for a variant that looks or works differently.
Should product videos be hosted on YouTube or on my own site?
On the product page, a self-hosted MP4 lets the markup point at the file with contentUrl; a YouTube embed uses embedUrl. Google Analytics' enhanced measurement describes video events for YouTube embeds with JS API support, so a self-hosted player needs your own play event.
Choose your next step
Plan videos for the whole shop, or go deeper on the markup and the sitemap.
Start with one product page.
Bring one typical product page and the name of your ecommerce platform. Review its video in the studio, settle the poster, transcript and markup, then decide how the video reaches the rest of the catalogue.
Join the waitlist ↗Published by Videngine, a video rendering product built and run by Wall & Fifth. External links refer to the original documentation or product descriptions; examples are illustrative unless stated otherwise.