contentLocation
contentLocation · Not mentioned by Google
Appears in
What is it?
contentLocation identifies the physical place depicted in a photograph or other creative work. It accepts a Place object with a name, geographic coordinates, or a full address. For photographs, it answers "where was this taken?" and gives search engines geographic context for image content.
Why this matters for AEO
When a user asks "photos of Yosemite Valley" or "pictures taken in Paris," an AI answer engine uses contentLocation to match photographs to geographic queries. This field provides structured geographic data that is more reliable than inferring location from file names, alt text, or surrounding page content.
What the specs say
Schema.org: Place. The location depicted or described in the content. For example, the location in a photograph or painting. schema.org/contentLocation
Google: Not mentioned. The field is not listed in Google's structured data documentation for image license metadata or Photograph.
How to find your value
- EXIF data — GPS coordinates embedded in the image file
- Photo caption — Location name mentioned in the caption
- Photo agency metadata — Location tags on the image detail page
- Photographer notes — Shoot location in project documentation
- Map data — Cross-reference landmarks visible in the image
Use the most specific location that accurately describes what appears in the photograph. A photo of the Eiffel Tower should use "Paris, France" or "Champ de Mars, Paris," not just "France."
Format and code
Type: Place (nested object)
Simple place name:
{
"@context": "https://schema.org",
"@type": "Photograph",
"name": "Yosemite Valley",
"contentUrl": "https://example.com/photos/yosemite.jpg",
"contentLocation": {
"@type": "Place",
"name": "Yosemite Valley, California"
}
}
Place with geographic coordinates:
{
"@context": "https://schema.org",
"@type": "Photograph",
"name": "Eiffel Tower at Sunset",
"contentUrl": "https://example.com/photos/eiffel-sunset.jpg",
"contentLocation": {
"@type": "Place",
"name": "Eiffel Tower, Paris, France",
"geo": {
"@type": "GeoCoordinates",
"latitude": 48.8584,
"longitude": 2.2945
}
}
}
Place with full address:
{
"@context": "https://schema.org",
"@type": "Photograph",
"name": "Brooklyn Bridge",
"contentUrl": "https://example.com/photos/brooklyn-bridge.jpg",
"contentLocation": {
"@type": "Place",
"name": "Brooklyn Bridge",
"address": {
"@type": "PostalAddress",
"addressLocality": "New York",
"addressRegion": "NY",
"addressCountry": "US"
}
}
}
At minimum, include @type and name. Adding geo coordinates strengthens geographic signals for location-based search and AI queries.
Webflow implementation
Static pages
Add the Photograph JSON-LD in Page Settings > Custom Code > Footer Code:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Photograph",
"name": "Yosemite Valley",
"contentUrl": "https://yoursite.com/photos/yosemite.jpg",
"contentLocation": {
"@type": "Place",
"name": "Yosemite Valley, California"
}
}
</script>
CMS template pages
Create a Plain Text field for location name (e.g., photo-location). For coordinates, add Number fields for latitude and longitude:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Photograph",
"name": "{{wf {"path":"name","type":"PlainText"} }}",
"contentUrl": "{{wf {"path":"photo","type":"PlainText"} }}",
"contentLocation": {
"@type": "Place",
"name": "{{wf {"path":"photo-location","type":"PlainText"} }}"
}
}
</script>
In Schema HQ
Field mapping pulls CMS location fields to a properly structured contentLocation Place object. If your collection includes latitude and longitude fields, Schema HQ nests them inside a GeoCoordinates object automatically.
Real examples
Schema.org Examples (source):
{
"@context": "https://schema.org",
"@type": "Photograph",
"name": "Yosemite Valley",
"contentUrl": "https://example.com/photos/yosemite.jpg",
"contentLocation": {
"@type": "Place",
"name": "Yosemite Valley, California"
}
}
Schemantra (source):
{
"@context": "https://schema.org",
"@type": "Photograph",
"name": "Eiffel Tower at Night",
"contentUrl": "https://example.com/photos/eiffel.jpg",
"contentLocation": {
"@type": "Place",
"name": "Paris, France"
},
"creator": {
"@type": "Person",
"name": "Photo Author"
}
}
Related fields
- copyrightNotice — who owns the copyright for the photograph
- creator — who created the photograph
- name — title of the photograph
- description — description of the photograph content
FAQ
Should contentLocation describe where the photo was taken or what it depicts?
Schema.org defines it as "the location depicted or described in the content." For most photographs, the location depicted and the shooting location are the same. If a photo of the Eiffel Tower was taken from a rooftop across the river, use "Eiffel Tower, Paris, France" as the location depicted, not the rooftop address.
Is contentLocation useful without Google rich result support?
Yes. AI answer engines and image search systems use geographic metadata to match photographs to location-based queries. Even without a Google rich result, contentLocation strengthens the geographic signal for your images in both traditional and AI-powered search.
Can contentLocation include multiple places?
Schema.org does not define contentLocation as accepting an array. For a photograph that depicts multiple distinct locations (rare in practice), use the primary or most prominent location. For a panorama spanning two cities, use the more recognizable one.