Technical Implementation

Shopify Product Images for AI Shopping Agents

How ChatGPT Shopping, Perplexity, Google AI Mode, and Meta AI read your Shopify product images — alt text requirements, JSON-LD image field specifications, dimension minimums, and CDN URL patterns.

TL;DR AI shopping agents care about three image signals: the JSON-LD image array URL (must be ≥600px, no CDN size-transform suffix), the og:image tag (used for social-style result cards), and alt text (entity consistency signal across all agents). Include 3–5 images in the JSON-LD image array — primary product shot first. Shopify's CDN handles format conversion automatically; your job is ensuring the right base URL goes into structured data.

How AI Agents Source Product Images

Each AI shopping agent accesses product images through a different pathway, which determines which image appears in results and what resolution is required.

Agent Primary image source Fallback source Minimum dimension
ChatGPT Shopping Bing Product Search index image field JSON-LD image[0]og:image 600×600 px
Perplexity Shopping Direct crawl — largest <img> inside product image container JSON-LD image[0] 400×400 px (practical minimum)
Google AI Mode Google Merchant Center feed image_link Google's product image index from Search Console 600×600 px (800×800 for apparel)
Meta AI og:image tag Largest crawlable image on page 600×315 px (1200×630 preferred)
Amazon Rufus Amazon product listing images (separate feed) Not sourced from Shopify N/A (separate Amazon requirements)

JSON-LD Image Field: The Structured Data Pathway

The image property in your Product JSON-LD is the most controllable image signal you have. When set correctly, it overrides whatever image the agent's crawler found in the DOM for structured-data-aware agents like ChatGPT Shopping.

Single image (minimum viable)

"image": "https://cdn.shopify.com/s/files/1/0000/0000/products/your-product.jpg"

Image array (recommended for AI agents)

"image": [
  "https://cdn.shopify.com/s/files/1/0000/0000/products/product-main.jpg",
  "https://cdn.shopify.com/s/files/1/0000/0000/products/product-lifestyle.jpg",
  "https://cdn.shopify.com/s/files/1/0000/0000/products/product-detail.jpg"
]

ImageObject (with dimensions specified)

"image": [
  {
    "@type": "ImageObject",
    "url": "https://cdn.shopify.com/s/files/1/0000/0000/products/product-main.jpg",
    "width": 2048,
    "height": 2048,
    "caption": "{{ product.title | json }}"
  }
]

Use the ImageObject form when you want to specify dimensions explicitly — useful for Google's structured data validation, which confirms the image meets size requirements without needing to fetch the file. The caption field is read by Google AI Mode for image entity matching and should match the product title.

Shopify Liquid implementation

{%- assign featured = product.featured_image -%}
"image": [
  {%- for image in product.images limit: 4 -%}
  {
    "@type": "ImageObject",
    "url": {{ image | img_url: 'master' | prepend: 'https:' | json }},
    "width": {{ image.width }},
    "height": {{ image.height }},
    "caption": {{ product.title | json }}
  }{% unless forloop.last %},{% endunless %}
  {%- endfor -%}
]

The key is img_url: 'master' — this outputs the original full-resolution URL without any CDN size transformation suffix. Never use img_url: '800x800' or similar in your JSON-LD image URLs.

Alt Text: Entity Consistency Signal

Alt text on product images is not a direct ranking factor for AI agent citations — agents don't sort products by alt text quality. However, alt text contributes to the entity consistency signal that agents use to determine citation confidence: when the image alt text, the product title, the JSON-LD name, and the page h1 all describe the same product consistently, agents assign higher confidence to the entity match.

Recommended alt text formula

[Brand] [Product Name] — [Primary Attribute or Use Case]

Examples:

Alt text in Shopify Liquid

{% comment %} In product image tag {% endcomment %}
<img
  src="{{ image | img_url: '800x800' }}"
  alt="{{ image.alt | default: product.title | escape }}"
  width="{{ image.width }}"
  height="{{ image.height }}"
  loading="lazy"
>

Shopify lets you set alt text per image in the product admin. When no alt text is set, image.alt falls back to the product title — which is an acceptable baseline but misses the opportunity to include variant-specific attributes for variant images.

Variant image alt text

For variant-specific images (color variant shots, size-specific images), include the variant option value in the alt text: "Patagonia Nano Puff Hoody — Men's insulated jacket in Cobalt Blue". This helps Google AI Mode's visual product graph match visual queries like "blue patagonia puffer" to the correct variant page.

Image Format and Dimension Requirements

Requirement Google AI Mode / Google Shopping ChatGPT Shopping / Bing Perplexity
Minimum dimensions 600×600 px (apparel: 800×800) 600×600 px ~400×400 px (practical)
Preferred dimensions 1000×1000 px or larger 1200×1200 px for featured placement 1000×1000 px
Accepted formats WebP, JPEG, PNG (no GIF) JPEG, PNG, WebP, GIF (static) Any format served by CDN
Watermarks / overlays Not allowed on primary image Discouraged on primary image No restriction
Background requirement White or transparent preferred for apparel/shoes No restriction No restriction
Max file size No hard limit in structured data; CDN URL must resolve No hard limit No hard limit

og:image for Social-Style AI Result Cards

Meta AI and some ChatGPT Shopping card formats pull from the og:image tag rather than the JSON-LD image array. Shopify's Dawn theme sets og:image to the first product image by default. The recommended dimensions for og:image are 1200×630 pixels (Facebook Open Graph standard) rather than the square format used for product image thumbnails.

For product pages, the square 1:1 product image is typically used as og:image even though it doesn't meet the 1200×630 recommendation — this is generally acceptable because AI agents displaying product cards prefer the square format anyway. The only case where a custom 1200×630 og:image is worth creating is for blog posts and landing pages that appear in AI agent link results.

<!-- In your product page Liquid template -->
<meta property="og:image" content="{{ product.featured_image | img_url: '1200x1200' | prepend: 'https:' }}">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="1200">
<meta property="og:image:alt" content="{{ product.title | escape }}">

Google Merchant Center Feed Image Requirements

Google AI Mode sources product images primarily from the Merchant Center feed rather than from structured data. The Merchant Center image_link attribute has stricter requirements than JSON-LD:

If your Merchant Center feed reports image fetch errors, the most common causes are: (1) the product image was deleted in Shopify admin but the old CDN URL was cached in the feed; (2) a Shopify app CDN proxy is rate-limiting the Google image crawler; (3) you've moved from Shopify CDN to a custom image CDN and the new URL requires authentication.

Image Optimization Checklist for AI Shopping Agents

# Check Priority
1 Primary product image is ≥1000×1000 px (minimum 600×600) Critical
2 JSON-LD image field uses base URL without CDN size-transform suffixes (_800x800) Critical
3 Liquid uses img_url: 'master' for JSON-LD image URLs Critical
4 JSON-LD image array includes 3–5 images (primary shot first) High
5 All product images have alt text set in Shopify admin (not relying on title fallback) High
6 Alt text follows [Brand] [Product Name] — [Attribute] formula High
7 og:image is set to a ≥1200×1200 px product image with explicit width/height meta tags Medium
8 Google Merchant Center feed has no image fetch errors in Diagnostics Medium
9 Variant images have variant-specific alt text (not just the parent product title) Medium
10 ImageObject in JSON-LD includes width, height, and caption fields Medium

Related Resources

Frequently Asked Questions

Does alt text on Shopify product images affect AI shopping agent citations?

Yes, but with different weight across agents. Google AI Mode uses alt text as an image entity signal when building the visual product graph. ChatGPT Shopping and Perplexity primarily rely on the JSON-LD image field URL rather than the alt attribute for product card images. However, alt text with the product title and brand name improves page-level entity consistency, which all agents use for citation confidence scoring.

What image format and dimensions should Shopify product images be for AI shopping agents?

Google AI Mode and ChatGPT Shopping both require the primary product image to be at least 600×600 pixels, preferring 1000×1000 or larger. WebP is the preferred format for performance, but JPEG is fully supported. The JSON-LD image field should reference the full-resolution image URL without Shopify's CDN size transformation parameters — use img_url: 'master' in Liquid.

How many images should appear in the JSON-LD image array for AI agents?

Include 3–5 images: the primary product shot (white background), at least one lifestyle/in-use shot, and one close-up detail shot. The first image in the array is treated as the canonical product image — ensure it's the clean product-on-white shot, not a lifestyle image.

Do Shopify CDN URLs cause problems for AI agent image indexing?

Shopify CDN URLs (cdn.shopify.com) are handled correctly by all major AI crawlers. The main issue is using size-transformed URLs in JSON-LD: a _200x200 thumbnail URL in your JSON-LD image field will fail Google's minimum dimension requirement. Always use the base image URL without size suffixes in JSON-LD — use img_url: 'master' in Liquid.

Check Your Product Image Structured Data Coverage

CatalogScan scans your product pages for JSON-LD image array coverage, og:image configuration, and Merchant Center image link health — and flags dimension and URL issues before they suppress your products from AI Shopping results.

Scan your store free