Images on the page have no alt attribute
What this check looks for
‹missing› of ‹total› images have no alt attribute at all. Anyone using a screen reader gets nothing in their place, and image search has no text to work from.
Why it matters
Alt text is what a person using a screen reader hears instead of the image. It is also the main text signal for image search. An image with no alt attribute is invisible to both.
When the check passes, your report says: “Every image on the page carries an alt attribute”.
What it costs your score
When this check fails it removes 6 points from your SEO score, before the status, confidence and repeat multipliers are applied. SEO carries a weight of 5 in the overall score.
It shares the seo.content family ceiling of 15 points: however many findings that family produces, together they cannot remove more than that from SEO. One underlying problem showing up in several places is still one problem.
- Severity
- low
- Default confidence
- confirmed
- Status when triggered
- warn
- Deduction
- 6 points
- Family cap
- seo.content · 15
- Category
- SEO
- Module
- Seo audit
- Fix owned by
- user
- In the ruleset since
- 2026.09
How to fix it
Add an alt attribute to every image: descriptive text, or alt="" when the image is decorative.
Without it, screen readers announce a file name or nothing, and image search has no text to index.
For an image that carries meaning, write what it conveys in this context — not a description of every visual detail.
For a purely decorative image, use
alt="". This is correct and deliberate, not a shortcut.For an image inside a link, describe where the link goes: the alt text is the link's name.
Fix it where images are uploaded or components are defined, so new images arrive with alt text rather than needing an audit.
How to confirm it worked
curl -sS ‹url› | grep -o '<img[^>]*>' | grep -cv 'alt=' — should be 0
A named slot like ‹domain› — and the braces left in the configuration below — is filled in with your own values when this rule appears on a report.
Remediation by platform
<!-- Meaningful: say what it conveys here. -->
<img src="/loaf.jpg" alt="A sourdough loaf with an open crumb, cut in half">
<!-- Decorative: empty alt, deliberately. -->
<img src="/divider.svg" alt="">
<!-- Inside a link: describe the destination. -->
<a href="/guides/starter/"><img src="/starter.jpg" alt="Guide to keeping a sourdough starter"></a>Omitting the attribute and writing
alt=""mean opposite things. The first leaves the consumer guessing; the second is an instruction to skip.
Technical detail
Images with no alt attribute include:
‹examples›
**An empty alt="" is not a fault and is not counted here.** It is the documented way to mark an image as decorative, and it tells a screen reader to skip it — which is the correct outcome for a spacer, a background flourish or an icon beside text that already says the same thing. ‹decorative› images on this page use it, and they are treated as correct.
What is counted is the absence of the attribute entirely, which leaves the consumer to guess. Screen readers commonly fall back to announcing the file name, which is worse than silence.
Write alt text that says what the image conveys in context rather than describing it exhaustively. For an image that is also a link, the alt text should describe the destination, because it is the link's accessible name.
This is an accessibility requirement first — WCAG 2.2 Success Criterion 1.1.1 — and an SEO benefit second. It is filed here because this is the check that reads the page's markup.
Standards and references
Test this on your domain
Run the check that produces this finding, on its own, against any domain.
Other seo audit checks
- The page declares more than one canonical URL
- The canonical URL cannot be used
- The page declares no canonical URL
- The canonical URL points at a different page
- The page has no h1 heading
- The heading levels skip a level
- The page has more than one h1
- An hreflang annotation is not valid
- The hreflang set does not include this page
- The page's declared language is not a well-formed language tag
- The page does not declare what language it is written in
- robots.txt blocks this page from being crawled