CatalogScan

SEO Guide · 2026

Shopify Product Image Alt Text for AI Agents: What Crawlers Read When They Can't See Your Photos

AI shopping agents don't download your product images — they read the alt text. Shopify's default alt text (product title on every image) tells crawlers nothing about what each photo shows. Here's how to write alt text that makes your catalog readable to AI.

TL;DR AI crawlers (GPTBot, PerplexityBot, ClaudeBot) read alt text as their primary image descriptor because they don't process images visually. Shopify defaults to the product title for all images — identical alt text on every photo. Fix: write unique, descriptive alt text per image in Shopify admin, or use the Admin API for bulk updates. Add ImageObject JSON-LD with contentUrl and description for the primary product image to reinforce the signal in structured data.

How AI shopping agents interact with product images

There are two types of AI crawler behavior toward images:

Crawler typeImage processingAlt text importanceExamples
HTML-only crawlers Reads image URL and alt text from HTML; does not download or analyze image Critical — alt text is the only image signal GPTBot, PerplexityBot, ClaudeBot, most AI shopping crawlers
Multimodal crawlers Downloads and visually analyzes images High — alt text used as confirmation + fallback Google Shopping Bot (Googlebot-Image), Bing visual crawler
Feed-based agents Reads image_link from Google Merchant Center / Meta Product Feed Medium — alt text from feed title field Google Shopping Ads, Meta Advantage+ Shopping

For the majority of AI shopping agents, alt text is the complete image signal. A product with five images all carrying alt text "Wool Sweater" provides no more image information than a product with one image.

What Shopify does with alt text by default

Shopify's default alt text behavior depends on whether you've set it explicitly:

The practical result: AI agents see the product name once (from the primary image), then nothing for all subsequent gallery images. The angle, detail, scale, context, and use-case information conveyed by those photos is completely invisible.

Alt text quality guide: what to write for each image type

Image typePoor alt text (default)Good alt text for AI agents
Primary product shot Merino Wool Crew Sweater Merino wool crew neck sweater in Navy, front view, showing ribbed collar and cuffs
Back view Merino Wool Crew Sweater (or empty) Merino wool crew neck sweater back view showing seam construction and shoulder width
Detail shot Merino Wool Crew Sweater (or empty) Close-up of 100% merino wool texture and ribbed collar edge on Navy crew sweater
Lifestyle / on-model Merino Wool Crew Sweater (or empty) Male model wearing Navy merino crew sweater with chinos, showing fit on 6ft 180lb frame
Size/scale reference Merino Wool Crew Sweater (or empty) Merino crew sweater folded next to ruler showing 28-inch length (size Large)
Variant color Blue / M (or empty) Merino wool crew sweater in Forest Green colorway, front view

ImageObject JSON-LD: reinforce alt text with structured data

Beyond the HTML alt attribute, add an ImageObject block inside your Product JSON-LD to give AI agents a structured image descriptor that survives HTML parsing issues:


{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "{{ product.title | escape }}",
  "image": [
    {
      "@type": "ImageObject",
      "contentUrl": "{{ product.featured_image | img_url: 'master' }}",
      "description": "{{ product.featured_image.alt | escape }}",
      "width": 1200,
      "height": 1200
    }
    {% for image in product.images offset: 1 %}
    ,{
      "@type": "ImageObject",
      "contentUrl": "{{ image | img_url: 'master' }}",
      "description": "{{ image.alt | escape }}"
    }
    {% endfor %}
  ]
}

The description field in ImageObject is read by AI agents as a richer image description than the HTML alt attribute alone. It accepts longer text (up to ~500 characters) where alt text is conventionally kept under 125 characters.

How to update alt text at scale

Option 1: Shopify Admin API (programmatic, unlimited scale)

# Update alt text for a specific product image via Shopify Admin REST API
# Requires read_products + write_products scope
curl -X PUT \
  "https://YOUR_SHOP.myshopify.com/admin/api/2024-01/products/PRODUCT_ID/images/IMAGE_ID.json" \
  -H "X-Shopify-Access-Token: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"image":{"id":IMAGE_ID,"alt":"Merino wool crew neck sweater in Navy, front view"}}'

# For bulk: export product images CSV via Shopify admin > Products > Export,
# update the "Image Alt Text" column, then reimport.

Option 2: Shopify CSV import/export

Shopify's native product CSV export includes an "Image Alt Text" column. Export all products, fill in alt text in a spreadsheet, and re-import. Shopify will update only the alt text field without touching other product data.

Option 3: Shopify apps

Apps including TinyIMG, SEO Manager, and Booster SEO offer bulk alt text management with templates (e.g., automatically generate "{{product_title}} - {{variant_title}} - {{position}} view"). These are useful for large catalogs but tend to produce formulaic alt text — acceptable for coverage, less ideal for AI agent signal quality.

Alt text anti-patterns that hurt AI agent signals

Anti-patternExampleWhy it hurts
Keyword stuffing "buy wool sweater cheap wool sweater online sweater sale" AI agents detect keyword spam; degrades overall page trust score
Identical alt text All 6 images: "Wool Crew Sweater" Zero incremental signal from images 2–6; wasted opportunity
File name as alt text "img_4827_final_v2_USE_THIS.jpg" Meaningless to crawlers; signals low-quality catalog management
Empty alt on product images alt="" HTML convention for decorative images; tells crawlers this image is not content — wrong for product photos
Alt text longer than ~125 chars Full product description in alt text Gets truncated in many contexts; use ImageObject.description for long descriptors

Frequently asked questions

Do AI shopping agents actually read image alt text?

Yes, in two ways. AI crawlers that don't execute JavaScript and don't download images read alt text as the primary descriptor of what an image shows — this is true for GPTBot, PerplexityBot, and ClaudeBot. Even AI crawlers with image processing capability use alt text as a confirmation signal and fallback when image analysis fails. A product image with no alt text is invisible to these crawlers — they know an image exists but cannot describe it.

What does Shopify use as alt text if I don't set it?

Shopify uses the product title as the default alt text for the primary product image. For variant images, Shopify may use the variant title or leave the field empty. The product-title-as-alt-text approach gives AI agents no information about what each image actually depicts — every image carries the same description. Each image should have unique, descriptive alt text reflecting what that specific photo shows.

How do I set alt text for Shopify product images at scale?

For individual products: Shopify admin > Products > Media > pencil icon on each image. For bulk updates: (1) Use the Shopify Admin API PUT /admin/api/2024-01/products/{id}/images/{image_id}.json with the alt field. (2) Export products CSV, update the "Image Alt Text" column, reimport. (3) Use a Shopify app like TinyIMG or SEO Manager for bulk template-based alt text generation.

Should product image alt text be different from the product description?

Yes, because they serve different purposes. Product description explains what the product is and why it's valuable. Alt text describes what a specific image shows — angle, detail, context. For a running shoe, alt text should describe "Side profile of the React foam midsole and Flyknit upper" — not just "running shoe." Avoid keyword stuffing; AI agents recognize it and it degrades trust signals.

Check your Shopify catalog's image signal quality

CatalogScan checks alt text coverage, ImageObject JSON-LD, and 16 other AI-agent-critical signals in 2 minutes.

Scan your store free