Loading...

AI & Agentic Commerce Conversion Rate Optimization

Generate Alt Text at Scale With an LLM

Generate alt text at scale with an LLM: accessibility, SEO, and agent-readability in one batch job. Prompt included.
← All 100 tips  ·  Tip 47 of 100  ·  54 days to Cyber Monday

Alt text on your Shopify product images is the rare job that serves three masters at once: shoppers using screen readers, Google Images, and the AI shopping agents that increasingly read your store instead of looking at it. It is also, on most stores, either empty or garbage. Open any product and check: the alt attribute is blank, or it is the filename (“IMG_4382-final-v2.jpg”), or someone from 2019 stuffed it with “buy cheap best hoodie sale free shipping”.

This used to be a defensible gap, because writing good alt text for 800 images was a week of mind-numbing work. It is not defensible anymore. A vision-capable LLM (ChatGPT, Claude, and Gemini all qualify) writes excellent alt text from the image itself, and it does not get bored on image 400. This is one of the cleanest batch jobs in all of AI-assisted ecommerce: well-defined input, well-defined output, easy to review, hard to get sued over.

What good alt text actually is

Describe what is visible, concisely, as if telling a friend on the phone what the photo shows. The W3C’s image tutorial is the canonical reference, and its rules happen to be exactly what search engines and shopping agents want too: no “image of” preamble, no keyword stuffing, the product named naturally, the details a buyer cares about (color, material, angle, context) actually mentioned. “Sage green linen shirt, back view, showing the box pleat” beats both the empty string and the spam string everywhere that alt text matters.

The prompt

Work product by product: paste or upload a product’s images together with its title, and let the model handle the whole set in one pass so repeated angles get distinct descriptions. Here is the prompt we use. It is ready to paste.

Copy-ready alt text prompt

Paste into any vision-capable LLM along with one product’s images.

You are writing alt text for ecommerce product images. Product: [PRODUCT TITLE], a [ONE-LINE DESCRIPTION, e.g. “women’s sage green linen shirt”]. I am attaching [N] images of this product. For each image, write one alt text line following these rules: 1. Describe only what is actually visible in the image. Never invent details. 2. 60 to 125 characters. One sentence fragment, no period needed. 3. Never start with “image of”, “photo of”, or “picture of”. 4. Name the product naturally once, using its real name, not a keyword list. 5. Include the details a shopper would want: color, material, angle or view (front, back, detail, worn), and context (on model, flat lay, in use). 6. When two images show similar views, make the descriptions distinct by what differs (angle, zoom, detail shown), never by numbering them. 7. Plain, human language. If you would not say it aloud to a friend, rewrite it. 8. If an image is a size chart, badge, or graphic rather than a photo, describe its information instead (“size chart for chest and length in cm”). Output a numbered list matching the image order, alt text only, no commentary. If any image is too unclear to describe honestly, output “NEEDS HUMAN” for that line instead of guessing.

The “NEEDS HUMAN” escape hatch matters. A model that must answer will hallucinate a pocket that is not there; give it permission to pass and review those by hand.

Getting it back into Shopify

For a small catalog, paste results straight into the media alt fields in the admin. For hundreds of products, export your products to CSV, work through them in batches, fill the image alt column, and re-import. Either way, spot-check ten products before you trust the batch: you are reviewing for invented details, not for style. An afternoon of this clears a debt most stores have carried for years, and every reader of your images, human, crawler, or agent, gets the benefit at once.

← All 100 tips  ·  Tomorrow, tip 48: a money leak on your store that has a number, and you have never looked at it.