sfw/fix
Video outside the viewport low

Video Outside the Viewport (Video Indexing)

Search Console can't index a video because it loads below the fold, lazy-loads, or sits hidden inside a tab on first render.

What you see

Video indexing
Video is outside the viewport
Google couldn't determine the prominent video on the page

What’s actually happening

In Search Console under Video indexing, the page shows as not indexed with the reason "Video outside the viewport." Your video plays fine for humans, but it never shows up as a video result and you get no Video enhancement in the report. This hits pages where the player is way down the article, swapped in by JavaScript on scroll, or stuffed behind a tab that's collapsed at load.

Common causes

  • The video element renders below the fold, so on a phone-sized viewport it's nowhere near the top of the page on first paint.
  • Lazy-load scripts (a data-src swap, IntersectionObserver, or a 'click to load' poster) mean the actual <video>/<iframe> doesn't exist in the DOM until the user interacts.
  • The player lives inside a tab, accordion, or modal that's display:none until clicked.
  • Multiple videos on one page and Google picks a tiny or hidden one as 'the' video instead of the main one.
  • A consent/cookie wall blocks the embed from mounting until the visitor accepts, so Googlebot sees an empty container.

How to fix it

  1. Move the main video upPut the primary video in the first viewport, above the fold on mobile. Render it server-side so it's in the initial HTML, not injected after load. Test with Search Console's URL Inspection > View crawled page > screenshot to see what Googlebot actually rendered.
  2. Stop hiding it behind lazy-load or tabsFor the page's prominent video, drop the click-to-load poster and the data-src swap. If you keep lazy-loading, load that one eagerly. Make sure it isn't inside a display:none tab on first render — visually-hidden-until-click means invisible to the indexer.
  3. Add VideoObject structured dataMark up the video with schema.org VideoObject (name, description, thumbnailUrl, uploadDate, contentUrl or embedUrl). This helps Google identify the intended prominent video even when layout is ambiguous. Validate at the Rich Results Test.
  4. Give Googlebot a real thumbnail and dimensionsSet explicit width/height on the player and a reachable thumbnailUrl (not a blurred placeholder). A 1x1 or CSS-collapsed player reads as 'not prominent.'
  5. Re-request indexing and waitAfter the fix ships, use URL Inspection > Request indexing. Video indexing lags page indexing — give it days to a couple weeks before assuming the fix failed.

Stop it recurring

Keep the page's main video in the initial server-rendered HTML, inside the first viewport, with VideoObject markup.

Related errors