Skip to content
Surfilby Adam Hafez
Free tool

Image alt text checker

Image alt text checker: paste HTML to find missing, empty, generic and keyword-stuffed alt attributes on every img tag. Free, runs in your browser.

Runs entirely in your browser. Nothing you enter is uploaded, logged or stored.

srcaltFlags

Missing alt and generic filename/placeholder checks follow Google's documented image SEO guidance. Filename-shaped and keyword-stuffing flags are this tool's own heuristics, labeled as such below, since Google has not published an exact alt-text length or repetition rule. Parsing runs in your browser; nothing you paste is sent anywhere.

Key takeaways

  • Google uses alt text alongside computer vision and page content to understand what an image shows.
  • A missing alt attribute is the priority fix, since some screen readers then announce the image's file name instead.
  • An empty alt="" is not an error on a decorative image, because W3C guidance uses it to let screen readers skip the image.
  • Google's image guidance says filling alt attributes with keywords is keyword stuffing and may cause a site to be seen as spam.
  • The filename-shape and repeated-word flags are this tool's own heuristics, not thresholds Google has published.

What it takes

  • A block of pasted HTML containing one or more img tags

More tools

All of them free, all of them browser-only.

Browse the tools

How to use it

  1. 1Paste your HTMLCopy the HTML for a page, or just the img tags you want to check, into the textarea. The example is prefilled with five common alt-text patterns.
  2. 2Read the summary countsThe tool reports total images found, how many are missing alt entirely, how many have empty alt, and how many are flagged by the filename and stuffing heuristics.
  3. 3Check each row's flagsThe results table lists every image's src and alt text with its flags, updated as you edit the pasted HTML.
  4. 4Fix in the order the flags suggestTreat missing alt as the priority fix, generic placeholders next, then review heuristic flags to confirm they are real problems rather than false positives.

Alt text serves two readers at once: a person using a screen reader and Google trying to work out what an image shows. Google says it uses alt text along with computer vision and the content of the page to understand an image’s subject, and that alt text improves accessibility for people who cannot see images. This checker parses pasted HTML with the browser’s DOMParser and tests every img tag’s alt attribute against that guidance.

What this alt text checker looks for

Each image gets one of four outcomes, and every flag says whether it comes from documentation or from the tool’s own judgment.

  • Missing alt attribute (error). The img tag has no alt at all. Google shows <img src="puppy.jpg"/> as its bad example, and W3C notes that without the attribute some screen readers announce the file name instead.
  • Empty alt (informational). alt="" is the W3C-documented way to mark a decorative image so assistive technology skips it. It is only wrong when the image carries meaning.
  • Generic placeholder (error). Alt text that is just “image”, “img”, “photo”, “picture” or “pic”, optionally followed by a number such as “image123”. This fails Google’s call for useful, information-rich alt text.
  • Heuristic flags (warning). Alt text shaped like a bare filename, or a long alt in which one word repeats. These catch the pattern Google warns about, where filling alt attributes with keywords “may cause your site to be seen as spam”, but the thresholds are the tool’s own.

How to read the results

The summary row counts total images, missing alt, empty alt, filename-like alt and possibly stuffed alt. The table below lists each image’s src (cut to 40 characters) and alt text (cut to 60), with its flags, each colored by kind: error, heuristic warning or informational note. An image with no flags shows “No issues found”.

Fix in this order. Missing alt first, because it breaks both accessibility and Google’s understanding of the image. Generic placeholders next. Then look at each empty alt and ask whether the image is truly decorative: a divider or background flourish is, a product photo is not. Treat heuristic flags last, as prompts to reread the text rather than verdicts.

The two heuristics work like this. The filename flag fires only when the src ends in an image extension (jpg, jpeg, png, webp, gif, svg or avif) and the entire alt text is a single name with one of those extensions, such as img_20260912_143022.jpg. The stuffing flag fires when the alt has 8 or more words and any one word appears 3 or more times. Google has not published a length or repetition limit, so neither number is an official rule.

Worked example

The checker opens with five images already pasted:

<img src="/images/golden-retriever-puppy-playing-fetch-in-park.jpg" alt="Golden retriever puppy playing fetch with a tennis ball in a park">
<img src="/images/divider.svg" alt="">
<img src="/images/img_20260912_143022.jpg" alt="image123">
<img src="/images/hero-banner.jpg">
<img src="/images/running-shoes.jpg" alt="running shoes best running shoes buy running shoes running shoes sale running shoes discount">

The summary reads 5 images, 1 missing alt, 1 empty alt, 0 filename-like and 1 possibly stuffed. Row by row: the golden retriever image has no issues. The divider gets the informational empty-alt note. The third image is flagged as a generic placeholder, because “image123” describes nothing. The hero banner is flagged for a missing alt attribute. The running shoes image gets a heuristic warning that “running” repeats 5 times, the same shape as Google’s own stuffed example of puppy dog baby dog pup pups puppies doggies.

Common mistakes it catches

  • Hero and banner images with no alt. Templates often ship large images without the attribute at all, which is the one case both Google and W3C describe as broken.
  • Alt text copied from the filename or CMS default. Camera names such as IMG00023.JPG are Google’s example of a filename that gives no clue to the subject, and pasting that into alt text repeats the problem.
  • Keyword lists instead of descriptions. Google’s guidance contrasts alt="puppy" (better) and alt="Dalmatian puppy playing fetch" (best) with a string of keyword variants (bad).
  • Meaningful images marked decorative. An empty alt on a chart or product photo hides it from screen readers. The checker surfaces every empty alt so you can make that call.

One limit to know: the checker reads img elements only. Google says it does not index CSS images, so a picture set as a CSS background has no alt attribute to check and is not in this report.

Sources

  1. 1.Google Images best practices - Google Search CentralPrimary
  2. 2.Decorative images - W3C Web Accessibility InitiativePrimary

Common questions

How do I check the alt text on a whole page?

Open the page, view its source (or copy the rendered HTML from your browser's developer tools), and paste it into the checker. It finds every img element in what you paste and lists each one with its src, its alt text and any flags. Images added by JavaScript only appear if you copy the rendered HTML rather than the raw source.

Is an empty alt attribute bad for SEO?

Not on a decorative image. W3C accessibility guidance says decorative images should carry a null alt="" so assistive technologies can ignore them. The checker marks empty alt as informational for that reason. It becomes a problem only when the image carries meaning, such as a product photo or a chart.

What is the difference between a missing alt and an empty alt?

A missing alt means the attribute is not there at all. W3C notes that some screen readers then announce the image's file name. An empty alt is a deliberate signal that the image is decorative. The checker treats missing alt as an error and empty alt as informational.

How long should alt text be?

Google has not published a character limit for alt text. Its guidance asks for useful, information-rich text in context of the page, and gives "Dalmatian puppy playing fetch" as its best example. This checker does not enforce a length for that reason.

Why was a normal description flagged as possible keyword stuffing?

The stuffing flag is a heuristic. It fires when alt text has at least 8 words and any single word appears 3 or more times, and it counts every word, including short ones like "a" or "the". A long natural caption can trip it. Read the flagged word before rewriting anything.

Is the HTML I paste sent anywhere?

No. The checker parses your HTML with the browser's own DOMParser and renders the results on the page. Nothing is uploaded or stored.

Tools

humans.txt generator

humans.txt generator: build a humans.txt file with TEAM, THANKS and SITE sections from the humanstxt.org template. Free, runs in your browser.