How to find images missing alt text on your website
You can’t fix alt text you can’t find. On a ten-page brochure site you can click through and look. On a store with 4,000 product images, or an agency portfolio of 30 client sites, you need a method. This guide covers six, from quickest to most thorough, and what to do with the results.
First, a quick scale check. WebAIM’s 2026 scan of the top one million home pages found an average of 66.6 images per home page, with 16.2% of them (10.8 per page) missing alt text (WebAIM Million 2026). That’s home pages only, before you get to product, blog and category pages.
Know what you’re looking for
“Missing alt text” covers several different problems. A good audit separates them:
| Problem | Example | Severity |
|---|---|---|
| Missing alt attribute | <img src="hero.jpg"> |
Always an error. Screen readers may read the file name instead. |
| Empty alt on an informative image | <img src="product.jpg" alt=""> |
Error if the image carries information; correct if it’s decorative. Needs human review. |
| Empty alt on a linked image with no other text | <a href="/"><img alt=""></a> |
Error: the link has no name. |
| File-name alt | alt="IMG_4471.jpg", alt="DSC 0042" |
Error in practice: says nothing useful. |
| Generic alt | alt="image", alt="logo", alt="photo" |
Weak. WebAIM counts these as “questionable”. |
| Duplicated alt | Six gallery photos all with the same text | Weak. Each image should say what it adds. |
| Redundant alt | Alt identical to the caption next to it | Weak. Read twice. |
| Overlong alt | A 600-character paragraph | Usually a sign of a complex image that needs a long description. |
Most free tools catch the first row and some catch the second. Few catch the rest.
Method 1: a console snippet (10 seconds, one page)
Open the page, open your browser’s developer tools (F12 or Cmd+Option+I), go to the Console and paste:
[...document.images].map(img => ({
src: img.currentSrc || img.src,
alt: img.getAttribute('alt'),
inLink: !!img.closest('a, button')
})).filter(i => i.alt === null || i.alt.trim() === '' || /\.(jpe?g|png|webp|gif|svg)$/i.test(i.alt))
It lists images with no alt attribute (alt: null), empty alt, or alt that looks like a file name, and whether each one sits inside a link or button. Run console.table(...) on the result for a neater view. It only sees <img> elements on the current page as rendered, not CSS backgrounds or inline SVG.
Method 2: W3C’s “Easy Checks” bookmarklet (one page, visual)
W3C provides a “Check images” bookmarklet. Drag it to your bookmarks bar, visit any page and click it, and images are marked with their alt text or a missing-alt warning (W3C Easy Checks: Image alternative text). It’s very useful for judging alt text in context, because you see the image and its alt side by side.
Method 3: browser accessibility tools (one page, thorough)
- Lighthouse, built into Chrome DevTools, runs an accessibility audit that flags image elements with no alt attribute, alongside other issues.
- WAVE from WebAIM overlays icons on the page for missing alt, empty alt on linked images, suspicious alt text and more.
- axe DevTools (browser extension) reports image-alt issues with WCAG references.
These are excellent for a single page and for developers. They don’t scale to “every page on the site”, and they all depend on a person deciding whether an empty alt is right.
Method 4: platform reports (your CMS knows)
Your platform may already be able to list images without alt text:
- Shopify: the Files page (Content > Files) can be filtered “by alt text using the Alt text menu” (Shopify Help). For product images, export products as CSV and look for blank cells in the “Image alt text” column (Shopify Help).
- Wix: the Accessibility Wizard scans the site and shows a task to add alt text to images, page by page (Wix Help).
- WordPress: the Media Library shows the alt field per image, but there’s no built-in “missing alt” filter in core, and alt text added in the Media Library doesn’t update images already inserted into posts (see our WordPress guide). That gap is why checking the rendered pages matters.
The catch with CMS-level reports: they show what’s in the media library, not what’s on the page. Themes, page builders and hard-coded templates can output different alt text, or none.
Method 5: crawl the whole site
A crawler visits every page and records every image.
- Screaming Frog SEO Spider is free for up to 500 URLs. Its Images tab has “Missing Alt Text” (attribute present but empty or whitespace) and “Missing Alt Attribute” filters, with bulk export (Screaming Frog tutorial). It also has an “Alt Text Over 100 Characters” filter, and a “Background Images” filter that needs JavaScript rendering (Screaming Frog user guide).
- Altpass site audit crawls your site, scores each page, and exports a CSV with page URL, image URL, current alt, the issue type, and a suggested alt you can approve, with likely-decorative images flagged for
alt="".
Two technical things to watch whichever crawler you use:
- JavaScript-rendered images. If your site builds image galleries with JavaScript, a crawler that only reads the initial HTML will miss them. Check that your tool renders pages, or spot-check with Method 1.
- Lazy loading. Images that load on scroll may use
data-srcuntil they’re visible. Good crawlers handle it, but verify on a product gallery.
Method 6: listen to it
Nothing replaces hearing the page. Turn on VoiceOver (macOS/iOS), NVDA (Windows, free) or TalkBack (Android), and move through a key page by images and links. If you hear “image”, a file name, or “link” with nothing after it, you’ve found a real problem, and you’ll understand it better than any report can explain.
How to prioritise what you find
A big site can produce thousands of issues. Fix them in this order:
- Templates and shared components first. The header logo, footer icons, cart button and card components appear on every page. One fix clears thousands of instances.
- Linked images and image buttons with no name. These break navigation.
- Key journeys. Home, top product and category pages, search, checkout. Regulators and plaintiffs look here too. Sweden’s PTS, for example, focuses its e-commerce reviews on the homepage, product page and search (Taylor Wessing, Mar 2026).
- Images of text (banners, size charts, infographics). The information may exist nowhere else.
- Everything else, in batches.
Make it stick
- Add “every image has alt text or is marked decorative” to your publishing checklist.
- Make alt text a required field in your CMS where possible, but allow “decorative”, so people don’t type junk to get past it.
- Re-scan monthly. Alt text regresses every time someone uploads a new banner.
Find yours now
Run the free Altpass checker on any page. It’s unlimited and needs no signup. You’ll get a score and a list of images with missing, empty, file-name, generic or duplicated alt text. When you’re ready to cover the whole site, the site audit crawls every page and exports a CSV your developers can work from.
Check your own page
Paste a URL into the free checker to see every image with missing or weak alt text — no sign-up.