How to Find Missing Alt Text in WordPress (4 Ways)
Missing alt text is invisible by design. An image with no alt attribute looks fine to you, loads fine for visitors with working vision, and quietly fails for screen reader users, image search, and accessibility audits. WordPress will not warn you when you publish one.
The good news is that “no alt text” is a small, finite problem once you can see the list. The bad news is that WordPress ships no report for it. These four methods get you that list, from quick page checks to a full media library audit.
Why missing alt text is easy to miss
Alt text lives on the attachment, not on the page. The same file can be used in five posts and carry one description — or none. The block editor shows an alt field when you select an image block, but it does not stop you from publishing without one. The Media Library has a search box, not a “missing alt text” filter.
So the list has to come from somewhere else. Pick the method that matches the size of the problem.
| Method | Finds | Misses |
|---|---|---|
| Lighthouse | Images on one page that fail an accessibility check | Other pages, unused media files |
| Site crawler | Rendered images across crawled pages | Media not currently on any page |
| SQL query | Every image attachment, used or not | Context: which page uses it |
| Audit plugin | Media library and WooCommerce in one queue | Nothing important; may cost money |
Method 1: Lighthouse on the pages that matter
Open the page in Chrome, open DevTools, choose the Lighthouse panel, tick “Accessibility”, and run the audit. Under “Image elements do not have [alt] attributes” you will see the exact images that failed. The SEO category flags some of the same files.
This is the fastest way to check a homepage or a product page, and it audits what visitors actually receive. It is also page by page: ten pages means ten audits. Use it for a spot check, not for an inventory.
Method 2: Crawl the site
A desktop crawler such as Screaming Frog walks the site and reports images whose alt attribute is empty or missing. The free tier covers up to 500 URLs, which is enough to find the pattern on most small sites. Run a crawl, open the Images tab, and filter by “Missing Alt Text”. Export the list and sort by page.
A crawl sees only images that appear on crawled pages. If your media library contains campaign shots from three years ago that no page uses, the crawler will never mention them. That may be fine: unused images do not hurt visitors. Fix the images people actually see first.
Method 3: Query the media library directly
If you are comfortable with SQL, this finds every image attachment, including files that are not on any page. Run it read-only, after a backup, and adjust the table prefix if your install does not use wp_.
SELECT p.ID, p.post_title, p.guid
FROM wp_posts AS p
LEFT JOIN wp_postmeta AS pm
ON pm.post_id = p.ID
AND pm.meta_key = '_wp_attachment_image_alt'
WHERE p.post_type = 'attachment'
AND p.post_mime_type LIKE 'image/%'
AND (pm.meta_value IS NULL OR pm.meta_value = '');
The result is a list of attachment IDs and file URLs. It does not tell you where each image is used, so pair it with the crawled list when you need to prioritise. It also cannot tell a decorative image from a meaningful one: an empty alt is sometimes the correct answer.
Method 4: Use an alt text audit plugin
An audit plugin turns the same information into a queue: how many images are missing alt text, which ones, and a field to write each description without opening the Media Library one file at a time. AltMint scans the media library and WooCommerce product images, stores every AI suggestion separately from the live alt attribute, and only writes when you approve a suggestion. The free plugin is unlimited with your own AI key.
This is the practical option once the list runs past a handful of images, because the bottleneck is not finding the files. It is writing descriptions with enough context to be useful, and then reviewing them. If you already have a draft, paste it into the free alt text checker for an instant second opinion before you save it.
WooCommerce hides product image alt text in plain sight
Product images are attachments too. The featured image and every gallery image each have their own alt text, and a product image reused in three products shares one description. That is convenient when the description is good and awkward when it is not.
Audit product images separately from blog images. They sit on the pages most likely to convert, they appear in Google Shopping-style results, and “product photo” tells a screen reader user nothing. The WooCommerce alt text guide covers featured images, galleries, and variation images in detail.
What to fix first
- Homepage and landing pages. Highest traffic, highest visibility, quick to audit.
- Product pages. Directly tied to buying decisions and to image search.
- Top blog posts. The pages that already earn search traffic. Image search can add more.
- Everything else. Work down the list in batches; do not wait for a perfect inventory.
Two categories need care. Decorative images — dividers, background flourishes — should have an empty alt attribute, not a description, so screen readers skip them. Informative images that carry meaning the paragraph does not repeat need real sentences, especially charts and screenshots.
A workflow that survives a large library
Export the list, then write descriptions in context. Open the page where the image appears, look at what the surrounding paragraph already says, and describe only what the image adds. Approve in batches of ten or twenty and re-run the audit afterwards.
What you should not do is bulk-fill every image from its file name. That is how sites end up with alt text like “IMG_2041” on every page — it satisfies a scanner that only checks for a non-empty attribute, and helps nobody. The bulk editing guide walks through the review-first version of the same job.
Does WordPress have a missing alt text report?
No. The Media Library can search and filter by type and date, but not by empty alt text. You need a page audit, a crawler, a database query, or a plugin.
Should decorative images have empty alt text?
Yes. alt="" tells assistive technology to ignore the image. Leaving the attribute off entirely is different: the file name may be announced, and validators cannot tell whether you forgot or chose to skip it.
How often should I audit?
Monthly for an active blog or store, and after any migration or redesign. New uploads are where missing alt text enters; a repeating check catches them before the backlog grows.