
How to Add Alt Text to Shopify Product Images: 4 Methods (Manual + Bulk + AI)
Missing or unhelpful text alternatives can stop a customer from understanding a product image. Shopify supports image alt-text metadata, and merchants can use admin, supported bulk workflows, theme rendering, or reviewed AI-assisted candidates depending on current platform and plan capabilities. This guide covers practical options and the verification each one still needs.
Why alt text matters — three layers
1. Accessibility (the original purpose)
Screen readers — JAWS, NVDA, VoiceOver, TalkBack — convert on-screen content to synthesized speech for blind and low-vision users. When a screen reader encounters <img> without an alt attribute, it announces "image" or reads the filename. When it encounters <img alt="">, it skips silently. When it encounters <img alt="Navy linen wide-leg trousers">, it announces the description as if it were the visual content.
For ecommerce specifically, missing alt text on product photos is functionally a denial of access — the screen-reader user cannot tell what they are buying.
2. ADA + EAA legal exposure
Missing text alternatives are machine-testable in many cases and may appear in accessibility complaints or evaluations. An automated result is a technical finding, not a legal conclusion; it also cannot judge whether existing alt text conveys equivalent meaning.
The DOJ's 2024 web rule applies to state and local governments under ADA Title II; it does not create a technical standard for private ecommerce under Title III. Robles v. Domino's Pizza addressed a website and app alleged to impede access to a physical restaurant's goods and services in the Ninth Circuit, so it should not be generalized into a nationwide rule for every online store. EU and member-state obligations also depend on scope, implementation, exemptions, and the service offered. Use WCAG as a technical baseline and obtain qualified advice for legal applicability.
3. SEO + AI shopping discovery
Google Image Search uses alt text alongside the surrounding HTML, file name, and structured-data Product schema to understand what an image depicts. ChatGPT, Perplexity, and Google's AI Overview shopping experiences increasingly rely on this same alt-text layer when extracting product details for shopping queries.
Descriptive alt text can improve the information available to customers and search systems, but it does not by itself establish accessibility conformance or guarantee discovery.
What "good alt text" looks like
The W3C's alt-text decision tree breaks images into four categories:
- Functional: describes the function, not the visual. A magnifying-glass icon button →
alt="Open search", notalt="magnifying glass". - Informative product photo: describes the product. →
alt="Navy linen wide-leg trousers, model wearing size M". - Decorative: adds no information beyond visual flourish. →
alt=""(empty, intentional). Screen readers skip silently. - Complex: charts, infographics, sizing guides need a longer description in adjacent text plus a short alt.
For Shopify product images specifically:
- Include the product name + a visually-distinguishing detail.
- Avoid filler ("image of...", "photo of...") — screen readers already announce that it is an image.
- Avoid stuffing keywords for SEO — Google penalizes this and screen-reader users get a worse experience.
- Match length to purpose and complexity; concise text is useful, but there is no universal word-count rule.
Method 1 — Per-image, in the Shopify admin
Best for: small catalogs, one-off image updates, the merchant editing manually.
- Log in to Shopify admin.
- Open Products → click the product → scroll to Media.
- Click the image. The image preview opens.
- Click Edit alt text (button under the image).
- Type the alt text. Save.
Shopify stores alt-text metadata for product media, but a custom theme or app must still render the value correctly. Inspect the published HTML. For programmatic updates, use Shopify's current Admin GraphQL documentation and supported media mutations rather than relying on a mutation name copied from an older article.
Method 2 — Bulk via Shopify Products CSV
Best for: catalogs of 50+ products, one-time backfill, no app installs.
- Shopify admin → Products → Export. Choose "All products" + "Plain CSV file for Excel, Numbers, etc."
- Open the CSV. The column you want is
Image Alt Text(column AC in the standard export, may shift in future Shopify schema changes). - Edit the alt-text column. Tip: use a spreadsheet formula like
="Navy "&B2&", model wearing size M"to template alt text from the existing product title column. - Save the CSV.
- Shopify admin → Products → Import. Choose the edited CSV and check "Overwrite any current products that have the same handle".
- Shopify processes the import; alt text updates on every image with a matching
Image PositionandHandle.
For a large catalog, confirm current Shopify limits and behavior, test a small reversible batch, preserve identifiers, and verify both admin metadata and published output before scaling the import.
Method 3 — Bulk via Matrixify (third-party app)
Best for: catalogs that need capabilities beyond the current native workflow, after reviewing the app's present fields, permissions, pricing, and rollback behavior.
Matrixify is one third-party option. Verify its current documentation, supported media and locale fields, import matching rules, pricing, and trial availability before using it. Run a small reversible test and review generated or templated descriptions rather than assuming its workflow matches Shopify's native import.
Method 4 — Reviewed AI-assisted candidates (AccessComply)
Best for: eligible supported content paths where a merchant can review description candidates before an approved write.
AccessComply can report eligible automated image findings on public pages and states it reaches. When a supported Shopify content path and current plan entitlement apply, it may generate a description candidate for merchant review, apply an approved change, record the affected value where supported, and run a post-change check. It does not guarantee that every image was reached, that generated text is accurate, or that a technical record proves legal compliance. Decorative intent, functional purpose, complex images, localization, and app-owned output still require human or vendor review.
The Liquid template — what your theme should be doing
A product-image template commonly passes through reviewed media alt text. Inspect the installed theme and adapt the following illustrative pattern:
{% assign image = product.featured_image %}
<img
src="{{ image | image_url: width: 800 }}"
alt="{{ image.alt | escape | default: product.title }}"
width="{{ image.width }}"
height="{{ image.height }}"
loading="lazy"
decoding="async">
The key line is alt="{{ image.alt | escape | default: product.title }}". This:
- Reads the alt text from the image record.
- Escapes any HTML to prevent XSS.
- Shows a product-title fallback as a candidate only; it still needs review and may duplicate nearby text or fail to describe the image.
If a meaningful image is rendered with an empty or missing alternative, stored admin text alone does not solve the customer barrier. AccessComply may report the reached-page finding and, when the first-party source is safely mapped, propose a merchant-approved change through a supported theme path. App-owned markup and ambiguous image purpose require manual or vendor review.
Common alt-text mistakes on Shopify
- Filename as alt text:
alt="IMG_4567.JPG"— happens when the theme falls back to the file name. Always set explicit alt text. - Keyword stuffing:
alt="navy trousers buy navy trousers cheap navy trousers Shopify"— it is unhelpful for screen-reader users and should not replace an equivalent description. - Repeating the product title verbatim: technically valid but adds no information for screen-reader users beyond what the surrounding HTML already provides. Add a visually-distinguishing detail.
alt="image"oralt="photo": zero information — equivalent to no alt text from the screen-reader user's perspective.- Different alt text on every variant of the same product: typically wrong unless the variants visually differ. Use the product-level alt text and let variants inherit unless visually different.
- Decorative-image alt text: spacer GIFs, ornamental flourishes, and brand-mark icons next to a labeled link should use
alt="", not a description. Screen readers skip silently.
Quick checklist
- Every product's featured image has alt text describing the product.
- Variant-specific images that look different from the master have variant-specific alt text.
- Decorative images (background flourishes, spacer GIFs, ornamental icons) use
alt="". - Functional images (icon-only buttons) use
aria-labelon the button +aria-hidden="true"on the inner SVG. - Theme
<img>tags readimage.altnot hardcoded strings. - The accessibility statement on
/pages/accessibility-statementdocuments the alt-text remediation effort.
Verify your work — free scan
Run a free public AccessComply scan to sample eligible automated image findings across public, discoverable pages and states it reaches, subject to crawler safety and time limits. It does not guarantee every image or state was reached. Check the pricing page for current scan, remediation, and AI-assisted entitlements, then manually review descriptions and the published storefront.
Further reading
- W3C — Alt text decision tree
- WCAG 2.1 SC 1.1.1 Non-text Content
- WCAG glossary — alt text
- WCAG glossary — empty alt attribute
- Shopify Help — Add alt text to product images
- Shopify GraphQL — productMedia mutation reference
- AccessComply — Why accessibility overlays don't work
- AccessComply — How to fix accessibility issues on Shopify
- AccessComply — WCAG 2.1 AA checklist for Shopify
Find the storefront issues holding back growth
Scan SEO, speed, and accessibility by page. Review supported fixes before they run, keep saved originals, and verify the live result afterward.