Search stopped being a purely text game a while ago. People search with photos through Google Lens, scroll through video carousels, and get answers from AI-generated overviews that pull from text, images and video together. That mix is what people mean by multimodal search.
The catch is that search engines can’t “see” your visuals the way you do. They rely on signals around them: alt text, captions, file names, and structured data. Schema markup is the most direct way to say, “This is an image of this, and this is a video about that.”
This guide covers how image and video schema work, how to add them without breaking anything, and the mistakes that quietly keep your visuals out of search. If you want more practical guides like this, you can find them on the Vofeg homepage.
What Is Multimodal Visibility?
Multimodal visibility means your content can be found and understood across several formats: text results, Google Images, video tabs, Discover, Lens and AI-driven answers.
A single blog post can show up in all of these if the page is set up well. A how-to article with original photos and an embedded tutorial video has several ways to be discovered, but only if search engines understand each piece.
Why Schema Markup Matters for Images and Videos
Structured data doesn’t directly boost rankings, and anyone who says it does is overselling it. What it does is remove guesswork. According to Google’s video structured data documentation, marking up a video can influence the description, thumbnail, upload date and duration shown in results, and it makes it easier for Google to find the video on your page. Videos can appear in the main results, Video mode, Google Images and Discover.
In practice, good markup can help you get:
- Video rich results, with a thumbnail and duration in search
- Key moments, where Google links directly to chapters inside your video
- A LIVE badge for livestreams
- A Licensable badge on images, when you provide licensing details
- Cleaner indexing, because Google doesn’t have to guess what your media is
Image Schema: What to Know First
Here’s something many guides skip. Google doesn’t have a general “image rich result” you unlock by adding ImageObject. The image-specific feature Google supports is image license metadata, which powers the Licensable badge and links searchers to your licensing information.
That doesn’t make ImageObject pointless. It’s still a clean way to describe an image’s subject, creator and context, and other search engines and AI systems can read it. Just don’t expect a magic ranking bump.
Example: ImageObject with licensing details
html
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ImageObject",
"contentUrl": "https://example.com/images/home-office-setup.jpg",
"name": "Standing desk home office setup",
"description": "A compact home office with a standing desk, monitor arm and warm desk lamp",
"creator": {
"@type": "Person",
"name": "Your Name"
},
"creditText": "Your Brand Name",
"copyrightNotice": "© 2026 Your Brand Name",
"license": "https://example.com/image-license",
"acquireLicensePage": "https://example.com/buy-this-image"
}
</script>
The license and acquireLicensePage fields are what make an image eligible for the Licensable badge. If you’re not selling or licensing your images, you can leave them out.
Image markup that matters more than the schema itself
Before you touch JSON-LD, get the basics right, because Google’s image SEO best practices lean on them heavily:
- Write descriptive alt text that explains what’s in the image, not a keyword list
- Use readable file names like
standing-desk-setup.jpginstead ofIMG_4821.jpg - Place images near relevant text, since surrounding context helps Google understand them
- Use standard
<img>or<picture>elements so Googlebot can find them - Compress files and use modern formats like WebP or AVIF
- Embed IPTC photo metadata if you want creator and copyright details to travel with the file (see the IPTC photo metadata guide)
Video Schema: Where the Real Rich Result Opportunity Is
Video is where markup earns its keep. VideoObject is well supported, and the payoff is visible in search.
Per Google’s documentation, three properties are required: name, thumbnailUrl and uploadDate. Everything else is recommended, but a few of the recommended ones (description, duration, contentUrl or embedUrl) make your markup far more useful.
Example: VideoObject
html
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "How to Set Up a Standing Desk in 10 Minutes",
"description": "A step-by-step walkthrough of assembling and adjusting a standing desk for better posture.",
"thumbnailUrl": [
"https://example.com/thumbs/standing-desk-16x9.jpg",
"https://example.com/thumbs/standing-desk-4x3.jpg",
"https://example.com/thumbs/standing-desk-1x1.jpg"
],
"uploadDate": "2026-10-20T08:00:00+05:30",
"duration": "PT9M42S",
"contentUrl": "https://example.com/videos/standing-desk-setup.mp4",
"embedUrl": "https://example.com/embed/standing-desk-setup"
}
</script>
A few notes on this:
- Include the timezone in
uploadDate. Leaving it out is a common cause of warnings. durationuses ISO 8601 format, so 9 minutes 42 seconds isPT9M42S.embedUrlmust point to the player itself, not to the page the video sits on.- Offering thumbnails in several aspect ratios gives Google more flexibility across surfaces.
Add key moments with Clip markup
If you want chapters to show in search, you can tell Google exactly where each segment starts and ends using the Clip property, which Google describes as supported in all languages where Search is available.
html
"hasPart": [
{
"@type": "Clip",
"name": "Assembling the frame",
"startOffset": 45,
"endOffset": 210,
"url": "https://example.com/standing-desk-guide/?t=45"
},
{
"@type": "Clip",
"name": "Adjusting the height",
"startOffset": 210,
"endOffset": 420,
"url": "https://example.com/standing-desk-guide/?t=210"
}
]
If your video is on YouTube, you can also add timestamps in the video description, and Google will pick those up.
Livestreams
For live content, BroadcastEvent markup can earn a LIVE badge. Google recommends pairing it with the Indexing API so the page is crawled at the right time. This is mostly relevant for events, sports and streaming creators.
Don’t Skip the Video Sitemap
A common myth is that embedded YouTube or Vimeo videos are covered automatically and need no extra work. Google actually recommends video sitemaps for helping it find videos, and they work for third-party embeds too using the player location tag. If video is a real traffic source for you, add one.
Step-by-Step: Adding Image and Video Schema
- Pick the right pages. Put markup on pages where the media is the main content or clearly supports it, not on every page by default.
- Choose JSON-LD. Google recommends it, and it’s easier to maintain than microdata.
- Describe only what’s on the page. Markup must match visible content. Don’t mark up a video that isn’t actually there.
- Add the required properties first, then the recommended ones.
- Validate. Run the page through Google’s Rich Results Test and the Schema Markup Validator.
- Request indexing with the URL Inspection tool in Search Console.
- Monitor. The Video indexing report in Search Console shows which videos Google found and why others weren’t indexed.
If you use WordPress, plugins like Yoast, Rank Math or a dedicated schema plugin can generate much of this for you. Always spot-check the output, because auto-generated markup is often incomplete.
Common Mistakes That Hurt Your Markup
- Marking up content users can’t see. This goes against Google’s structured data policies and can lead to manual actions.
- Duplicate titles and descriptions. Each video should have a unique name and description.
- Blocked thumbnails or video files. If robots.txt or a login wall blocks Googlebot, your markup can’t help.
- Wrong
embedUrl. Pointing it at your blog post instead of the player is a frequent slip. - Missing timezone or bad date format in
uploadDate. - Stale markup. If you remove or replace a video, update the schema too.
- Treating schema as a shortcut. It supports good content. It can’t rescue thin pages.
Page Speed and Placement Still Count
Heavy media can drag down your page experience. Lazy-load below-the-fold images and videos, compress aggressively, and keep your main content fast. Google’s guidance on Largest Contentful Paint is a good reference. For video, place the player where users will actually see it, ideally near the top of the page if the video is the main point. You can explore more SEO and blogging guides on Vofeg to build on these fundamentals.
A Quick Checklist Before You Publish
- Descriptive alt text and file names on every image
- ImageObject or license metadata where it applies
- VideoObject with name, thumbnailUrl and uploadDate at minimum
- Description, duration and contentUrl or embedUrl added
- Clip markup if your video has clear chapters
- Video sitemap submitted in Search Console
- Rich Results Test passed with no critical errors
- Markup matches what’s visible on the page
Final Thoughts
Image and video schema won’t replace strong content, but they make sure your best visuals get noticed, understood and shown in the right places. Start small: pick your five most important pages, clean up the image basics, add VideoObject where you have video, validate, and watch Search Console over the next few weeks. Then expand from there.
For more practical tips on growing your blog’s visibility, head back to Vofeg and keep exploring.
FAQ
Does schema markup improve rankings directly?
Not directly. It helps search engines understand your content and can make you eligible for rich results, which can improve visibility and clicks.
Is ImageObject required for images to appear in Google Images?
No. Google can index images without it. Alt text, file names, page context and crawlability matter more.
Which video properties are required?
Name, thumbnail URL and upload date, according to Google’s documentation.
Can I use video schema for YouTube embeds?
Yes. The markup goes on your page where the video is embedded, and a video sitemap can help Google find it.



