Home Articles Google Shopping video_link Attribute: The Complete 2026 Implementation Guide Google Shopping video_link Attribute: The Complete 2026 Implementation Guide Published Date: 06 Aug, 2026 On June 30, 2026, product videos submitted through the `video_link` attribute became eligible to serve across Google's shopping surfaces. Google also began running policy and quality validation on every video submitted. That date has passed. Which means the field is no longer a "coming soon" line item in the spec — it is live, it is being checked, and a small number of merchants are already showing motion in a product grid where everyone else shows a still photo. This guide covers the full specification, the one piece of the documentation that trips almost everyone up, working feed examples in XML and TSV, the errors that quietly block videos from serving, and a realistic plan for rolling this out across a catalog with more than a handful of SKUs. ## The timeline, and where we are in it | Date | What happened | |---|---| | **April 14, 2026** | `video_link` became submittable. Google reported technical validation errors only — malformed URLs, wrong file types. Nothing served. This was the safe testing window. | | **June 30, 2026** | Videos became eligible to serve. Policy and quality validation began. Warnings and errors started appearing in Merchant Center. | | **Now** | Anything you submit today is validated on policy and quality, and can serve. | | **January 31, 2027** | Unrelated but same spec update: the 500×500 minimum image resolution becomes enforced. Worth handling in the same catalog sprint. | One structural detail matters more than it first appears: **a failed video does not take down the product offer.** If a video fails policy or quality validation, the video is blocked and the product continues serving with its static images exactly as before. The downside risk of submitting a video is losing the video. Not the listing. That asymmetry is the entire argument for moving now rather than waiting for someone else's case study. ## What `video_link` is actually for `video_link` is an optional, repeatable attribute that carries URLs to product videos. Google uses them to enrich how the product is displayed across its surfaces — showing the item from angles a single photo can't cover, or showing it in use. The keyword is **product**. This is not a field for your brand film, your founder story, or the campaign edit that tested well in a brand meeting. Google's own guidance is explicit that videos should be specific to the product being presented rather than representing the company as a whole. The practical filter we give clients is a single question: > **What doubt does this video remove?** If a video doesn't answer a question the shopper is actually asking — how big is it, how does it move, what does the fabric do in light, how hard is the assembly, how loud is it — it will get submitted, it may even get approved, and it will do nothing. ## The YouTube question — and why half the internet has it wrong This is the single most common source of confusion around `video_link`, so it's worth being precise. When the attribute first surfaced in late 2024, several PPC publications reported that YouTube URLs were **not** supported for Merchant Center, and that this was the distinguishing difference from the equivalent attribute in Manufacturer Center. Those articles are still circulating and still ranking. **The current specification says otherwise.** Google's Merchant Center documentation for `video_link` states that the URL can be either a YouTube URL or a URL from another video hosting site. The rule that actually matters is the second half of that sentence, and it's the part that gets skipped: > If you are not using a YouTube URL, the URL must point directly to a raw video file. It must not point to a landing page that contains a video player. That's where most implementations fail. A merchant drops in the URL of their product page, or a Vimeo watch page, or a page from their video widget app. All of those are HTML pages with a player embedded. Google needs the file. **Wrong:** ``` https://example.com/products/oak-dining-chair https://vimeo.com/123456789 https://example.com/videos/player?id=chair-01 ``` **Right:** ``` https://cdn.example.com/videos/oak-dining-chair-360.mp4 https://storage.googleapis.com/example-media/oak-dining-chair-360.mp4 https://www.youtube.com/watch?v=XXXXXXXXXXX ``` If you have videos sitting on your site today through a video widget or a UGC app, do not assume Google can see them. Most of those tools render inside JavaScript widgets that the crawler cannot read, on pages with no video schema and no video sitemap. The videos exist for shoppers and do not exist for Google. Submitting them via `video_link` as page URLs will not fix that — you need the underlying file. ## The full specification | Requirement | Value | |---|---| | **Required?** | Optional, per product | | **Type** | Video URL beginning `http://` or `https://`, ASCII characters only, RFC 3986 compliant | | **Character limit** | 2,000 | | **Repeatable** | Yes — up to 10 videos per product | | **Supported file formats** | .MPG, .MP4, .WMV, .AVI, .MOV, .FLV, .MPEG-1, .MPEGPS | | **Length** | Between 6 and 240 seconds | | **Maximum file size** | 500 MB | | **Aspect ratio** | 9:16, 16:9, or 1:1 | | **Minimum resolution** | 720p (1280×720) | | **Audio** | Optional | | **Rights** | You must own the content licensing rights for marketing use. Google does not pay creators; any creator compensation is handled directly between brand and creator. | | **Accessibility** | Publicly accessible. Googlebot must be able to fetch it with no login, no special permissions, and no `robots.txt` restriction. | | **URL stability** | Static, non-expiring, not reused for a different video, and crawlable. | | **Quality** | Not blurry or out of focus. No black bars on any edge. | Two of these deserve emphasis because they fail silently. **URL stability.** If your CDN generates signed URLs with an expiry, or your media library rotates paths on re-upload, your videos will validate on day one and disappear later. Use permanent, stable paths. **robots.txt.** A surprising number of merchants block `/media/`, `/assets/` or `/cdn/` directories out of habit. If your video files live behind one of those rules, Googlebot cannot fetch them and the video will not serve — with no obvious symptom on the product itself. ## How to submit it ### XML feed ```xml OAK-CHAIR-NAT Oak Dining Chair, Natural Finish https://example.com/products/oak-dining-chair https://cdn.example.com/img/oak-chair-01.jpg 4499.00 TRY in_stock https://cdn.example.com/video/oak-chair-360.mp4 ``` For more than one video, repeat the element: ```xml https://cdn.example.com/video/oak-chair-360.mp4 https://cdn.example.com/video/oak-chair-assembly.mp4 https://cdn.example.com/video/oak-chair-in-room.mp4 ``` ### Text / TSV feed One column named `video_link`. For multiple videos, separate the URLs with a comma: ``` id title image_link video_link OAK-CHAIR-NAT Oak Dining Chair, Natural Finish https://cdn.example.com/img/oak-chair-01.jpg https://cdn.example.com/video/oak-chair-360.mp4, https://cdn.example.com/video/oak-chair-assembly.mp4 ``` Because comma is the separator, **any comma inside a URL must be URL-encoded as `%2C`.** Otherwise a single URL is parsed as two broken ones. This is the most common formatting error we see in text feeds, and the resulting error message points at the URL rather than at the encoding, which sends people looking in the wrong place. ### Supplemental feed You do not need to rebuild your primary feed to launch this. A supplemental feed keyed on `id` with a single `video_link` column is often the fastest route, especially if your video library is managed by a different team than your product data. ``` id video_link OAK-CHAIR-NAT https://cdn.example.com/video/oak-chair-360.mp4 OAK-CHAIR-BLK https://cdn.example.com/video/oak-chair-360.mp4 WAL-TABLE-180 https://cdn.example.com/video/walnut-table-180.mp4 ``` Note the second row: two colour variants of the same chair pointing at the same video. That's a legitimate and useful pattern, covered below. ## Mapping videos across a real catalog For a store with 40 SKUs, you paste URLs into a sheet and you're done. For a store with 40,000, the interesting problem isn't the attribute — it's the join between your video library and your product data. Four patterns cover most catalogs. **1. One video per parent product, inherited by every variant.** A dining chair filmed once, mapped to all six finishes. A dress filmed once, mapped to all eight sizes. Join on `item_group_id` rather than `id`. This is by far the highest-leverage mapping: one shoot covers dozens of items. **2. One video per colourway, inherited across sizes.** Fashion, where colour is what the video actually shows and size is not. Join on `item_group_id` + `color`. **3. Category-level fallback.** An assembly or care video that legitimately applies to a whole range — "how our modular sofa system connects," "how to season cast iron." Use it as a second or third video, never as the only one. A product with only a generic category video is exactly what Google's guidance warns against. **4. No video, and that's fine.** The attribute is optional and partial coverage is normal. What you must avoid is emitting an empty or placeholder `video_link`. Conditional logic in your feed layer should output the field only when a valid URL exists. In Feedance this is a [feed rule](https://www.feedance.com/feed-rules): map `video_link` from your media source, joined on `item_group_id`, with the field suppressed when the lookup returns nothing. Set once, applied on every feed refresh, no manual maintenance as new SKUs arrive. ## What to actually film, by category The spec tells you what a video may be. It doesn't tell you what a video should be. Here is what we see working, grounded in the doubt-removal test. | Category | The doubt | The video | |---|---|---| | **Furniture** | Scale, and how it looks in a real room | Slow 360° on a neutral background, then 4–5 seconds in a furnished room with a recognisable scale reference. 15–20s. | | **Fashion** | Drape, movement, how the fabric behaves | Model walking and turning, in the actual colourway. Static flat-lays add nothing a photo doesn't already give you. 8–12s. | | **Cosmetics** | Texture, colour payoff, finish | Swatch on skin, then the product applied. Consistent lighting matters more than production value here. 10–15s. | | **Appliances / electronics** | Size, controls, noise, what setup involves | Hands operating it, at real speed. Resist the temptation to speed-ramp — the whole value is showing real interaction. 20–30s. | | **Home textiles** | Weight, texture, true colour | Fabric moving in hand, close macro, then the item in place. 10–15s. | | **Tools / hardware** | Fit, compatibility, durability | The tool in use on the material it's meant for. 15–25s. | | **Food & beverage** | Portion size, packaging, preparation | Package in hand for scale, then the product plated or poured. 8–15s. | Cross-category rules that hold everywhere: - **The first two seconds decide it.** A logo card at the start wastes the only part of the video most shoppers will see. Open on the product. - **Sound is optional — so design for silence.** Most of these play muted. If your video only works with a voiceover, it doesn't work. - **Match the aspect ratio to the surface.** 1:1 is the safest single format if you're producing one version. If you're producing two, produce 1:1 and 9:16. - **No black bars.** This usually happens when a 16:9 file is padded into a 1:1 frame during export. Re-crop instead of padding. ## The eight errors that block videos | Error | What's happening | Fix | |---|---|---| | URL points to a landing page | The URL returns HTML, not a video file | Use the raw file URL or a YouTube URL | | Unsupported file format | `.webm`, `.mkv`, `.m3u8` and HLS streams are not on the accepted list | Re-encode to `.mp4` | | Video too short or too long | Under 6 seconds or over 240 | Re-edit within range; 8–30s is the practical sweet spot | | Resolution below 720p | Legacy or supplier-provided files | Re-encode from source at 1280×720 or higher | | Not crawlable | `robots.txt` disallow, signed URL, or auth wall on the media path | Allow Googlebot on the media directory; use unsigned, permanent URLs | | Malformed URL in text feed | An unencoded comma split one URL into two | Encode commas as `%2C` | | Black bars | 16:9 padded into a 1:1 frame at export | Re-crop rather than pad | | Generic brand video | Company reel submitted against every SKU | Replace with product-specific footage, or drop the field for those items | To find these: **Merchant Center → Needs attention.** Video issues are reported there alongside everything else. Because a video failure never disapproves the product, nothing else in your account will alert you — you have to go look. Worth building into your routine: if you already run [feed monitoring](https://www.feedance.com/feed-protection) for price, stock and product-count anomalies, add video coverage rate to the same dashboard. A sudden drop in the number of items carrying a valid `video_link` usually means a CDN path changed, and you want to know that in hours rather than at the next monthly review. ## Where the videos come from This is the real constraint. The feed work is a few hours. Producing video for a catalog is not. Four sources, in rough order of cost per SKU: **1. Video you already own and forgot about.** Check first. Most brands have product footage sitting in a shared drive from past campaigns, marketplace listings, or a photographer's raw delivery. Merchant Center's video assets area also aggregates video it has detected from your connected social channels and your website — open it before you commission anything, because the "your website" count is often zero for exactly the crawler reasons described earlier, and that gap is worth knowing about. **2. Repurposed social and UGC.** Your existing Reels and TikToks are frequently already 9:16, already product-focused, and already within the length limits. The blockers are rights and hosting: you need the licensing rights for marketing use, and you need the file, not a link to the social post. **3. Generated from what you already have.** For most catalogs this is the only approach that reaches full coverage. If you have product images, you can produce compliant short video — pan and zoom over multi-angle stills, variant colour sequencing, a spec card, a promotional end frame — programmatically, at whatever spec Google requires, for every SKU in the feed. This is what the [Feedance Video Creative module](https://www.feedance.com/video-creative) does: it reads the product feed, generates video per SKU using catalog data and existing imagery, exports at 1:1, 16:9 and 9:16, and hosts the output at stable URLs that map straight back into `video_link`. Karaca used the same Creative Suite pipeline to produce 10,000 Black Friday creatives in two hours — the mechanics for video are the same, driven off the same feed. **4. Purpose-shot production.** Best output, highest cost. Reserve it for your top revenue SKUs and the products where video genuinely changes the buying decision. A useful rule: shoot the top 5% by revenue, generate the rest. Most catalogs end up with a mix — generated coverage across the long tail, shot video on the hero products, repurposed social where rights are clean. ## A 30-day rollout **Week 1 — audit.** Inventory what video you already own and where it lives. Check whether Google can crawl your media paths. Open Merchant Center → Needs attention and record your baseline. Pull your top 100 SKUs by revenue and by impressions — those are your first targets. **Week 2 — pilot, 50 SKUs.** Pick 50 products with existing usable video. Fix format, length, aspect ratio and resolution. Host at stable, crawlable URLs. Ship via supplemental feed. Watch validation for a week and resolve every warning before going further. **Week 3 — scale the mapping.** Move from a manual sheet to a rule: join video to product on `item_group_id`, suppress the field when no video exists. Extend coverage to every product where a video already exists somewhere in your organisation. **Week 4 — close the gap and measure.** Generate video for the long tail. Track two numbers: **video coverage rate** (share of active items carrying a valid, serving `video_link`) and **validation error rate**. Then look at impression share and CTR movement on the covered set versus a held-back control group. That control group matters. Video serving is not guaranteed on every impression, and without a holdout you will not be able to separate video effect from seasonality. ## Should you bother? An honest answer: the attribute is optional, the serving surfaces are still expanding, and nobody has a large public dataset on lift yet. What we do know: - The field is live and validated, so it's a real signal rather than a stored value. - A failed video cannot damage the product offer, so the technical downside is close to zero. - Google has been consistently moving product feeds toward richer media — the same 2026 spec update raised the minimum image resolution to 500×500 with enforcement in January 2027, and product feeds are being extended to additional viewing surfaces. - Optional attributes in the Merchant Center specification have a long track record of becoming strongly preferred, and then effectively expected. The cost of being early here is a few hours of feed work and whatever you spend on assets. The cost of being late is looking flat in a grid where competitors are moving. If you want to know where you stand before committing, our [free product feed audit tool](https://www.feedance.com/tools/free-product-feed-audit-tool) will score your feed on data completeness and technical health, including how much of your catalog carries usable media. ## Frequently asked questions **Is `video_link` required?** No. It is optional for every product, and there is no penalty for leaving it out. Partial coverage across a catalog is normal and acceptable. **Can I use a YouTube URL?** Yes. The current Merchant Center specification accepts either a YouTube URL or a URL from another video hosting site. Older articles claiming YouTube is unsupported for Merchant Center predate the current documentation. If you use a non-YouTube host, the URL must resolve to a raw video file rather than a page containing a player. **How many videos can one product have?** Up to 10. In practice, one strong video outperforms five weak ones; add a second only when it answers a genuinely different question. **What happens if my video is rejected?** The video is blocked from serving. The product offer continues serving normally with its static images. The issue is reported in the Needs attention section of Merchant Center. **Can several products share the same video?** Yes, and for variant-heavy catalogs it's the right approach. Size variants of a garment, or finishes of a chair, can all reference the same parent video. Just make sure the video genuinely represents the item. **Does the video need sound?** No. Audio is optional, and most playback contexts are muted. Design the video to work in silence. **What's the ideal length?** The specification allows 6 to 240 seconds. Practically, 8–30 seconds covers almost every product use case. Long videos are permitted but rarely watched in a shopping grid. **Does this work outside Google?** The attribute itself is Merchant Center specific, but the underlying assets are not. Once you have compliant per-product video hosted at stable URLs, the same files feed Meta catalog video ads, TikTok catalog placements and Performance Max asset groups. The production work amortises across every channel you run. ## Sources - Google Merchant Center Help — Video link [video_link]: https://support.google.com/merchants/answer/15216925 - Google Merchant Center Help — Product data specification update 2026: https://support.google.com/merchants/answer/16989427 - Google Merchant Center Help — Product data specification: https://support.google.com/merchants/answer/7052112 - Google — Product feeds expansion announcement: https://business.google.com/us/accelerate/announcements/product-feeds-expansion/ Cagdas Polat Co-founder of Feedance, where he leverages his background as a computer engineer and marketer to drive analytical insights. With a strong focus on transforming data into actionable strategies, he is dedicated to helping brands achieve significant growth in the digital landscape. Prev Article How to optimize your ads in 2023? Related to this topic: How Civil Lifted ROAS 36% by Making Every Campaign Creative in Time for the Campaign 06 Aug, 2026 How Vivense Lifted ROAS 32% by Not Advertising Products It Couldn't Sell 06 Aug, 2026 How Note Cosmetics Increased ROAS by 127% — While Spending 10% Less 06 Aug, 2026