ImageObject Schema — Image Metadata for Google Images
ImageObject tells Google who made an image, how to credit it, and how it can be used. Google Images can show those details and a Licensable badge.
Generate ImageObject JSON-LDWhy image markup does nothing
- The markup has a file URL but no creator, credit, copyright, or license, so Google has nothing to show.
- url points at the web page instead of the image file. Google reads url as the image URL.
- The license property is missing, so the image can’t get the Licensable badge.
- The image appears on several pages, but only one of them has the markup.
How SwiftSchema helps
The generator asks for the image file URL and the four rights properties Google reads: creator, credit text, copyright notice, and license, plus the page where people can license the image.
It warns you when none of the four is filled in, because Google needs at least one of them.
What is ImageObject schema?
ImageObject is the schema.org type for an image file. It can carry the file's URL, a caption, its size and format, and rights details such as the creator and license.
Google uses it for image metadata in Google Images. Google's documentation says that when you specify image metadata, "Google Images can show more details about the image, such as who the creator is, how people can use an image, and credit information." A license URL can make the image eligible for the Licensable badge, which links to the license.
What Google requires
| Property | Required? | Notes |
|---|---|---|
contentUrl | Yes | The URL of the image file. Google uses it to decide which image the metadata applies to. url works as a fallback, but Google recommends contentUrl. |
creator, creditText, copyrightNotice, or license | At least one | Once you include one, the Rich Results Test lists the other three as recommended. |
license | Recommended | A URL to the license terms, such as your terms page or a Creative Commons license. Required for the Licensable badge. |
acquireLicensePage | Recommended | A page that explains how to license the image, such as a checkout or contact page. |
creator | Recommended | A Person or Organization with a name, usually the photographer. |
creditText | Recommended | The name credited when the image is published. |
copyrightNotice | Recommended | Who owns the copyright, such as "© 2026 Jane Doe". |
caption, width, height, encodingFormat, and representativeOfPage are valid schema.org properties. Google's image metadata documentation doesn't use them, so add them for other consumers, not for Google Images.
Structured data or IPTC metadata
Google accepts image metadata in two forms, and you only need one:
- Structured data links the image to the page it's on. Google says to add it "for every instance an image is used, even if it's the same image."
- IPTC photo metadata is embedded in the image file, so it moves with the image from page to page. Photo editing and asset management tools can write it.
For a page that only needs licensing markup, the image license guide walks through the same properties with a licensing focus.
How to build it here
- 01
Paste the image file URL as Content URL.
- 02
Add the license URL and, if you have one, the page where people can license the image.
- 03
Add the credit text, the copyright notice, and the creator’s name.
- 04
Copy the JSON-LD into each page that shows the image.
- 05
Test the page in Google’s Rich Results Test, as Google recommends.
Ready to build the markup?
One block per image, on every page it appears.
The generator emits contentUrl, url, caption, license, acquireLicensePage, creditText, copyrightNotice, creator, and datePublished. Empty fields are left out. For width, height, or encodingFormat, start from the second example.
Common mistakes
- Only a file URL. Add at least one of creator, credit text, copyright notice, or license.
urlset to the page. Google treatsurlas the image URL. UsecontentUrlfor the file.- Markup on one page only when the image appears on several. Google needs it on each page.
- Pages Google can't reach. Google asks that pages with images need no login and aren't blocked by robots.txt.
Required properties
contentUrlcreator, creditText, copyrightNotice, or license (at least one)
Recommended properties
license (needed for the Licensable badge)acquireLicensePagecreatorcreditTextcopyrightNoticecaptionwidthheightencodingFormat
{
"@context": "https://schema.org",
"@type": "ImageObject",
"contentUrl": "https://www.example.com/photos/lemon-garlic-chicken-1600.jpg",
"license": "https://www.example.com/image-license",
"acquireLicensePage": "https://www.example.com/license-this-photo",
"creditText": "Northstar Kitchen",
"creator": {
"@type": "Person",
"name": "Jane Doe"
},
"copyrightNotice": "© 2026 Jane Doe"
}{
"@context": "https://schema.org",
"@type": "ImageObject",
"contentUrl": "https://www.example.com/photos/trailhead-sunrise.webp",
"license": "https://creativecommons.org/licenses/by-nc/4.0/",
"creditText": "Photo: Sam Lee",
"creator": {
"@type": "Person",
"name": "Sam Lee"
},
"caption": "Sunrise over the north trailhead in October",
"width": 1600,
"height": 900,
"encodingFormat": "image/webp"
}[
{
"@context": "https://schema.org",
"@type": "ImageObject",
"contentUrl": "https://www.example.com/photos/step-1.jpg",
"creator": {
"@type": "Organization",
"name": "Northstar Kitchen"
},
"license": "https://www.example.com/image-license"
},
{
"@context": "https://schema.org",
"@type": "ImageObject",
"contentUrl": "https://www.example.com/photos/step-2.jpg",
"creator": {
"@type": "Organization",
"name": "Northstar Kitchen"
},
"license": "https://www.example.com/image-license"
}
]FAQs
Which ImageObject properties does Google require?ShowHide
For image metadata in Google Images: contentUrl, plus at least one of creator, creditText, copyrightNotice, or license. Once you have one of the four, the Rich Results Test lists the other three as recommended.
What's the difference between url and contentUrl?ShowHide
contentUrl is the URL of the image file itself, and Google uses it to decide which image the metadata applies to. Google also accepts url for the image URL when contentUrl is missing, but says url is less precise and recommends contentUrl.
How do I get the Licensable badge?ShowHide
Add license, a URL to a page that describes the license, such as your terms or a Creative Commons license. Google recommends acquireLicensePage too: a page that explains how to license the image.
Do I need markup on every page that uses the image?ShowHide
Yes, for structured data. Google says to add it to each image on each page where it appears. The alternative is IPTC photo metadata embedded in the image file, which travels with the image.
Does Google use caption, width, or height?ShowHide
Not for image metadata: Google's documentation lists only contentUrl, creator, creditText, copyrightNotice, license, and acquireLicensePage. caption, width, height, and encodingFormat are valid schema.org properties that describe the image for other consumers.
Is alt text part of ImageObject?ShowHide
No. Alt text is the HTML alt attribute on the img element, which Google's image SEO best practices recommend. ImageObject has caption and description, which don't replace it.