Checkers
Alt text, dimensions, formats and lazy loading
Images are where accessibility, performance and SEO fail together. A missing alt attribute is a WCAG failure and a lost ranking signal. A missing width and height is a layout shift, which is a Core Web Vitals problem. An uncompressed hero image is usually the Largest Contentful Paint.
So this pulls the image rules from all three modules into one view: alt text presence and quality, explicit dimensions, modern formats, responsive srcset and sizes, lazy loading on below-fold images and eager loading on the one above it, and decorative images correctly marked as decorative.
That last distinction is worth stating: an empty alt is not a missing alt. `alt=""` is the correct way to say an image carries no meaning, and a checker that flags it is wrong - which is a mistake this product made on its own illustrations before it was caught.
Why this matters
Images pile up over years, added by different people through a CMS that never insists on alt text. Nothing anywhere tells you which ones a screen reader cannot describe, which ones shove the page around as they load, and which ones weigh ten times what they should. Each of those answers currently lives in a different tool, so the full picture never lands in one place.
With no alt attribute at all, assistive technology falls back to the file name, so a product grid is announced as "IMG_4021.jpg" twelve times over. It never appears in your analytics; you hear about it in a complaint.
An image with no reserved space is zero pixels high until it loads, then pushes everything below it down. On a phone, a finger already moving towards "Add to basket" hits whatever slid into its place, and it reaches you as a rising bounce rate rather than a bug report.
A price, an opening time or an offer set inside a JPEG is invisible to a search engine and to any assistant reading the page. You find out when someone asks an AI tool what you charge and it answers that the page does not say.
Forty-one rules touch images, and they sit in the SEO, accessibility, performance, structured data, security, HTML and AI modules. This page gathers all of them, and the list you can read is filtered by the same one-line pattern that scopes the scan, so the published list and the run cannot drift apart.
An absent attribute is the only thing counted as a failure. An image carrying alt="" is counted the other way, by a separate rule, as a decorative image marked correctly, so a page built properly is not punished for it.
The layout-shift check returns the selector and source of every image with no reserved space instead of a count, and it accepts an inline aspect-ratio as reserving space, so images your CSS already handles are left alone. Each finding also links the W3C or WCAG clause behind it.
This check runs on its own here, and as part of the full audit alongside the other 985 rules. Either way the findings carry their evidence and their citation, and the report is never published or kept.
Images are usually the largest thing on a page and the least examined. These five changes improve accessibility, ranking and load time at once.
Give every image an alt attribute — descriptive when meaningful, empty when purely decorative.
Set explicit width and height so the browser reserves space and the page stops shifting as images arrive.
Serve modern formats such as WebP or AVIF, with a fallback where you still need one.
Size images to their displayed dimensions rather than shipping a 4000px original scaled down in CSS.
Lazy-load images below the fold, and never lazy-load the largest element above it — that one change alone can wreck your LCP.
Just the domain is enough — example.com, with or without the https. No account, no card, no crawl of your whole site.
Your page opens in a real browser and JavaScript runs to completion, so what gets audited is the page a person actually sees — not the raw HTML your server sent. A screenshot comes back with the report as evidence of exactly what we measured.
Up to 986 checks run against that rendered page. Each finding names the rule, quotes the evidence found on your page, cites the public specification behind it, and says what to change. Nothing is a judgement call — run it twice on an unchanged page and the score is identical.
Named because provenance is the product. Every finding in your report says which of these produced it, so you can check the reasoning rather than take a score on faith.
Every meaningful <img> needs an alt attribute so screen reader users get equivalent information.
Ensure <img> elements have alternative text or a role of none or presentation Evaluated against the live rendered page by a WCAG rule engine, so it only runs on a full scan.
Ensure <input type="image"> elements have alternative text Evaluated against the live rendered page by a WCAG rule engine, so it only runs on a full scan.
Ensure [role="img"] elements have alternative text Evaluated against the live rendered page by a WCAG rule engine, so it only runs on a full scan.
Ensure that server-side image maps are not used Evaluated against the live rendered page by a WCAG rule engine, so it only runs on a full scan.
Ensure <svg> elements with an img, graphics-document or graphics-symbol role have accessible text Evaluated against the live rendered page by a WCAG rule engine, so it only runs on a full scan.
An <img> without intrinsic dimensions occupies zero height until it loads, then pushes everything below it down. Declaring width and height lets the browser reserve the space up front, which is the primary fix for layout shift.
Missing alt text costs image-search visibility as well as accessibility - image search cannot index what it cannot describe.
An img with no src or srcset is invalid and renders as a broken-image placeholder.
Images whose filename suggests they carry words - text, headline, quote, copy. Text baked into an image cannot be read, quoted or acted on: an agent asked to find your pricing will not find it if the price is a JPEG. Matched on filename only, deliberately: an empty alt attribute is the CORRECT way to mark a decorative image, so counting those would flag every properly-marked illustration on the page.
Ensure image alternative is not repeated as text Evaluated against the live rendered page by a WCAG rule engine, so it only runs on a full scan.
noimageindex removes the page's images from image search entirely.
Dozens of images on one page means dozens of requests competing with the resources that block rendering.
Screen readers already announce the element as an image, so "image of…" is read twice.
Base64 inflates payload by ~33% and cannot be cached separately from the HTML.
If robots.txt disallows ImagesiftBot, ImageSift image indexing cannot fetch this page.
og:image is the preview thumbnail on every social and messaging platform. A shared link with no image gets materially less engagement.
Every image without dimensions is a potential layout shift.
WebP and AVIF are typically 25-50% smaller than equivalent JPEG or PNG at the same visual quality.
Most rich result types require an image; without one the entity is ineligible for them.
srcset lets the browser pick a correctly sized image per device instead of downloading a desktop asset on a phone.
Text baked into images is invisible to every extractor.
Pages with relevant imagery earn more engagement and qualify for image search traffic.
Open Graph image alt text refines how this page is represented when shared or parsed as a rich object. Informational - relevance depends on page type.
Showing 24 of 41. Browse every rule image seo checker runs.
This page answers these searches too — they are the same job, so they share one page rather than being split across near-identical ones:
No signup, no credit card. Quick answers in seconds; a full audit takes about a minute.
Run a free scanNo signup. No credit card. Nothing stored but the result.