Meet Cortex AI Powered, Expertise Refined Decision EngineYour AI Optimization Engine
Schema

How to Create ImageObject Schema for Image Licensing in 2026

Seven chapters covering the image licensing rich result, required properties, creditText / copyrightNotice / license, IPTC metadata vs JSON-LD, hero-image pairing with Article, and the breakages we see most often.

Jacque Bichara
Jacque Bichara
Founder & Lead Strategist, Capconvert
May 20, 2026Updated May 20, 202610 min read Reviewed by {{REVIEWER_NAME}}, {{REVIEWER_CREDENTIAL}} on May 20, 2026
Who this is for Stock photo sites, photographers, news publishers, and anyone whose images are searched for and reused, who wants the licensing badge in Google Images and proper attribution credit.
TL;DR
  • ImageObject is a dual-purpose schema: standalone image licensing rich result in Google Images, AND the hero/inline image record for an Article / Recipe / Product / VideoObject @graph.
  • Required for the licensing badge: contentUrl, license, acquireLicensePage. Recommended floor: creator, creditText, copyrightNotice, copyrightYear.
  • Two delivery channels: JSON-LD (this guide) or IPTC photo metadata embedded in the JPG. Google reads both; JSON-LD is more reliable.
  • Hero image pairing: in Article / BlogPosting / Recipe / Product graphs, include a separate ImageObject and reference it from the parent record's image property.
  • Licensing requires acquireLicensePage - a public URL where someone can buy or request the license. Without it, the badge doesn't fire.

Chapter 1. Before you start

ImageObject earns its keep two ways. First, the image licensing rich result - a "Licensable" badge in Google Images alongside the image, with a clickable link to your acquireLicensePage. Critical for stock photographers, news photo agencies, and any rights-holder. Second, as the canonical record for hero images and inline images inside an Article / Recipe / Product graph, where it carries the attribution and copyright info Google uses to credit the image's creator.

  • Decide if you're shipping the licensing rich result. If yes, you need license + acquireLicensePage. If no (just attribution in Article context), those are optional.
  • Confirm the image is your own or you have rights to ship its metadata. Don't ship ImageObject for images you license-in from others - their licensing badge takes precedence.
  • Pull the canonical license URL. Common options: Creative Commons URLs, your own terms-of-use page, or a specific stock-licensing URL.
  • Generate the acquireLicensePage. A simple URL on your site explaining how someone can license the image.

Chapter 2. What does ImageObject schema actually do for SEO + AI search?

  1. Image licensing badge in Google Images. A "Licensable" tag appears next to the image, plus a clickable acquireLicensePage link. The badge has been live since 2020 and is the only way to monetize image discovery through Google.
  2. Image attribution preservation. When Google surfaces your image in any rich result (Article hero, Recipe thumbnail, Product carousel), it can carry your creditText as the credit line.
  3. Knowledge Graph image canonicalization. ImageObject with creator + copyrightNotice ties the image to your Organization or Person entity in Google's Knowledge Graph.
  4. AI engine image citation. ChatGPT, Perplexity, and Gemini cite ImageObject-marked images with the correct attribution when generating answers that include visual content.

Chapter 3. Required and recommended properties

{
  "@context": "https://schema.org",
  "@type": "ImageObject",
  "@id": "https://www.example.com/photos/chicago-skyline.jpg#imageobject",
  "contentUrl": "https://www.example.com/photos/chicago-skyline.jpg",
  "name": "Chicago skyline at dusk from Lake Michigan",
  "description": "Wide shot of the Chicago skyline at golden hour, photographed from a boat on Lake Michigan in October 2025.",
  "creator": {
    "@type": "Person",
    "name": "Jane Doe"
  },
  "creditText": "Jane Doe / Example Photo",
  "copyrightNotice": "© 2025 Example Photo, Inc.",
  "copyrightYear": "2025",
  "license": "https://creativecommons.org/licenses/by-sa/4.0/",
  "acquireLicensePage": "https://www.example.com/photos/chicago-skyline.jpg/license",
  "width": "4000",
  "height": "2667",
  "encodingFormat": "image/jpeg"
}

The four licensing properties (license, acquireLicensePage, creditText, copyrightNotice) together unlock the licensing badge. Missing any one of them weakens the result; missing acquireLicensePage entirely disables the badge.

Chapter 4. IPTC photo metadata vs JSON-LD

Google reads image licensing data from two sources:

JSON-LD (on the page)IPTC (embedded in the JPG)
Where<script type="application/ld+json">EXIF/XMP metadata inside the file
CrawlableYes, on the HTML pageYes, but only when Google fetches the image binary
PersistenceLives on the page; vanishes if user copies image without pageTravels with the file even after copy
ReliabilityHighMedium - some pipelines strip metadata
Update frictionEdit one pageRe-process the binary, re-upload
RecommendationAlwaysBoth, if budget allows

For most publishers, JSON-LD is the practical primary channel. Stock photo agencies and image-first publishers should ship both - the IPTC version protects attribution after the file leaves your site.

Chapter 5. Pairing ImageObject with Article hero images

Inside a BlogPosting / Article / Recipe / Product graph, the parent record has an image property. Best practice: have it reference a separate full ImageObject by @id rather than just dropping the URL.

{
  "@graph": [
    {
      "@type": "BlogPosting",
      "image": [
        "https://www.example.com/posts/chicago-skyline-story/hero-1x1.jpg",
        "https://www.example.com/posts/chicago-skyline-story/hero-4x3.jpg",
        "https://www.example.com/posts/chicago-skyline-story/hero-16x9.jpg"
      ],
      ...
    },
    {
      "@type": "ImageObject",
      "@id": "https://www.example.com/posts/chicago-skyline-story#hero-image",
      "contentUrl": "https://www.example.com/posts/chicago-skyline-story/hero-16x9.jpg",
      "creator": { "@id": "https://www.example.com/#organization" },
      "creditText": "Example Brand Photo",
      "copyrightNotice": "© 2026 Example Brand"
    }
  ]
}

This pattern is what our existing schema-post how-tos already use (look at the @graph in any of the schema posts). The Article carries multiple image URLs for different aspect ratios; the ImageObject carries the licensing/attribution data once.

Chapter 6. Where do you place ImageObject schema on the site?

For licensable images: on the page that hosts the image (could be a dedicated image detail page, a stock photo listing, or an article that includes the image). For Article hero images: inside the Article's @graph as a separate node.

One ImageObject per unique image. If you have multiple aspect ratios of the same image (1x1, 4x3, 16x9), pick the canonical one (typically 16x9 for hero use) and ship that as the ImageObject. The other aspect ratios stay as plain URLs in the parent record's image array.

Chapter 7. The breakages we see most often

Ranked by frequency across 26 image-publishing site audits:

  • No acquireLicensePage, disabling the licensing badge entirely. 17 of 26.
  • No creditText, so the rich result has no credit line. 13 of 26.
  • License URL not resolvable (typo, 404, redirected to a generic terms page). 9 of 26.
  • ImageObject schema on stock photos the site doesn't own. Policy violation. 7 of 26.
  • IPTC metadata stripped by the CMS image pipeline, even though JSON-LD is correct. 5 of 26.
  • contentUrl pointing at the page URL instead of the image URL. 3 of 26.

We track these on running sites through our Sentry structured-data rule set.

FAQ

Do I need ImageObject schema for every image on my site?

No. Just images you want to license, claim attribution for, or use as the canonical hero of an Article. Most inline images in body copy don't need their own ImageObject record - the parent Article's image property is sufficient.

What if I'm using Creative Commons licensed photos from other photographers?

Don't ship ImageObject claiming you're the creator. Either omit the schema entirely (Google reads CC license from common metadata patterns) or ship ImageObject with the correct creator (the original photographer) and license (the CC URL). Misrepresenting authorship triggers manual actions.

Can I use a stock photo from Shutterstock with my own ImageObject?

No. Shutterstock owns the licensing rich result for those images. Shipping ImageObject claiming you own it is a policy violation. License the photo, embed it, and reference the source.

What's the right license URL for "all rights reserved" / commercial-only?

Either a URL to your own terms-of-use page that describes the license, or the IPTC standard rights-reserved URL. Don't use a CC URL if your license isn't Creative Commons - that's a misrepresentation.

How does ImageObject relate to the Open Graph image tag?

Different surface. Open Graph (<meta property="og:image">) drives social sharing previews. ImageObject in JSON-LD drives Google's licensing rich result. They can point at the same file but they're not interchangeable - ship both.

Will ImageObject improve my image SEO ranking?

Marginally for organic ranking, significantly for the licensing rich result. The main image SEO levers remain: descriptive filename, alt text, image XML sitemap, fast page load, relevant surrounding text. ImageObject schema is a top-of-funnel attribution / monetization play, not a primary ranking factor.

References

  1. Schema.org. "ImageObject." schema.org/ImageObject
  2. Google Search Central. "Image license metadata structured data." developers.google.com/search/docs/appearance/structured-data/image-license-metadata
  3. IPTC. "Photo Metadata standard." iptc.org/standards/photo-metadata
  4. Google Search Central. "Image SEO best practices." developers.google.com/search/docs/appearance/google-images
  5. Creative Commons. "About the licenses." creativecommons.org/licenses
  6. Schema.org. "Schema Markup Validator." validator.schema.org