Production
Alt text audit in fifteen minutes
Start with inventory
Open your CMS. Filter by content type if you can, or start with your ten highest-traffic pages. You need a list of images currently live on the site.
Export to spreadsheet: image filename, current alt text, page URL. If your CMS doesn't export this cleanly, open dev tools and copy from the DOM. Tedious once beats guessing forever.
Three-column triage
Add three columns to your sheet: Keep, Fix, Empty.
**Keep**: Alt text that describes the image content in under twelve words and adds information the surrounding text doesn't already provide. If the image is decorative chrome, mark it empty instead.
**Fix**: Alt text that's a filename, keyword spam, redundant with the caption, or has "image of" in it. Also fix any that describe what you wish the image showed instead of what it actually shows.
**Empty**: Decorative images, pure ornament, visual breaks that convey nothing semantic. These get `alt=""` so screen readers skip them entirely. This is correct and faster than fake descriptions.
Batch the fixes
Sort your Fix column by page. Group images from the same URL together. Open that page in the CMS, update all its images in one session, save. Don't bounce between pages.
For each fix, look at the image, read the paragraph around it, then describe what the image shows that the text doesn't already say. If the text already says it, consider making the image decorative instead.
Common repairs:
- `hero-image-compressed.jpg` becomes `Three engineers reviewing printed schematics at a standing desk`
- `Learn more about our services` becomes empty — that's a text link's job
- `Image of a graph showing sales growth` becomes `Monthly sales increased 40% from January to July 2024`
Empty isn't lazy
If an image is a visual rhythm break, a brand flourish, or texture that doesn't communicate information, empty alt is the professional choice. Screen reader users don't need to hear "decorative swoosh" sixteen times. Silence is data.
Don't describe background patterns, decorative rules, or ornamental icons that sit next to text links that already name the destination. Empty.
Set the template default
While you're in the CMS, find the image upload settings. Set the default alt text field to empty, not the filename. This forces authors to actively choose to add alt text, which means they'll think for two seconds instead of shipping `IMG_2847.jpg` as accessibility.
If your CMS requires alt text to publish, set the default to `[description needed]` so it's obvious in QA.
Maintenance pattern
Add "alt text check" to your pre-publish checklist. One line item, takes thirty seconds per page. Before you click publish, scan the image fields. Anything that still says the filename or `[description needed]` gets fixed or marked decorative right then.
Every six months, repeat this audit on your top twenty pages. Traffic shifts, images get swapped, alt text drifts. Fifteen minutes twice a year keeps it clean.
What this actually improves
Search engines parse alt text for context. Accurate descriptions help image search and page relevance without any keyword stuffing.
Screen readers read alt text aloud. Concise, meaningful descriptions let users navigate faster. Empty alt on decorative images makes the experience cleaner, not worse.
CMS authors see your examples in the system and start matching the pattern. Quality is contagious if you make it visible.