WooCommerce 11.1 introduces experimental product gallery videos for classic and block-based galleries. The initial release supports locally uploaded videos and is disabled by default. A working desktop preview does not prove mobile playback, reduced-motion behavior, accessibility, caching, variation switching, fallback images, or conversion tracking.
Use this for stores considering product videos on variable products, large catalogs, mobile-heavy storefronts, custom themes, CDN media delivery, consent tools, lazy loading, analytics, and performance optimization.
Quick answer
Enable the feature on staging, upload a short sanitized local MP4 with a poster image, and test classic plus block galleries across product types and breakpoints. Record initial image rendering, play controls, keyboard access, captions, variation switching, autoplay policy, reduced-motion preference, cache headers, byte transfer, Largest Contentful Paint, and add-to-cart events. Keep a fallback image and a tested feature-disable rollback. Do not bulk-convert a catalog while the feature remains experimental.
Test scenarios to run
Run the same controlled fixture across these branches. Write down the expected result before testing so a surprising response is easy to identify.
| Scenario | Fixture | Expected result |
| Block gallery | Local MP4 and poster | Stable image-first load |
| Classic gallery | Same product | Equivalent controls |
| Slow mobile | Network throttling | Poster and cart usable |
| Rollback | Feature disabled | Image gallery restored |
Diagnostic table
Use this table to connect the observed behavior to evidence and a verification step.
| Action | Evidence | Verification |
| Create a small media fixture | Record WooCommerce, theme, gallery type, media format, dimensions, duration, byte size, poster image, CDN behavior, lazy-load plugin, consent mode, device, browser, and network profile. | Poster images and purchase controls remain usable before video loads. |
| Test both gallery systems | Test simple, variable, out-of-stock, sale, grouped, translated, and password-protected products in classic and block galleries. | Classic and block galleries work with keyboard, touch, and reduced motion. |
| Measure mobile delivery | Verify image-first rendering, video controls, focus order, captions, poster fallback, no sound autoplay, reduced-motion behavior, and a useful no-video state. | Media delivery supports expected cache and range behavior without excessive transfer. |
| Validate analytics and consent | Measure transfer bytes, LCP, interaction delay, layout shift, cache status, range requests, mobile data use, and whether optimization plugins rewrite the media URL. | Disabling the feature restores the prior gallery without orphaned media or broken tracking. |
What to check first
- Record WooCommerce, theme, gallery type, media format, dimensions, duration, byte size, poster image, CDN behavior, lazy-load plugin, consent mode, device, browser, and network profile.
- Test simple, variable, out-of-stock, sale, grouped, translated, and password-protected products in classic and block galleries.
- Verify image-first rendering, video controls, focus order, captions, poster fallback, no sound autoplay, reduced-motion behavior, and a useful no-video state.
- Measure transfer bytes, LCP, interaction delay, layout shift, cache status, range requests, mobile data use, and whether optimization plugins rewrite the media URL.
- Track gallery impressions, play starts, completion, variation changes, add-to-cart, and checkout without firing duplicate events or leaking consent-restricted data.
Field notes
- Write the pass condition before changing anything and keep one repeatable synthetic fixture for the full test window.
- Record exact versions and UTC timestamps because deployments, caches, retries, scheduled actions, and background jobs can change the evidence.
- Test the public path and the stored server-side result, not only an admin preview, isolated command, or API response.
- Repeat verification after the relevant cache, queue, cron, webhook, and observation window has completed.
Useful command or data shape
Adapt paths, IDs, and privacy handling to the site before running commands or storing data on production.
# Record the exact local media URL and headers.
curl -sS -I --max-time 10 https://example.com/wp-content/uploads/product-demo.mp4
# Test a Range request because browsers may seek within the file.
curl -sS -I -H 'Range: bytes=0-1023' https://example.com/wp-content/uploads/product-demo.mp4
Why this usually happens
- A theme styles image slides but not video controls or aspect ratios.
- A cache or image optimizer rewrites media that it does not understand.
- Variation changes retain the previous video's state or poster.
- Analytics counts gallery rerenders as new play events.
Decision rule
Enable product videos only where the image-first fallback, accessibility, mobile performance, variation behavior, tracking, and feature-disable rollback all pass.
Production verification checklist
- Poster images and purchase controls remain usable before video loads.
- Classic and block galleries work with keyboard, touch, and reduced motion.
- Media delivery supports expected cache and range behavior without excessive transfer.
- Disabling the feature restores the prior gallery without orphaned media or broken tracking.
Safe fix order
Use a sequence that makes each result easy to prove. Stop when new evidence changes the scope or owner of the problem.
- Create a small media fixture
- Test both gallery systems
- Measure mobile delivery
- Validate analytics and consent
- Prove feature rollback
Mistakes to avoid
- Changing production before recording exact plugin versions, UTC timestamps, a stable fixture, the expected result, and a tested rollback point.
- Treating one successful screen as proof while stored records, logs, queues, caches, emails, APIs, and downstream systems remain unchecked.
- Testing only as an administrator instead of using the role, device, locale, cache state, payment state, and failure branch that customers reach.
- Leaving temporary exclusions, debug output, test accounts, broad permissions, or one-off repair code active after verification.
Questions teams ask during testing
Can I run this directly in production?
Begin with read-only evidence and use staging for package, database, checkout, form, permission, or security changes. If a production canary is necessary, make it identifiable, reversible, monitored, and unable to expose personal data or charge a customer.
How do I avoid a false positive?
Repeat the same fixture with the same versions, role, URL, locale, cache state, and integrations. Compare browser, stored, API, and log evidence instead of relying on one screen.
What should the evidence packet contain?
Keep UTC time, exact versions, synthetic record ID, expected result, actual result, relevant log lines, change made, rollback point, owner, and final verification. Redact secrets and personal data.
When is the test complete?
Close the work when the primary path passes, failure branches are understood, stored and downstream records reconcile, temporary changes are removed, and monitoring covers the next update.
What to tell the client or owner
Give the owner a concise packet with the affected workflow, exact versions, UTC test time, fixture ID, expected result, actual result, key logs, change made, rollback point, final result, unresolved risks, owner, and next review date. Remove credentials and personal data before sharing it.
When HandL WP should help
Bring in help when this affects leads, checkout, search visibility, security, paid media reporting, or a client production site. HandL WP can trace the issue through WordPress, hosting, cache, tracking, and Search Console, then verify the workflow after the technical fix.
If this is active on a production site, have HandL WP test WooCommerce product media.
Related HandL WP guides
Use these related guides when the same issue touches tracking, security, checkout, or crawler visibility.
Helpful references