Guide · Shopify
Shopify alt text: where it lives, how to bulk edit it, and what to write
Last updated
General information, not legal advice. Laws differ by country; for your situation, ask a lawyer.
Alt text is the short description a screen reader reads out in place of an image. On a Shopify store it is mostly content, not code: you or your team type it into the admin. That makes it one of the few accessibility fixes you can do without a developer, and on a store with hundreds of products it is also one of the biggest jobs.
In our study of 5,463 EU Shopify home pages (public HTTP Archive crawl of
1 September 2026, mobile view, home pages only, automated checks only), 36.0% had at least one image without an
alt attribute. Automated checks can only see that alt text is missing. Whether it is useful, a person
has to judge.
In short
- Shopify keeps alt text in four places: product media, files, theme section images and collection images.
- For bulk editing product images, use the product CSV and its Image alt text column.
- Decorative images get an empty alt; images that carry information or are links get a description.
- Your theme decides whether the alt text you entered reaches the page. Check the output.
Where Shopify stores alt text
| Image | Where to edit | Bulk option |
|---|---|---|
| Product images and video | Products › product › click the media item › Add alt text | Yes: product CSV, column Image alt text |
| Files (images used in pages, blog posts, sections) | Content › Files › the file | No; you can filter files by alt text to find the empty ones |
| Theme section images (banners, slideshows) | Online Store › Themes › Customize › section › image › Edit | No |
| Collection images | Products › Collections › collection › image | No |
The product steps come from Shopify's help page on adding alt text to product media, which also gives the limits: up to 512 characters, 125 or fewer recommended. The media editor may suggest alt text for images that have none; read a suggestion before you accept it, because accepting it saves it to the file. Shopify's page on uploading and managing files notes that edits on the Files page apply everywhere the file is used. For banners and slideshows, see adding alternative text to your theme images.
Bulk editing product alt text with CSV
The admin's bulk editor is built for product fields such as price and inventory. For alt text, the reliable bulk route is the product CSV described in Shopify's guide to product CSV files. The file has one row per image, and the column Image alt text holds the description for that image.
- Back up first. Export all products as CSV and keep that file untouched.
- Make a working copy with only the columns you need: the handle, the image URL, the image position and the alt text. Leaving out a non-required column keeps its existing value.
- Fill in the alt text row by row. Rows with the same handle are images of the same product, in the order given by the position column.
- Import with "Overwrite products with matching handles" selected. Without it, products whose handle already exists are ignored.
- Check three products in the admin and on the storefront before you trust the rest.
A shortened example (column names as in Shopify’s help page; use the headers of your own export, and the image URLs are cut here):
URL handle,Product image URL,Image position,Image alt text
linen-shirt-blue,https://cdn.shopify.com/.../shirt-front.jpg,1,"Linen shirt in light blue, front view, buttoned to the collar"
linen-shirt-blue,https://cdn.shopify.com/.../shirt-back.jpg,2,"Linen shirt in light blue, back view with box pleat"
linen-shirt-blue,https://cdn.shopify.com/.../shirt-detail.jpg,3,"Close-up of the mother-of-pearl buttons" Spreadsheet programs like to change things on save: long numbers, leading zeros, special characters. Save as CSV in UTF-8 and compare the row count with your export before importing. Apps in the Shopify App Store can also edit alt text in bulk, some with generated suggestions. If you use one, review what it writes: a generated description of the wrong colour is worse than none.
What to write
The rule is WCAG success criterion 1.1.1, Non-text Content: every image that conveys information needs a text alternative that serves the same purpose. The W3C's alt decision tree helps with edge cases. For a store, a few patterns cover most images.
Product images
Describe what a shopper would want to know if they could not see the photo. The product name is already on the page, so add what the image shows: colour, material, angle, a detail, the product in use.
- Instead of "IMG_4471" or "linen shirt": "Linen shirt in light blue, back view with box pleat".
- For a lifestyle photo: "The shirt worn open over a white T-shirt, sleeves rolled up".
- For a size chart as an image: the chart's content belongs on the page as a real table. A short alt text then says what the image is.
Banners and images with text
If a banner says "Autumn sale: 30% off knitwear", the alt text must say that too, or the offer is invisible to screen reader users. Better still, put the text in the section's heading field, so that it is real text that also scales and keeps its contrast.
Linked images
When an image is the only content of a link (a collection tile, a logo), its alt text becomes the link's name. Describe where the link goes: "Knitwear collection", or your store name for the header logo.
Decorative images
Background textures, dividers and icons next to a visible text label add nothing for a screen reader user. They need
an empty alt="", which tells assistive technology to skip them; a missing alt attribute is not the same,
because some screen readers then read the file name. See the W3C's page on
decorative images.
What to avoid
- Starting with "image of" or "photo of": screen readers already say it is an image.
- Keyword lists. They read badly aloud and do not help search either.
- The same alt text on every image of a product. Each image shows something different; say what.
- File names, SKUs and internal codes.
Check that your theme outputs it
Entering alt text in the admin is half the job. The theme's Liquid code has to put it on the page. Shopify's
image_tag filter uses the image's
alt text by default, but older or customised sections sometimes write a fixed alt (often the product or collection
title) or none at all. Collection tiles and custom banner sections are the usual suspects.
To check, open a product or collection page, right-click an image and choose Inspect. The alt
attribute in the code should match what you entered. If it does not, a developer can pass the stored alt text
through, with a fallback, for example:
{{ collection.image | image_url: width: 800 | image_tag: alt: collection.image.alt | default: collection.title }} Test the change on a theme copy first. Our guide to the 7 most common Shopify accessibility fixes covers the other theme-level issues you will likely meet in the same sections, such as unnamed icon links.
A plan for a large catalogue
- Start where the traffic is: home page banners, your top 50 products, the main collection tiles.
- Agree on a pattern per image type (front view, back view, detail, in use), so that several people write consistent text.
- Make it part of product creation: no new product goes live without alt text on every image.
- Re-check after theme changes and when you add apps that show images, such as reviews with photos.
- Note what you did and when. If you publish an accessibility statement, the record helps you describe the state of your images honestly. Our EAA checklist for Shopify stores puts alt text in context with the other points.
Remember the limits of tools: a scan can find images without an alt attribute, but it cannot tell whether "blue shirt" describes a red dress. Read a sample of your alt texts aloud, or listen to a product page with VoiceOver or NVDA. That is the quickest way to hear what your customers hear.
How Testamur helps
Testamur is a Shopify app in development that checks themes for accessibility barriers, including images without alt text, and keeps a dated record of scans and fixes. The free check is available now: it looks at your home page and, where your robots.txt allows, collection, product and legal pages, and lists the images an automated check flags. You can check your own store for free. Automated checks find only part of the barriers; the quality of your alt text still needs a human eye.
Sources
- Shopify Help Center: adding alt text to product media
- Shopify Help Center: using CSV files to import and export products
- Shopify Help Center: uploading and managing files
- Shopify Help Center: adding alternative text to your theme images
- Shopify Liquid reference: image_tag
- W3C: Understanding SC 1.1.1 Non-text Content
- W3C: an alt decision tree and decorative images
- Testamur: EU Shopify accessibility study 2026 (HTTP Archive, crawl of 1 September 2026)
Check your store free
See which barriers an automated check finds on your own Shopify store: the home page and, where your robots.txt allows, collection, product and legal pages, mapped to WCAG and EN 301 549. Free, result by email. Automated checks find part of the barriers, not all of them.
Check your store freeFrequently asked questions
How do I bulk edit image alt text in Shopify?
Export your products as CSV, fill in the Image alt text column (one row per image), and import the file with the option to overwrite products with matching handles. Test it on two or three products first. Files under Content › Files and images in theme sections are edited one by one.
How long should alt text be?
Shopify allows up to 512 characters and recommends 125 or fewer. For product images, one sentence that names what matters for buying (colour, angle, detail, the product in use) is usually enough.
Should every image have alt text?
Every image needs an alt attribute, but not every image needs a description. Decorative images, such as background textures or icons next to a text label, should have an empty alt so that screen readers skip them. Images that carry information or are links need a real description.
Is alt text for SEO or for accessibility?
First for people who cannot see the image, which is what WCAG success criterion 1.1.1 is about. Search engines also read it, but stuffing keywords into alt text makes it worse for screen reader users. Describe the image; the keywords follow naturally.