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.
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 type | Image processing | Alt text importance | Examples |
|---|---|---|---|
| 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:
- Primary product image: Uses the product title if no alt text is set (e.g., "Merino Wool Crew Sweater").
- Secondary/gallery images: Often empty (
alt="") unless explicitly set. - Variant images: Often empty or uses variant title (e.g., "Blue / M").
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 type | Poor 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-pattern | Example | Why 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