Skip to content
AI for theMarketer
image-seo

Image Alt Text at Scale: AI Descriptions That Rank

How I use AI to write alt text for hundreds of images without producing spam - the quality bar, the batch workflow, and the checks that keep it honest.

Rob Vail8 min read

Alt text is the highest-yield SEO work per minute spent that I know of, and almost nobody does it, because doing it by hand for an image library of any size is miserable. The WebAIM Million, the annual accessibility survey of the top million home pages, found missing alt text on 53.1% of home pages in its 2026 run, with 16.2% of all images carrying no alternative text at all. Those are the most visited pages on the web. Deeper in a typical site, where the product shots and blog images live, my experience says it gets worse. This guide is my workflow for fixing an entire library with a vision model in an afternoon, and the quality rules that stop the result from being machine-generated spam. It belongs to my AI SEO series, one step down in altitude from the full AI technical SEO audit, which treats alt text as one line item among many.

What alt text actually does

Alt text is a written substitute for an image, read aloud by screen readers and shown when the image fails to load, and Google reads it too. The company’s own image SEO documentation says it plainly: “Google uses alt text along with computer vision algorithms and the contents of the page to understand the subject matter of the image.” That sentence is worth reading twice, because it kills two common beliefs at once. Alt text is not the only signal, so a perfect description on an irrelevant page wins nothing. And it is a real signal, so the empty attribute is a real loss, for image search rankings and for how well Google understands the page around the image.

I rank the beneficiaries in this order: the screen reader user, who gets the page as the author meant it. Image search, which for ecommerce and anything visual is a traffic source teams forget they have. And the page itself, which becomes easier for a machine to understand end to end. The accessibility case alone would justify the work. The SEO case is what gets it budgeted.

The quality bar, before any automation

A bad alt text at scale is worse than none, so I fix the standard before I generate anything. My rules, all of them boring and all of them regularly broken:

Describe what the image contributes to the page, not everything in the frame. A photo under “how to bleed a radiator” wants “hand holding a radiator key on the bleed valve”, not a catalog of the wallpaper. If the image is a link or a button, describe the destination or the action, because for a screen reader user the alt text is the link.

Skip “image of” and “photo of”. The attribute already says it is an image.

Leave decorative images with an empty alt attribute, alt="", which tells a screen reader to pass over them silently. A border flourish described in earnest is noise for the person the attribute exists for.

And do not stuff keywords. Google’s documentation warns against exactly this by name: filling alt attributes with keywords “results in a negative user experience and may cause your site to be seen as spam.” The keyword belongs in the alt text when the image genuinely shows the thing the keyword names, and not otherwise. This is the rule an unsupervised generator breaks first, which is why the workflow below has a human gate in it.

The batch workflow

The job has three parts: get the images and their page context out, run them through a vision model, and get the results back in. A non-technical marketer can do the middle part alone. The two ends depend on your CMS, and where they need code, I hand them over, the same way I do in the technical audit.

Get the inventory out. Most CMSs will export a media library or a page list. What I want is a spreadsheet with one row per image: the image URL, the page it appears on, the page’s title, and the current alt text if any. If the CMS cannot produce that, this is a small request for a developer: a crawl or a database export, an hour of their time. Sort it so the money pages come first.

Generate in batches, with context. Vision-capable models describe images well, but the description you want depends on the page, so I feed both. My working prompt, pasted with a batch of image and context pairs:

You write alt text. For each image, write one alt text of 125 characters
or fewer describing what the image shows in the context of its page.
Rules: no "image of" or "photo of". Describe content, not style. If the
image appears to be purely decorative, output DECORATIVE. If you cannot
tell what the image shows, output UNCLEAR - never guess. Do not repeat
the page title. Plain language, no keyword lists.

Page title: {title}
Page topic: {one line}
Image: {attached or URL}

The two escape hatches are the important part. DECORATIVE rows get an empty alt attribute. UNCLEAR rows come to me, and there are always some: charts, screenshots with small text, product variants that look identical. A model that must answer will invent, so I give it permission not to.

Spot-check before loading. I read every alt text for the top pages and a random tenth of the rest, against the images. What I am looking for: invented specifics (a model will confidently name the wrong product model number), keyword-shaped phrasing that crept in, and descriptions of style rather than content. On a typical run the error rate is low but never zero, and the errors cluster on exactly the images that matter most, because product shots and diagrams are the hardest to describe.

Load it back. Some CMSs import alt text from a spreadsheet natively, most need a plugin or a script. If yours needs a script, that is again a developer request measured in hours, and worth phrasing as one: “here is a CSV of media IDs and alt texts, please write them to the library.”

The special cases I never automate

Charts and data visualizations get written by hand, because their alt text has to state the finding, and a model reading a chart will misread axes just often enough to publish a wrong number with my name on it. That failure mode is the image-shaped version of the hallucination problem I wrote about in the guardrails post, and the fix is the same: the model drafts, a human verifies anything that carries a fact.

Images of real, named people get checked by hand, because misidentifying a person is worse than describing nothing. And anything legal or regulated, before and after shots, claims-adjacent product imagery, keeps a human author entirely.

Making it stay fixed

One pass fixes the backlog and then the CMS refills with naked images. The durable fix is a rule at the point of upload: the CMS requires the alt field, or at minimum flags empties in an editorial checklist. I also put a quarterly line in my content calendar to re-export the inventory and diff it, which takes ten minutes once the workflow above exists. Fixing alt text once is a project. Keeping it fixed is a habit, and the habit is cheap.

FAQ

Does alt text really affect rankings? For image search, directly, and image search is a real channel for anything visual. For regular web search, it is one signal among many that help Google understand the page. Nobody honest will promise a ranking jump from alt text alone. I treat it the way I treat clean headings: table stakes that compound with everything else in the AI SEO playbook.

How long should alt text be? I aim under 125 characters, which is a screen reader convention rather than a Google limit. The real rule is one clear sentence. If an image needs a paragraph, that paragraph belongs in the page body next to it.

Should the keyword go in the alt text? When the image actually shows the thing the keyword names, yes, naturally phrased. When it does not, no. Google’s spam warning is about exactly the habit of treating alt attributes as a keyword field.

Can I just let the CMS plugin auto-generate everything? The plugins run vision models without page context and without a review gate, which produces technically-present, generically-useless alt text. Present beats empty for accessibility. But the twenty minutes of context and spot-checking in the workflow above is where the SEO value comes from.

This guide is part of my AI SEO and GEO series. The audit that finds the rest of your machine-fixable SEO debt is the AI technical SEO audit, and the rule that a model never publishes an unverified fact comes from the hallucination guardrails.