Free SEO Tools

Image Alt Text Checker

Check every image on a page for missing, empty, file-name or generic alt text, with counts and a list of the images to fix.

Alt text is what screen readers announce in place of an image and what search engines read to understand it. Enter a URL to list the images with no alt attribute, empty alt on images that carry meaning, and alt text that is only a file name or a word like “image”.

Reads the images in the page’s HTML. Images added by JavaScript and CSS backgrounds are not included.

Alt text report

Enter a URL to list the images with missing or poor alt text.

What the checker reads

It fetches one page, up to 900 KB, and reads every <img> element in the HTML the server sends. For each image it notes the alt attribute (absent, empty or its text), the image address, any aria-hidden or role attribute, whether an element around it has aria-hidden="true", the width and height, and whether the image sits inside a link.

It reads up to 300 images. Past that, the report says how many more images on the page were not checked. A page that returns an error status or is not HTML stops the check: “The page returned HTTP 404, so there are no images to check.”

For the image address it prefers data-src and data-lazy-src over src, because lazy-loading plugins put a placeholder in src and the real file in one of those. That is the address shown in the Image column.

What it cannot see

  • Images added by JavaScript after the page loads: most sliders, lightbox galleries, Instagram feeds and some lazy-load setups.
  • CSS background images, such as a cover block’s background or a hero set in the theme’s styles. Google does not index CSS images either.
  • Images inside <noscript> tags, which lazy-load plugins use as a fallback copy.
  • Inline <svg> graphics and icon fonts. Only <img> elements are read.
  • Whether the alt text is accurate. It catches alt text that is missing, a file name or a filler word, not alt text that describes the wrong thing.

Every status, in the order it checks

Each image gets exactly one status. The checker tests them in this order and stops at the first that matches, so an image hidden with aria-hidden, on the image or on an element around it, is reported as decorative even if it has no alt attribute.

StatusWhen it appliesCounted as
Marked decorativeThe image, or an element around it such as its link, has aria-hidden="true", or the image has role="presentation" or role="none"Fine
Tracking pixelwidth and height are both 2 or lessFine
No alt attributeThere is no alt attribute at all. Screen readers may read the file name instead.Error
Empty alt on a linked imagealt is empty, the image is inside a link, and the link has no other text, aria-label, title or image with altError: the link has no name
Empty alt (fine if decorative)alt is empty and the image is not the only content of a linkTo review
File name as altThe alt ends in a file extension, starts like a camera name (IMG, DSC, PXL, Screenshot followed by a number), is a slug with no spaces such as hero-banner-2x, or equals the file’s own nameTo fix
Generic altThe whole alt is one of 17 filler words: image, images, img, photo, photograph, picture, pic, graphic, icon, banner, thumbnail, placeholder, untitled, alt, alt text, default or featured imageTo fix
Starts with “image of”The alt begins with image of, picture of, photo of, photograph of or graphic of, with or without a or anTo fix
Descriptive altAnything elseFine

Reading the verdict and the two lists

The headline counts the images in Images to fix. It reads “N images to fix” when at least one has no alt attribute or is a linked image with empty alt, the two cases that break things for screen reader users. It reads “N images could use better alt text” when the only problems are file names, filler words or an “image of” opening. “No images need fixing” means none of those were found.

Images to fix lists the problems worst first, with the image address, its current alt and the reason. Empty alt: check these are decorative lists every unlinked image with alt="". Those are not errors. Empty alt is the right answer for a decorative image, and only you can tell which ones are. Images with descriptive alt, decorative images and tracking pixels are counted but not listed.

When the page looks like WordPress, a note under the lists says where to change alt text. For an image placed in post content, that is the image block, because changing the Media Library does not update images already placed. Featured images, the site logo and WooCommerce product images read the Media Library each time the page is built, so the note says to change those there. The section on where alt text lives covers the rest.

Decorative or informative: what each image needs

The W3C’s images tutorial, part of its Web Accessibility Initiative, sorts images by the job they do, and the job decides the alt text. WCAG 1.1.1, Non-text Content, a Level A requirement, asks for a text alternative that serves the same purpose as the image. For a purely decorative image, that purpose is nothing, so the alternative is an empty alt.

The image isIts alt text shouldWordPress example
Informative: it shows something the text does notSay what it shows, brieflyA photo of the finished dish in a recipe
Functional: the only content of a link or buttonSay where the link goes or what the button doesA logo linking home, an author photo linking to the About page
Text in an imageRepeat the textA banner reading “Free shipping over $50”
Complex: a chart or diagramGive the short point, and put the detail in the text or a captionA chart of monthly traffic
Decorative: it adds nothing a visitor would missBe empty (alt="")A divider flourish, a background texture, a photo that repeats the caption beside it

A quick test from the same tutorial: if you removed the image, would a visitor lose information? If not, it is decorative. If the image is next to text that says the same thing, an empty alt avoids reading it twice.

Writing alt text that does its job

Describe what the image shows in the context of the page. The same photo of a loaf needs different alt text in a post about crumb structure and in a post about scoring patterns. Leave out “image of” and “picture of”: screen readers already announce that it is an image.

Google’s image guidance says it uses alt text together with computer vision and the page’s content to understand an image, and asks for useful, information-rich alt text that uses keywords appropriately, not a list of keywords. Its own example improves “puppy” to “Dalmatian puppy playing fetch”. Google also uses the alt text of a linked image as that link’s anchor text.

There is no fixed length limit in the HTML standard or in Google’s guidance. Write what the image adds, which is usually one short sentence or less. Save long explanations for the caption or the body text, where every visitor can read them.

A camera file name

Before: IMG 4521

After: Sourdough loaf cut open, showing an open, airy crumb

Flagged as File name as alt. Say what the photo shows, in the terms of the post.

A redundant opening

Before: Image of a proofing basket

After: Dough rising in a floured cane proofing basket

Flagged as Starts with “image of”. The fix drops the opening and adds the detail the post is about.

A linked author photo

Before: (empty alt, inside a link to /about/)

After: About Maria, the baker behind this blog

Flagged as Empty alt on a linked image. A linked image’s alt names the link, so describe the destination, not the face.

Keyword stuffing

Before: sourdough bread recipe easy sourdough best sourdough bread

After: Two sourdough boules cooling on a wire rack

The checker passes the first one, because it is not a file name or a filler word. Google’s guidance asks you not to do it.

Where alt text lives in WordPress

WordPress keeps alt text in two places. Each item in the Media Library has an Alternative Text field. And each image placed in a post’s content carries its own copy of the alt text in the post’s HTML. When you insert an image, the editor copies the library’s alt into the post. After that the two are separate: editing one does not change the other.

Which copy a visitor gets depends on how the image is placed, which is why fixing an image in the Media Library sometimes works and sometimes changes nothing.

ImageWhere its alt comes fromWhere to change it
Image block in a post or pageThe block’s own copy, made when the image was insertedSelect the block, then Alternative text in the block settings sidebar
Gallery blockEach image inside it is an image block with its own copySelect each image inside the gallery
Featured image (classic theme)The Media Library, read each time the page is builtMedia → Library → the image → Alternative Text
Post Featured Image block (block theme)The Media Library; when the block links to the post, WordPress uses the post title insteadThe Media Library, or the post title for linked ones
Site logoThe Media Library; if that is empty, WordPress uses the site titleMedia → Library → the logo
WooCommerce product imagesThe Media Library. Since WooCommerce 9.3.3, an empty one falls back to the product name, or “Product name - Image 2” for gallery imagesMedia → Library, or Set product image in the product editor
Page builder image widgetsUsually the Media Library, read at render time; check your builder’s widget settingsThe widget settings or the Media Library

Themes that unlink the logo on the home page also set its alt to empty there, because the site title sits next to it. The checker lists it under Empty alt to review, and on that page it is correct.

Plugin settings that write alt text for you

Some SEO plugins fill in alt text automatically. That can explain alt text you never wrote, and why the checker flags it.

Rank Math has Add missing ALT attributes under Rank Math SEO → General Settings → Images, a tab that appears once its Image SEO module is on. It is off by default, and its default format is %filename%. When it is on, Rank Math fills the alt of images in post content, featured images and WooCommerce product images as the page is built, using the file name with hyphens and underscores turned into spaces and the size suffix removed. Nothing is saved to the Media Library. Two side effects show up in this checker: IMG_4521.jpg becomes “IMG 4521”, which is flagged as a file name, and images you left empty on purpose get the file name too, because the setting fills empty alt as well as missing alt.

SEOPress can set alt text from the file name when you upload an image, under SEO → Advanced → Image SEO (as of October 2026). Unlike Rank Math’s, that alt is saved to the Media Library, so it reaches new posts too, and a camera file name becomes a camera alt.

Yoast SEO does not write alt text. Its content analysis checks whether a post has images and whether their alt text includes the focus keyphrase. Treat that as a reminder, not a target: work the keyphrase in only where it describes the image.

Worked example: a recipe post

Illustrative values. A food blogger checks a sourdough recipe post on a site running Rank Math with Add missing ALT attributes on. The page has 14 images.

Summary (illustrative)

Images checked 14 · Descriptive alt 5 · File name as alt 3 · Empty alt on a linked image 1 · Starts with “image of” 1 · Empty alt (fine if decorative) 2 · Marked decorative 2. Verdict: 5 images to fix.

The verdict is “to fix”, not “could use better”, because of the linked image with empty alt.

The three file names

“IMG 4521”, “IMG 4533”, “IMG 4540”

Step photos uploaded straight from a phone. Rank Math built these from the file names because the image blocks had no alt. Writing alt in each block replaces them, since the setting only fills empty ones.

The linked image

The author photo in the bio box, linking to /about/

The bio box is part of the theme, so its alt is set wherever the theme takes the photo from: the theme’s own settings or the Media Library.

The two empty alts to review

A wheat-sprig divider printed by the theme, and the finished loaf in the recipe card

Both sit outside the post content, so Rank Math’s setting did not touch them. The divider is decorative: leave it. The recipe card photo shows the dish and needs alt text, set wherever the recipe plugin takes it from, usually the Media Library.

After the edits, the re-run reads 11 descriptive, 1 empty to review (the divider) and 2 decorative, with the verdict No images need fixing. The owner also renamed new uploads before adding them, so the plugin’s fallback has something better to work with.

Troubleshooting by symptom

When the report does not match what you expect, the cause is usually the difference between the HTML the server sends and the page you see in a browser.

SymptomLikely causeWhat to do
A slider or gallery is missing from the listIt is built by JavaScript after load, or its images are CSS backgroundsCheck its alt text in the slider or gallery plugin’s own settings
You fixed alt in the Media Library and nothing changedThe image sits in an image block, which keeps its own copyEdit the block’s Alternative text instead
You fixed the block and the checker still shows the old altA page cache or CDN served the old HTMLPurge the cache for that page and re-run
The same image is listed twiceThe theme prints it twice, for example once for desktop and once for mobile, and hides one with CSSFix both, or mark the hidden copy aria-hidden in the theme
A thumbnail with no alt is counted as decorativeIt, or the link around it, has aria-hidden="true", which hides it from screen readersFine if a text link to the same page sits next to it. If not, screen reader users can still reach the link but hear no name: remove aria-hidden and give the image alt text
More images were found than you can seeHidden menus, mobile headers, related-post widgets and footer badges are in the HTML tooCheck those: they are on every page, so one fix covers the site
Alt text you never wroteAn SEO plugin’s automatic alt, WooCommerce’s product-name fallback, or the logo’s site-title fallbackSee the two sections above

Checking the fix, and what to leave alone

Re-run the checker on the same URL after clearing the page cache. To hear what a screen reader gets, open the page in Chrome, inspect the image, and read its computed Name in the Accessibility pane of DevTools.

In Search Console, Performance with the search type set to Image shows clicks and impressions from Google Images. Alt text is one input among several, so treat a change there as a trend over weeks, not proof of one edit.

Leave these alone: decorative images with empty alt, tracking pixels, the home-page logo next to the site title, and images marked aria-hidden on purpose. And there is no need to chase a perfect score on templates you cannot edit: fix the images in your own content first, where most of the meaning is.

Fixing alt text one image block at a time across an old blog is slow. RankHive drafts alt text for images in your posts and pages, and you approve it before its plugin writes it to WordPress.

FAQ about the Alt Text Checker

Should every image have alt text?

Every image needs an alt attribute, but not every image needs a description. A purely decorative image should have an empty one (alt="") so screen readers skip it. Images that carry information, and images that are the only content of a link, need real alt text.

How do I add alt text in WordPress?

For an image in a post, select the image block and fill in Alternative text in the block settings sidebar. Alt text in the Media Library is copied in when you insert an image, but later changes there do not update images already placed. Featured images, the site logo and WooCommerce product images read the Media Library directly, so change those there.

Why are some images on my page missing from the list?

The checker reads the HTML the server returns. Images added by JavaScript after the page loads, CSS background images and inline SVG graphics are not in that HTML as <img> elements, so they are not listed.

Is empty alt the same as no alt?

No. alt="" tells screen readers to skip a decorative image. No alt attribute at all leaves them guessing, and many read out the file name. That is why the checker treats missing alt as an error and empty alt as something to review.

Does alt text help my images rank in Google Images?

It helps Google understand them, together with the page’s text, the file name and what the image shows. Google asks for descriptive alt text in context and warns against stuffing it with keywords.

Why is my alt text flagged as a file name when it has words?

It matches one of the patterns for file names: it ends in an extension such as .jpg, starts like a camera file (IMG, DSC, PXL or Screenshot followed by a number), is a slug such as blue-mug-v2 with no spaces, or equals the image file’s own name. Rewrite it as a short description.

Should alt text include my keyword?

Only where it describes the image naturally. One accurate description that happens to include the topic of the page is enough. Repeating keywords in alt text does not help readers, and Google’s guidance asks you not to.