ServicesAI Audit
← Back to Blog

How to Use MediaObject Schema to Get Cited in AI Search

Schema MarkupMediaObject SchemaAI VisibilityJSON-LDLLM SEOStructured DataAI Search
A detailed view of the DeepSeek AI interface, displaying a welcoming message on a dark background.

Why AI Search Engines Struggle With Media Content

AI search engines are surprisingly bad at understanding media. Not because they lack intelligence, but because media files - videos, audio clips, PDFs, images used as documents - don't come with readable context by default. A language model crawling your site sees a URL pointing to an MP4 file and has almost nothing to work with. No title, no description, no duration, no author. Just a file path.

This is the core problem that MediaObject schema solves. It wraps your media assets in structured, machine-readable metadata so that AI systems can actually understand what the file is, who made it, and why it's relevant to a query. Without it, your videos, audio files, and downloadable documents are essentially invisible to AI-powered search.

The good news is that most brands haven't bothered to implement this. That means if you do it properly, you're ahead of the vast majority of your competitors in AI-cited results.

What MediaObject Schema Actually Covers

MediaObject is a parent type in the Schema.org vocabulary. It sits under CreativeWork and has several important subtypes that you'll likely use in practice:

  • VideoObject - for video content (product demos, tutorials, brand films)
  • AudioObject - for podcast episodes, voice notes, audio guides
  • ImageObject - for standalone images used as content assets
  • DataDownload - for downloadable files like PDFs, CSVs, and reports

Each subtype inherits the core MediaObject properties and adds a few of its own. A VideoObject, for instance, supports duration and videoFrameSize. An AudioObject supports transcript. Knowing which subtype to use matters because it tells AI systems what kind of media experience to expect.

The base MediaObject type itself is rarely used on its own. You'll almost always want to use one of its subtypes. If you're implementing schema for a product video on a Shopify store, use VideoObject. If it's a podcast episode on your WordPress site, use AudioObject.

The Properties That Matter Most for AI Citations

Not all schema properties carry equal weight. AI systems are looking for specific signals when deciding whether to cite a piece of media content. These are the properties that make the biggest difference.

name and description

These two are non-negotiable. The name property is the title of your media asset. The description should be a plain-English summary of what the content covers. Write it like you're explaining the video or audio to someone who hasn't seen it yet. Avoid vague descriptions like "product video" and instead write something like "A step-by-step demonstration of how to set up the XR200 wireless speaker system, including pairing with Bluetooth 5.0 devices."

That level of specificity is what gets you cited when someone asks an AI assistant a relevant question.

contentUrl and embedUrl

contentUrl is the direct URL to the media file itself. embedUrl is the URL used to embed it (like a YouTube embed link). Always include both where available. Some AI systems prefer to cite embeddable content because it's easier for users to access directly from a search result or AI response.

uploadDate and dateModified

AI systems increasingly weight recency when deciding what to cite. The uploadDate tells them when the content was first published. dateModified tells them when it was last updated. If you have evergreen video content that you refresh periodically, always update dateModified at the same time. This signals that the content is actively maintained, not abandoned.

duration

Duration is expressed in ISO 8601 format. A 7-minute 30-second video would be PT7M30S. This is more important than it might seem. When an AI assistant is recommending resources, knowing the duration helps it match the content to the user's intent. A 90-second product overview is a different recommendation from a 45-minute tutorial.

author and publisher

These properties establish provenance. Who made this? What brand does it belong to? Use a nested Person or Organization type here. For most e-commerce brands, publisher will be your organisation. For thought-leadership content, you might add an individual author too. This matters for AI trust signals - content with clear authorship is more likely to be cited than anonymous content.

thumbnailUrl

For VideoObject in particular, always include a thumbnailUrl. AI visual search and tools that display rich results need this to surface your content properly. Use a high-quality static image at a minimum of 1280x720 pixels.

A Practical JSON-LD Example for a Product Video

Here's what a properly implemented VideoObject looks like for an e-commerce product demonstration video:

{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "How to Use the AquaFilter Pro 3000  -  Full Setup Guide",
  "description": "This video walks through the complete setup process for the AquaFilter Pro 3000 under-sink water filter, including installation, cartridge fitting, and first-use flushing steps.",
  "thumbnailUrl": "https://yourstore.com/images/aquafilter-pro-3000-setup-thumb.jpg",
  "uploadDate": "2024-09-12",
  "dateModified": "2025-03-01",
  "duration": "PT12M45S",
  "contentUrl": "https://yourstore.com/videos/aquafilter-pro-3000-setup.mp4",
  "embedUrl": "https://www.youtube.com/embed/XXXXXXXXX",
  "author": {
    "@type": "Organization",
    "name": "AquaFilter UK",
    "url": "https://yourstore.com"
  },
  "publisher": {
    "@type": "Organization",
    "name": "AquaFilter UK",
    "logo": {
      "@type": "ImageObject",
      "url": "https://yourstore.com/images/logo.png"
    }
  },
  "inLanguage": "en-GB"
}

Drop this into a <script type="application/ld+json"> tag in the <head> of the page where the video lives. Don't place it on a separate page. The schema should live on the same URL as the media asset it describes.

Implementing MediaObject Schema on Shopify and WordPress

Shopify

Shopify doesn't add VideoObject or AudioObject schema automatically, even for product pages with embedded videos. You'll need to add the JSON-LD block manually via your theme's product.liquid template, or through a script tag injected via a Shopify app. For store owners managing product demo videos at scale, a templated approach is worth setting up so the schema generates dynamically from your product data. The name and description fields can pull from your product metafields.

WordPress

On WordPress, most SEO plugins focus on article and page schema. Plugins like Yoast and Rank Math do generate some VideoObject schema automatically when they detect video embeds, but the output is often incomplete. They frequently skip duration, dateModified, and proper author nesting. Audit what your plugin is actually outputting using Google's Rich Results Test and fill in the gaps manually or via a custom plugin.

For podcast pages specifically, consider implementing both AudioObject and PodcastEpisode schema together. They complement each other and give AI systems more signal about the content type and context.

Nesting MediaObject Inside Other Schema Types

One of the most powerful ways to use MediaObject is to nest it inside other schema types rather than using it standalone. This creates richer, more connected structured data that AI systems find far easier to interpret.

For example, if you have a product page with a demo video, you can nest a VideoObject inside your Product schema using the video property:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "AquaFilter Pro 3000",
  "video": {
    "@type": "VideoObject",
    "name": "AquaFilter Pro 3000 Setup Guide",
    "description": "Step-by-step installation and setup video for the AquaFilter Pro 3000.",
    "thumbnailUrl": "https://yourstore.com/images/setup-thumb.jpg",
    "uploadDate": "2024-09-12",
    "duration": "PT12M45S",
    "contentUrl": "https://yourstore.com/videos/aquafilter-setup.mp4"
  }
}

This approach links your media asset directly to the product entity. When an AI is asked "what's the best under-sink water filter and how do I install it?", this kind of connected schema gives it a complete, citable answer in one structured package.

You can do the same with HowTo schema (nest video into individual steps), Article schema (use video or associatedMedia), and Event schema for recorded webinars.

Common Mistakes That Kill AI Visibility for Media

A few errors come up repeatedly when auditing media schema implementations.

Putting schema on the wrong page. The JSON-LD must be on the page that hosts the media, not on a sitemap page or a separate metadata endpoint. AI crawlers associate schema with the URL it's found on.

Using a generic description. "Watch our video" is not a description. It tells the AI nothing. Write at least two sentences that accurately summarise the content, include relevant terms naturally, and make it clear what someone will learn or experience.

Ignoring AudioObject for podcasts. Podcast content is heavily consumed by voice-based AI assistants. If you run a podcast and haven't implemented AudioObject schema, you're missing a significant citation opportunity. Include a transcript property pointing to a text transcript wherever you have one.

Static uploadDate that never changes. If you update a video or re-edit an audio file, update dateModified. AI systems that weight freshness will rank recently updated content higher in their citation decisions.

At FlinnSchema, we see these mistakes on the majority of sites we audit. The fix is usually straightforward once you know what to look for. If you want to know how your media content currently looks to AI, you can request a free AI visibility audit and we'll identify exactly what's missing.

How MediaObject Fits Into a Broader AI Visibility Strategy

MediaObject schema doesn't work in isolation. AI search engines build a picture of your brand by reading multiple schema types together. A strong Organization schema establishes your brand identity. Product schema signals what you sell. AggregateRating adds social proof. MediaObject adds depth by showing that your brand produces rich, varied content.

The brands that win AI citations most consistently are those with an interconnected web of schema types, not just a single type bolted on. Think of each schema type as a node in a graph. The more nodes you have, and the more clearly they connect to each other, the more confident an AI system is in citing you as a reliable, well-described source.

If you're unsure where MediaObject fits within your existing schema setup, or if you haven't yet built out your foundational schema stack, the FlinnSchema approach to structured data focuses on building that full entity picture, not just ticking individual boxes.

You might also find it useful to read our guide on using ImageObject schema to get cited in AI visual search, since ImageObject is technically a MediaObject subtype and the two implementations work well together. For brands publishing video alongside product listings, our post on using Offer schema to win AI shopping recommendations is worth reading alongside this one.

Frequently Asked Questions

Does MediaObject schema help with Google as well as AI search engines?

Yes. Google uses VideoObject schema to generate video rich results in standard search, including thumbnail previews, durations, and clip links. So implementing this properly gives you a dual benefit: better visibility in traditional Google search and improved citation potential in AI-powered search tools like Google's AI Overviews, ChatGPT, and Perplexity.

Do I need to host the video myself, or does it work with YouTube embeds?

Both work. Use contentUrl for self-hosted files and embedUrl for YouTube, Vimeo, or other embedded players. If you're using a YouTube embed, you can still add VideoObject schema to your own page pointing to that embed URL. Google and AI crawlers will associate the schema with your page, not just with YouTube, which helps establish your site as the authoritative source for that content.

How do I test whether my MediaObject schema is valid?

Use Google's Rich Results Test at search.google.com/test/rich-results. Paste your page URL or your JSON-LD code directly. It will tell you whether the schema is valid and flag any missing or incorrect properties. Also run it through Schema.org's validator at validator.schema.org for a more thorough check. Neither tool tells you how AI systems specifically interpret your schema, but they're a good starting point for catching errors.

How many MediaObject types can I include on a single page?

There's no strict limit. If a page hosts multiple videos, you can include a separate VideoObject block for each one. If you have a page with both a video and an audio guide, include both. The key is that each block should be accurate and complete rather than rushed. A single well-implemented VideoObject will do more for your AI visibility than five thin, incomplete ones.

Want to check your AI visibility?

Run a free audit on your website and see how visible you are to ChatGPT, Perplexity, and other AI search engines.

Run Free Audit