Free image alt text checker
Paste a page's HTML to list every <img> it contains, with its source, whether the alt attribute is missing, empty or filled in, and how long the alt text is. The checker also flags alt text that looks like a file name, starts with "image of", or is repeated across different images, and gives you the whole list as CSV. It reads the markup only: none of the images is requested, and the HTML never leaves your browser.
Missing, empty and present are three different things
- Missing means the
<img>tag has noaltattribute at all. This is the real error. With nothing to read, a screen reader may fall back to the file name, and a search engine gets no text description from the tag. - Empty, written
alt="", is valid and often correct. It tells assistive technology that the image is decoration and should be skipped. Use it for dividers, background flourishes and icons that sit next to text saying the same thing. - Present means there is alt text. The remaining checks look at whether it is likely to be useful.
The one case where an empty alt is wrong is an image that is the only thing inside a link, such as a logo linking to the home page. The link then has no name at all. We flag those separately as "Empty alt on a linked image"; the alt text should say where the link goes.
The quality checks
| Flag | What triggers it | What to write instead |
|---|---|---|
| Looks like a file name | The alt ends in an image extension, matches a camera pattern such as IMG_1234, or is the file name copied over | What the picture shows |
| Starts with "image of" | The alt opens with "image of", "picture of", "photo of" or similar | Start with the subject. Screen readers already announce "image". |
| Same alt on different images | Two images with different sources share identical alt text | What sets each picture apart. One image used twice is not flagged. |
| Over 125 characters | The alt text is long | A shorter description, with detail moved to a caption or the body text |
| Only spaces | The attribute contains whitespace and nothing else | alt="" if the image is decorative, otherwise a description |
The 125-character mark is a convention, not a rule in any standard. A chart or diagram may need more. The flag is a prompt to reread.
The checker cannot see the images, so it cannot tell whether a description is accurate, or whether an image marked decorative really is. Use the list to find candidates, then look at the pictures.
How to write alt text that helps
Describe what the image contributes to the page, in the words you would use to describe it over the phone.
- Be specific. "Sliced sourdough loaf on a wooden board" beats "bread".
- Match the purpose. On a product page, name the product and the variant shown. In a tutorial, say what the screenshot demonstrates.
- Leave out "image of". The exception is when the medium matters, such as a painting or a hand-drawn map.
- Use keywords only where they describe the picture. Repeating a phrase across every image is stuffing, and it makes the page worse for people listening to it.
- Put text from the image in the alt when the image is a banner or button containing words.
Google uses alt text, together with the content around an image and its own image analysis, to understand what a picture shows, and treats the alt text of a linked image like anchor text. Our guide to image alt text for SEO has more examples.
Working through a large site
Copy the CSV into a spreadsheet to sort by state or filter by issue. It has one row per image with the source, alt state, alt text, length and flags. Cells that start with a formula character are neutralized, so the file is safe to open.
The checker reads <img> tags, taking the address from src, or from data-src or srcset when a lazy-loading script fills src in later. CSS background images are not listed; they cannot carry alt text and should be decorative only.
On WordPress, alt text is stored once per image in the Media Library, but each post keeps its own copy from the moment the image was inserted, so fixing the library does not always fix old posts. The free Hydrogen SEO plugin can fill in missing alt attributes automatically as pages are served, and the guide to adding alt text in bulk covers the manual routes. To check a live URL, run the free SEO audit.
Common questions
Is an empty alt attribute an error?
No. `alt=""` is the correct way to mark a decorative image so that screen readers skip it. Leaving the attribute out entirely is the error. An empty alt is only a problem when the image carries information, or is the only content of a link.
How long should alt text be?
As long as it takes to describe the image, which is usually a short phrase or one sentence. No standard sets a limit. Many people aim for about 125 characters because long descriptions are tiring to listen to; longer explanations fit better in a caption or the text beside the image.
Does alt text help SEO?
Yes, mainly for image search. Google reads alt text to understand what an image shows, alongside the surrounding content. It also works as anchor text when the image is a link. Write it for people first; a description that helps someone who cannot see the image is the kind search engines can use.
Should I add keywords to alt text?
Only when they describe the picture. If the image shows the thing your page is about, the keyword will appear naturally. Filling alt attributes with keyword lists is treated as spam and makes the page harder to use with a screen reader.
Does the checker download my images?
No. It parses the pasted HTML in memory and reads the attributes of each img tag as text. No image, script or stylesheet in the markup is requested, and nothing is uploaded.
Why does an image show as missing alt when my media library has one?
The checker reports what is in the HTML you pasted. In WordPress, the alt text saved in the Media Library is copied into a post when the image is inserted, so images added before you wrote the alt text can still be without it in the page source.