Back to blog

How to Generate AI Alt Text for Shopify Images: Complete Guide

Learn how to automatically generate SEO-optimized alt text for all your Shopify product images using AI. This step-by-step guide shows you how to improve your store's search visibility and accessibility in minutes.

How to Generate AI Alt Text for Shopify Images: Complete Guide

Alt text is one of the few SEO jobs that pays off twice: it tells Google what your product photos show, and it tells screen readers what your shoppers can't see. It's also the job nobody finishes, because a store with 500 products and 3 photos each needs 1,500 descriptions.

GoodySell AI Alt Generator writes them for you. This guide walks through the whole flow — scan, select, configure, generate, review, apply — exactly as the app works today.

→  Learn more at GoodySell

What alt text is and why it matters for Shopify SEO

Alt text (alternative text) is a short written description attached to an image.

For search. Google can't see your photos. Alt text is the main signal it uses to understand them, and it's what gets your products into Google Images — a traffic source most stores leave completely empty.

For accessibility. Screen readers read alt text aloud. Missing or useless alt text ("IMG_4821", "product image") shuts blind and low-vision shoppers out of your catalog, and WCAG 1.1.1 — the standard most accessibility legislation points at — treats it as a baseline requirement.

The reason stores skip it isn't disagreement. It's volume.

What the app does

  • Scans your product images and reports which ones have alt text and which don't

  • Generates descriptive alt text with AI, in 20 languages, in the length you choose

  • Lets you edit or reject every result before anything touches your store

  • Writes the text back to Shopify — onto the image for your primary language, and as a Shopify translation for every other language

  • Works on empty and filled alt text alike — it can describe images that have nothing, or rewrite existing descriptions when they're weak

It works on product media images. Alt text for theme, blog or collection images isn't part of the flow.

Install and first look

Install from the Shopify App Store, then approve the permissions. The app asks to read your products, locales and translations, and to write image files and translations — the write permissions are what let it save alt text back for you.

Open it from Apps in your Shopify admin. You work through four tabs, left to right: Home, Scan & Select, Settings, Review. The Home tab lays out the same flow this guide follows, in four steps.

The admin interface itself is available in several languages; switch it with the Interface language menu in the app's title bar. That setting changes the buttons and labels you see — it has nothing to do with the language your alt text is written in, which you choose separately in the next step.

GoodySell AI Alt Generator home tab in Shopify admin showing the four how-it-works steps and plan card

Pick a plan

Your store starts on the free tier automatically, so you can run your first batch straight away — there's nothing to activate first.

Plans are sized by how many images you can process per month, from that free tier for testing up to catalog-sized allowances, with a discount if you pay yearly. Open Pricing from the app navigation when you're ready to move up, and pick the plan that matches the size of your catalog; you can move up later without redoing any work.

The free tier is there for judging quality on a handful of images, not for doing a catalog — its monthly allowance is small by design, enough to see what the AI writes for your own products before you commit to anything.Pricing page of the AI Alt Generator app showing the available plans and their monthly image limits

Step 1: Scan your store

Open Scan & Select.

Alt text is language-specific, so the app works one language at a time. At the top, Available Languages lists the languages your store publishes; if one of them isn't supported yet, a warning banner names it.

Choose your language in the Generation language dropdown, then start the scan. The dropdown only offers locales your store actually has — the app can generate in 20 languages in total: English, German, Spanish, French, Italian, Dutch, Portuguese (BR and PT), Polish, Czech, Swedish, Danish, Norwegian, Finnish, Turkish, Malay, Japanese, Korean, and Chinese (Simplified and Traditional).

When the scan finishes you get four numbers:

  • Total Images

  • Have Alt Text

  • Need Alt Text

  • Accessibility Coverage, as a percentage with a progress bar

That coverage figure is the one to watch month to month. Running the scan again later is a single click on Rescan Images, and the card keeps the timestamp of your last scan. Switch language and scan again, and every number is recalculated for that language — an image can be fully covered in English and completely empty in German.Scan results for a Shopify store showing total images, images with alt text, missing alt text and coverage

Step 2: Select the images

The gallery has two filter tabs:

  • Missing Alt — the default, and where the wins are

  • Has Alt — images that already have a description, for when you want to replace weak ones

Select what you want to process:

Control

What it does

Click a card

Toggles that one image

Select Page

Selects every image on the current page (page size 10, 20 or 50)

Quick Select (100 images)

Selects up to 100 matching images at once, across pages

Clear all

Deselects everything

One batch is up to 100 images. Larger catalogs simply mean more rounds — the batch limit is enforced on the server, so there's no way to overshoot it by accident.

With your selection made, click Configure Settings.

Image gallery with Missing Alt filter active and several product photos selected for alt text generation

Regenerating alt text you already have

The app isn't limited to images with no description. Old alt text like "product image", descriptions written before you cared about SEO, or text inherited from a previous store owner can be rewritten the same way it's generated from scratch.

Existing alt text is never replaced by accident: the default filter is Missing Alt, and overwriting happens only for images you deliberately select under the Has Alt tab.

  1. Open Scan & Select and pick your language in the Generation language dropdown.

  2. Click Rescan Images so the statistics match the current state of your store.

  3. Switch to the Has Alt tab — these are the images that already have a description in that language.

  4. Select the ones worth replacing, individually or with Select Page / Quick Select (100 images). Select only what you actually want rewritten: everything selected will be overwritten.

  5. Click Configure Settings. Adjust the maximum length or toggle Include brand name in alt text — this is where you decide how the new text should differ from the old.

  6. Run Generate Alt Text and wait for it to finish.

  7. On the Review tab, compare each result against what you had. Reject anything that isn't an improvement; edit the rest in place.

  8. Click Apply to Store. The new descriptions replace the old ones — on the image itself for your primary language, in Shopify translations for the others.

The previous text isn't kept after a replacement, so if some images carry hand-written descriptions you're happy with, it's easier to leave them out of the batch than to restore them later.

Step 3: Configure the generation

The Settings tab opens with a summary: how many images you're about to process, the estimated time, and a Change Selection button back to the gallery.

There are two settings.

Maximum characters per alt text

The default is 125 characters for Latin-script languages, with an allowed range of 75–125; the field shows the recommended range for whichever language you picked. Dense scripts get their own ranges, because their characters carry about twice as much content each:

Language

Range

Latin-script languages

75–125

Chinese (Simplified, Traditional)

35–65

Japanese

40–65

Korean

45–70

Switch language and the field snaps back into that language's range automatically, so you can't accidentally ask for a 125-character Japanese description. This is the part that a single global character limit gets wrong: the same sentence in Japanese and in German simply doesn't need the same budget.

Include brand name in alt text

Optional, and off by default. When on, the AI works the product's vendor into the description. Leave it off when your vendor name is just your store name — repeating it in every description spends characters without telling anyone anything new.

The side panel repeats your configuration — generation language, style, max length — along with the four steps ahead. Then click Generate Alt Text.

Generation settings screen with maximum character length field, brand name checkbox and generate button

Step 4: Generation

A progress screen shows a live count and percentage. For each image the AI looks at the photo itself plus the product title — and the vendor, if you enabled that — and describes the colors, materials and visual details a shopper would care about.

The screen tells you what to expect before it starts: an estimated generation time for your batch, and, if other stores are generating at the same time, your position in the queue and how long until yours begins.

Keep the tab open while it runs. If the connection drops anyway, nothing is lost — results are stored as they're produced, and reloading brings you back to them.

Progress screen showing AI alt text generation running with a progress bar and completed image counter

Step 5: Review before anything goes live

When generation finishes you land on the Review tab, with a banner telling you a batch is waiting. Nothing has touched your store yet.

Each card shows:

  • the image thumbnail, the product name and the brand

  • the generated alt text, editable in place

  • character count against your limit, and a word count

  • an SEO score out of 10, plus badges for whether the product name is included and whether the text meets accessibility expectations

The page also carries a standing reminder that AI-generated content can contain errors. Read through the results. They're good most of the time, and a quick pass catches the occasional oddity — which is exactly why the app puts the text in front of you instead of writing it straight to your products.

Don't like one? Reject it. Before you can apply anything, the app asks you to Confirm Rejections, which deletes those texts permanently; the images stay untouched and you can generate for them again later. Clear Rejections undoes your rejections instead. If you reject everything, the app tells you there'll be nothing left to apply.

While generated results are waiting, the banner blocks new generation until you've dealt with them — deliberately, so a second batch can't bury the first.

Review screen with generated alt text for three product photos, character counts, SEO scores and edit fields

What a good result looks like

Before: empty, or product image

After: "Ski Jacket in light blue and navy with hood, black zippers, chest pocket, side pockets, sleek fitted silhouette and tapered"

That's an actual result from the Review tab: 123 characters against a 125 limit, 20 words, scored 10/10 and flagged Accessible. It names the product, both colors, and the details someone would actually search for — a hood, the zippers, a chest pocket, side pockets, the cut. Product, colors, features, silhouette, inside the character budget: that's what both Google and a screen reader need.

It also shows why the review step matters. The description runs right up against the limit and stops mid-phrase on "and tapered". One click into the field, delete the last two words, and it ends cleanly — the kind of ten-second fix that's much easier to make here than after it's live.

Step 6: Apply to your store

Click Apply to Store — the count on the button tells you how many descriptions are about to be saved. You'll get a confirmation, the scan statistics refresh, and you're returned to Scan & Select ready for the next round. If any individual save fails, the app reports how many applied and how many didn't, and keeps the failures on the Review tab so you can retry them.

Then pick the next language and repeat — that's the whole loop. Where the text lands, though, depends on the language, and so does where you go to read it back.

Where to check the alt text after you apply it

The app writes to two different places in Shopify depending on the language, so there are two different places to verify the result. This trips people up on multilingual stores, so it's worth spelling out.

Your primary language: on the image itself

For your store's primary language the alt text is written straight onto the image file. To see it: Products → open the product → click the image in the Media section. The image's details panel shows the Alt text field with the new description in it. That's the same field you'd type into by hand, so anything else that reads alt text — Google, screen readers, your theme — picks it up immediately.

Shopify product image details panel with AI-generated alt text saved in the alt text field

Other languages: not where you'd expect

For every non-primary language the text is saved as a Shopify translation of the image's alt text — the alt key on the media resource, which Shopify made translatable in API version 2025-10. It sits alongside your primary alt text rather than replacing it, which is exactly what you want: German shoppers get German, English shoppers get English, from the same image.

The catch is that Shopify's Translate & Adapt app doesn't show it. That app covers theme content and metafield media; product gallery alt text isn't in its list, so don't go looking there and conclude nothing was saved. Three places do show it:

1. Back in this app — the quickest check. Open Scan & Select, pick the language in the Generation language dropdown, and switch to the Has Alt filter. Every card prints the alt text stored for that language, with its character count. The Have Alt Text and Accessibility Coverage figures at the top are also per-language, so a jump in coverage right after applying is your confirmation that the whole batch landed.

2. Your live storefront in that locale. Open a product page on the localized domain or language path, right-click the product image and choose Inspect. The alt attribute carries the translated text — as long as your theme outputs the image's alt attribute, which every Online Store 2.0 theme does. This is the most honest check available, because it's literally the markup Google and screen readers receive.

3. The Admin API, if you're technical. In a GraphQL client against your store:

graphql

query {
  translatableResource(resourceId: "gid://shopify/MediaImage/123456789") {
    translations(locale: "de") {
      key
      value
    }
  }
}

A row with key: "alt" and your generated text is the authoritative answer.

If a language looks empty in all three places, check that you actually applied that batch — results sitting on the Review tab are stored in the app but haven't reached Shopify yet.

Tips for better results

  • Feed it good photos. The AI describes what it can actually see; blurry or badly lit shots produce vaguer text.

  • Do one language per pass. Scan, generate, apply, then switch language and go again.

  • Keep the recommended length for the language. It's there for a reason, and overriding it is how you end up with padded or truncated text.

  • Skim before applying. A minute of reading beats a wrong description on a bestseller.

  • Cover variant images too. Different colorways need their own descriptions — that's half the point.

  • Use the Has Alt filter. It's the fastest way to replace old generic text you wrote years ago.

  • Rescan monthly. New products arrive with empty alt text; the coverage percentage tells you when it's worth a pass.

Watching your usage

The Current Plan card on Home shows your plan, how many images you've used against your monthly limit, and the date the limit resets. Go over it and the card shows a Limit Exceeded badge, and generation is refused until the period rolls over or you upgrade. The app also refuses a batch larger than the images you have left, rather than starting one it can't finish.

FAQ

Does it overwrite alt text I already have?

Only if you choose to. The default filter is Missing Alt; existing text is replaced only for images you deliberately select under the Has Alt tab.

How many images can I do at once?

100 per batch. Repeat for larger catalogs.

Which languages are supported?

Twenty for generation: English, German, Spanish, French, Italian, Dutch, Portuguese (BR/PT), Polish, Czech, Swedish, Danish, Norwegian, Finnish, Turkish, Malay, Japanese, Korean and Chinese (Simplified/Traditional). The dropdown shows the ones your store publishes.

Does it handle multilingual stores properly?

Yes. Non-primary languages are saved as Shopify translations of the image's alt text, which is where Shopify expects localized alt text to live. Note that Translate & Adapt doesn't display product image alt text — check it in the app under the Has Alt filter for that language, or in the page source on your localized storefront.

Can I edit the generated text?

Every result is editable on the Review tab before you apply it, and you can reject any you don't want.

What if I close the tab during generation?

Results are saved as they're generated. Reload the app and you'll find them waiting on the Review tab.

How long does it take?

The app shows an estimate for your batch before it starts, along with your queue position if there is one.

Wrapping up

Alt text has always been an easy SEO and accessibility win that loses to the clock. Doing it with AI turns an afternoon of typing into a scan, a skim and a click — with a review step so nothing reaches your storefront that you haven't seen.

Install GoodySell AI Alt Generator from the Shopify App Store, try it on a few images first, and check the coverage number on your next scan.

Something not clear?

The FAQ covers setup, targeting and billing — and if it does not answer your question, we will.