What Shopify actually does with each field
Shopify stores three distinct pieces of metadata per product image, and they are consumed by different systems. Confusing them is the source of most bad advice.
| Field | Where it appears | Who reads it |
|---|---|---|
| Filename | The image CDN URL (cdn.shopify.com/.../navy-linen-shirt.jpg) | Google Images, crawlers, humans inspecting URLs |
| Alt text | The alt attribute in rendered HTML | Screen readers, Google Images, AI answer engines, shoppers on failed loads |
| Position | Gallery order; position 1 is the featured image | Collection grids, search results, cart line items, social share previews, marketplace feeds |
Position is the one merchants most often underestimate. The image at position 1 is not just the first thumbnail on the product page — it is the image Shopify hands to Google Shopping feeds, to the cart, to Open Graph tags for social shares, and to most third-party apps. One bad featured image degrades a dozen surfaces at once.
Renaming a file after upload does not change the CDN URL. Shopify assigns the URL at upload time. If you want a clean filename, it has to be correct on the file before it goes in — which is why filename discipline belongs upstream in your editing workflow, not in the admin.
Writing alt text that works for both screen readers and search
The two audiences for alt text want almost the same thing, which is convenient: a short, specific, literal description of what is in the frame. They diverge only at the edges.
A screen reader user wants to know what the image shows that the surrounding text does not. A search engine wants to match the image to a query. Both are served by describing the concrete visual attributes — type, colour, material, angle, context — and neither is served by keyword stuffing.
Weak alt text
- (empty)
- "product image"
- "IMG_4471"
- "buy navy shirt online cheap mens shirts sale linen shirt discount"
- "Photo of a shirt"
Strong alt text
- "Navy linen button-down shirt, front view on white background"
- "Navy linen shirt worn open over a white tee, three-quarter view"
- "Close-up of navy linen weave and mother-of-pearl button"
- "Navy linen shirt folded flat, showing chest pocket detail"
- "Size chart for men's linen shirts, chest 36 to 48 inches"
Notice that the strong examples differ from each other. Pasting the same alt text onto all eight images of a product is barely better than leaving them blank — it tells no system anything about which image is which. Each image in a gallery is a different piece of information, and the alt text should say what that piece is.
Practical constraints worth holding to:
- Under 125 characters. Some screen readers truncate around there, and longer strings read as spam.
- No "image of" or "photo of". Assistive technology already announces that it is an image; the prefix wastes the first two words.
- Include the product name once, in natural word order, not as a keyword block.
- Describe function for non-product images. A size chart's alt text should convey the information in the chart, not describe it as a table.
- Leave it empty for purely decorative images. An empty
alt=""tells a screen reader to skip it. That is correct behaviour, not a missing field.
Why alt text matters more in 2026 than it did in 2020
Image alt text used to be a modest image-search play and an accessibility obligation. Both still hold. What changed is that a third consumer arrived: AI answer engines and shopping agents that read pages rather than look at them.
When an LLM-backed assistant is asked to compare linen shirts, it is working from text. It does not open your product photo and inspect the weave. It reads the alt text, the surrounding copy, and any structured data. A catalogue with rich, specific alt text is legible to that system; a catalogue of empty alt attributes is a set of blank spaces where product attributes should be.
This is also the accessibility argument restated in commercial terms. The same field that keeps you compliant with WCAG's text-alternative requirement is the field that makes your catalogue readable to machines that increasingly stand between shoppers and stores. There is no trade-off to manage here — writing good alt text is a single action that serves compliance, image search, and agent visibility simultaneously.
For a deeper look at how automated shopping systems parse product listings, see our guide to product images for AI shopping agents.
Filenames: a small signal, cheaply won
Filenames are the least important of the three fields and the easiest to get right, which makes them worth a five-minute policy rather than an ongoing debate.
Shopify bakes the filename into the CDN URL at upload. A descriptive filename gives crawlers a second, independent hint about the image's subject, and it makes your own asset library navigable when you are hunting for the hero shot of a product from two seasons ago.
[product-handle]-[variant]-[shot-type].jpg — for example navy-linen-shirt-medium-front.jpg, navy-linen-shirt-medium-detail-cuff.jpg. Lowercase, hyphens between words, no spaces, no underscores, no version suffixes.
What to avoid: spaces (which become %20 in URLs), camera-default names, version markers like _final_v3, and dates that will be meaningless in a year. And do not stuff keywords — cheap-shirt-buy-linen-shirt-mens-shirt.jpg reads exactly as spammy in a URL as it does in alt text.
The realistic obstacle is not knowing the convention, it is enforcing it. Filenames get mangled every time a file passes through an editor, a shared drive, or an email attachment. That is a workflow problem, covered below.
Gallery position: the field with the largest conversion effect
If you only fix one of the three fields, fix position. Alt text is a visibility play with a long feedback loop. Position changes what a shopper sees in the first half-second, on every surface where your product appears.
A workable default sequence for most physical products:
Two rules matter more than the exact ordering. First, position 1 should be consistent across your catalogue — if half your collection page shows white-background packshots and half shows lifestyle crops, the grid looks incoherent and shoppers read the inconsistency as a quality signal. Second, position 1 must survive the shopper's smallest viewport: a hero shot with the product occupying 30% of the frame reads fine on a product page and disappears in a mobile collection thumbnail.
Variant images are a related trap. If a variant has no image assigned, Shopify falls back to position 1 — so a shopper selecting "sage green" may still be looking at the navy photo. Our guide to variant and swatch images covers that in detail, and gallery order and sequence goes deeper on ordering strategy.
The real problem: metadata gets lost between systems
Most merchants know all of the above. The reason their catalogues still have empty alt text is not ignorance — it is that the metadata and the pixels travel separately.
The typical path: export images from Shopify or a shoot, send them to a retoucher or an editing tool, get files back with new names, re-upload through the admin, and re-enter alt text by hand. Every hop is a place where filename convention breaks and alt text is simply never carried across, because the editing step has no concept of it.
Disconnected workflow
- Export or shoot, then hand off files
- Editor returns
IMG_4471_final_v3.jpg - Re-upload through the admin
- Alt text typed by hand, or skipped
- Position re-sorted manually per product
- Metadata quality decays with catalogue size
Connected workflow
- Pick the product from the connected store
- Edit the image in place
- Push back with filename, alt text and position set together
- No manual re-upload step
- Convention applied consistently by default
- Quality holds as the catalogue grows
This is the gap Retouchable's Shopify integration is built to close. A merchant connects their store, browses or searches their real products from inside the tool, and when an edited image is pushed back to a product, the filename, alt text, and gallery position are set as part of the same action. The metadata is not a separate chore performed later in the admin — it is part of publishing the image.
Whatever tooling you use, the principle holds: metadata written at the moment of publishing survives; metadata that requires a second pass through the admin does not. If your current process has a "go back and fill in the alt text" step, assume that step is not happening.
An audit you can run this week
Before changing process, find out how bad the current state is. This takes under an hour for most catalogues.
- Export your products CSV from Shopify admin (Products → Export). The export includes an
Image Alt Textcolumn andImage Position. - Count the blanks. Sort by the alt text column and count empty cells as a percentage of total image rows. This is your baseline. Most unaudited catalogues land between 70% and 95% empty.
- Count the duplicates. Look for the same alt text repeated across every image of a product. These are technically filled and functionally empty.
- Spot-check position 1. Open your three largest collection pages and look at the grid, not the product pages. Inconsistent framing, mixed backgrounds, and products too small to read at thumbnail size are all position-1 problems.
- Scan filenames in the
Image Srccolumn for camera defaults and version suffixes. You cannot retroactively fix these without re-uploading, so treat this as a forward-looking policy rather than a cleanup project.
Work highest-traffic products first, not alphabetically. Twenty products usually carry most of a store's sessions, and fixing those twenty properly beats a thin pass across the whole catalogue. Then set the convention for everything new so the backlog stops growing while you work through it.
Set a realistic target. Alt text on every image of your top 50 products, a consistent position-1 standard across all collections, and a filename convention applied to everything uploaded from today forward is a month of intermittent work and a permanent improvement. For the broader technical picture, see our Shopify product image optimization guide.