← All posts

Video Sitemaps and VideoObject Schema for Tube Sites: What Google Actually Needs

November 8, 2026

Google can show a tube's videos with a thumbnail and duration in search results and on its Videos tab. In practice, most adult tubes get none of that, even with a video sitemap in place. On our own sites, one tube had its videos indexed and the others didn't, and the reasons had little to do with the sitemap format. This post explains what Google needs, and where embed-based sites go wrong.

What Google needs to index a video

  1. It must crawl and index the page first. No indexed page, no indexed video. This is where most tubes fail, long before structured data matters.
  2. The video must be the main content of the page, visible without scrolling past a wall of other things.
  3. A valid thumbnail at a stable, absolute URL Google can fetch.
  4. A way to fetch the video: a contentUrl to the file or an embedUrl to a player Google can load.

Structured data and video sitemaps tell Google about points 3 and 4. They can't fix 1 or 2.

The VideoObject every video page should have

{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "Blonde teacher stays after class",
  "description": "A two-sentence description of what happens in this video.",
  "thumbnailUrl": "https://your-site.com/thumbs/12345.webp",
  "uploadDate": "2026-10-28T21:10:36+00:00",
  "duration": "PT34M7S",
  "embedUrl": "https://player.example.com/embed/12345/",
  "contentUrl": "https://cdn.example.com/12345.mp4",
  "isFamilyFriendly": false
}
  • thumbnailUrl must be absolute (with https:// and your domain). A relative path is one of the most common reasons for "invalid thumbnail" errors.
  • duration in ISO 8601 (PT34M7S). Wrong durations are common in imported catalogues; a 30-second value on a 30-minute scene looks like spam.
  • uploadDate with a timezone.
  • isFamilyFriendly: false for adult content.
  • Use contentUrl only for a file Google may fetch, and embedUrl for a player URL.

Video sitemaps

A video sitemap lists each video page with the same information: thumbnail, title, description, player or content location, duration. It helps Google find video pages it hasn't crawled yet and confirms the details. Keep in mind:

  • One sitemap file per 50,000 URLs at most; split by date or ID and list them in a sitemap index.
  • Only include pages that are indexable and whose video plays. Dead videos in the sitemap waste crawl budget.
  • Submit the index in Search Console, Bing Webmaster Tools and Yandex Webmaster.

The embed traps

A player Google can't load

Some video hosts block requests from data centres, or answer them with an error or a challenge page. Google fetches from data centres. On one of our sites, the player location pointed to such a host, and Search Console reported thousands of videos as "Video not processed". The site that did get videos indexed used direct MP4 files Google could fetch. Check what your embedUrl returns to a crawler, not to your browser.

Pages Google never visits

We used the URL Inspection API on samples of video pages across our tubes. Nearly all were "URL is unknown to Google", even though every sitemap had been downloaded without errors. Google had the URLs and simply hadn't scheduled them. What helped was a crawl path: hub pages linked from the homepage, and an A–Z index that reaches every video in a few clicks. The post on tag and category pages covers that structure.

The same video on a hundred sites

If a video is embedded on many tubes, Google picks one page to show it from, usually the strongest. A plain title and a source description won't win that. Your own title, a written description and good tags give your page a reason to be the one chosen.

Thumbnails on someone else's CDN

Thumbnails that hotlink a tube's CDN can disappear, change, or block Google's image fetcher. Store your own copies, ideally as WebP on your domain.

How to check that it works

  1. Search Console → Videos report: "Video indexed" versus reasons like "No thumbnail provided" or "Video isn't on the main content".
  2. URL Inspection on a few video pages: is the page indexed at all? If it is "unknown", fix discovery before anything else.
  3. Rich Results Test on one video page: does the VideoObject parse, and is the thumbnail accepted?
  4. Fetch your embedUrl from a server (not your browser) and confirm it returns a working player.

With AdultEmbed Studio

Studio adds VideoObject markup with an absolute thumbnail and a correct duration to every video page, generates the video sitemap, keeps thin pages out of the index, and takes dead videos out of the sitemap when it finds them. Thumbnails are stored on your own site. If you build on the API instead, each video comes with duration in seconds, a thumbnail and a permanent embed URL to put in your own markup.

For the order to set up the rest of the site, see how to start a tube site on WordPress.

Frequently asked questions

Do adult videos appear in Google video results?

Yes, with SafeSearch off. Google indexes adult videos like any others if the page is crawled and indexed, the video is the main content, and it can fetch the thumbnail and the video or player.

Should I use contentUrl or embedUrl for embedded videos?

Use embedUrl for a player URL. Add contentUrl only when you have a direct video file that Google is allowed to fetch.

Why does Search Console say "Video not processed"?

Often Google could not load the player or file: the host blocks data-centre requests, the link expired, or the player needs scripts and cookies to start. Check what the URL returns to a server-side request.

Build on a free, open adult video API — your key is ready in seconds.

Get a free API key →