On this page:
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.

caption

caption · Not mentioned by Google

Appears in

What is it?

A text description or subtitle for an image, audio file, or video. For images, caption provides the descriptive text that explains what the image shows. This is different from alt text (which is an HTML attribute); caption is a schema.org property that makes the description available as structured data for search engines and AI systems.

Why this matters for AEO

AI answer engines use image captions to understand visual content without analyzing the image itself. When a user asks "show me examples of Art Deco architecture," the AI matches queries against caption text to find relevant images. Structured captions are more reliable than scraping nearby paragraph text, which may not describe the image at all.

What the specs say

Schema.org: MediaObject or Text. The caption for this object. For downloadable machine formats (closed caption, subtitles etc.) use MediaObject and indicate the encodingFormat. schema.org/caption

Google: Not mentioned. Field not listed in Google's structured data documentation for ImageObject. Google Image License docs

How to find your value

  • Image caption on page — Text displayed below or beside the image
  • CMS field — Dedicated caption field in the media library or collection
  • Photo metadata — IPTC Caption/Description field in the image file
  • Alt text — Can serve as a starting point, but captions are typically longer

Format and code

For text captions, use a plain string. For machine-readable formats (SRT, VTT subtitles), use a nested MediaObject.

{
  "@context": "https://schema.org",
  "@type": "ImageObject",
  "url": "https://example.com/photos/labrador.jpg",
  "contentUrl": "https://example.com/photos/labrador.jpg",
  "width": 1200,
  "height": 630,
  "caption": "Black Labrador puppy playing in a garden"
}

Webflow implementation

Static pages

Add the caption in the ImageObject JSON-LD block in Page Settings > Custom Code:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ImageObject",
  "url": "https://example.com/photo.jpg",
  "caption": "Descriptive caption for the image"
}
</script>

CMS template pages

Webflow's image fields do not have a built-in caption property. Create a separate plain text field in the CMS collection for the image caption. Reference it in the JSON-LD embed.

In Schema HQ

Schema pulls caption from CMS text field in the ImageObject markup. Yoast SEO considers caption optional but recommends adding it "whenever available and valid."

Real examples

Yoast Schema ImageObject:

{
  "@type": "ImageObject",
  "@id": "https://example.com/image.jpg",
  "url": "https://example.com/image.jpg",
  "contentUrl": "https://example.com/image.jpg",
  "width": 1200,
  "height": 630,
  "caption": "Descriptive image caption",
  "inLanguage": "en-US"
}

JayHoltslander Structured Data reference:

{
  "@context": "http://schema.org/",
  "@type": "ImageObject",
  "url": "http://placehold.it/2560x1080",
  "width": "1200",
  "height": "348",
  "caption": "Caption for the image"
}

Related fields

FAQ

How is caption different from alt text?

alt is an HTML attribute on <img> tags used for accessibility (screen readers). caption is a schema.org property on ImageObject used for structured data. Alt text is typically short and describes the image for users who cannot see it. Captions can be longer and provide context, attribution, or editorial commentary.

Can caption contain HTML?

For text captions, use plain text. If you need to provide machine-readable subtitle files (like SRT or VTT for video), use a nested MediaObject with encodingFormat set to the subtitle format.

Should every ImageObject have a caption?

Not necessarily. Decorative images and generic stock photos may not need captions. Add captions to images that carry editorial meaning: product photos, diagrams, infographics, and photos that illustrate specific points in the content.

On this page:
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.

Need help with schema on your site?

We implement structured data for Webflow sites — from audit to deployment.

Work with us

Work with us