Home About Support Blog Ask AI
Dashboards +
On-Page SEO +
Technical SEO +
SERP & Content +
Local SEO +
Get the Chrome Extension
Free SEO Tool

Alt Text Checker

Audit every image on any page. Detects broken images, missing alt, oversized files, fetchpriority issues, and format gaps — with smart heuristics that don't punish correct HTML.

Last updated: September 2026

Why image SEO matters

An alt text checker catches the biggest image SEO gap most audits miss. Images are usually the heaviest part of a page, and the most neglected for SEO. A missing ALT tag doesn't block Google Image Search from indexing the image (Google uses surrounding text, filename, and vision models as fallback signals), but it strips away the strongest context Google has for ranking it. It also leaves screen readers with nothing to announce. Serving a 2MB PNG when a 200KB WebP would do kills your Core Web Vitals. And skipping width/height attributes causes layout shift (CLS) that hurts your performance score.

This tool audits every image on a page across 20+ checks. ALT tags, broken images, formats, dimensions, lazy loading, file sizes, srcset coverage, fetchpriority, decoding, oversized delivery, mixed content, generic filenames, duplicate alt text — you get a scored report with fixes ranked by impact, and smart heuristics that don't punish correct HTML.

What makes this checker different

Most image SEO tools apply the same rules to every image and penalize correct HTML. Nav logos get flagged for "no lazy loading" even though eager is correct for above-fold icons. Thumbnails get flagged for "no srcset" even though a 28×28 image doesn't need responsive variants. Hero images used twice (thumbnail + lightbox) get flagged as duplicates. The end result is a score that tells you to make your HTML objectively worse.

This tool applies smart heuristics first. Logo detection (based on src, dimensions, and DOM position) exempts nav icons from lazy-loading and srcset penalties. Above-fold detection (first 3 images or elements inside header) exempts hero images from lazy-loading penalties. Intentional duplicates up to twice per URL are allowed without penalty — only 3+ reuses get flagged. Tracking pixels (Facebook, GA, LinkedIn, Bing) are detected and excluded from scoring entirely. The result is a score you can trust, not a score you have to work around.

fetchpriority, decoding, and modern LCP optimization

Your LCP element is almost certainly an image: the HTTP Archive Web Almanac 2025 measured images as the LCP content type on 76% of mobile pages and 85% of desktop pages. Modern Chrome, Edge, Firefox, and Safari all support fetchpriority="high" and decoding="async", but almost no audit tool checks for them as first-class signals. This tool does.

The checker parses the fetchpriority and decoding attributes on every image and reports them in the badges row. It also flags the most common anti-pattern: an image with both loading="lazy" AND fetchpriority="high". These contradict each other — the browser can't prioritize a fetch it hasn't started. When this combination appears on what looks like an LCP image, it's flagged as an error. The copy-ready fix snippet gives you the exact attribute combination you need.

Broken images, oversized delivery, and mixed content

Broken images (images returning 4xx/5xx) are detected via a HEAD request to each unique image URL. The check reuses the tool's cached fetch layer so it adds no extra cost beyond the existing file-size check. Any image returning HTTP 404, 403, 500, or similar gets flagged red with the actual status code in the card.

Oversized images are detected by loading each image in the browser and comparing naturalWidth to the declared HTML width. The threshold is 2.5x — this allows 2x retina variants without false positives, but flags images where the source file is objectively too large. Mixed content (http:// images on an https:// page) is flagged as a critical error: Chrome auto-upgrades those requests to HTTPS and blocks the image outright if the upgrade fails.

Beyond the <img> tag: schema, CSS, SVG, and picture audits

Most image SEO tools only look at <img> tags. Lumina also audits four categories that account for real-world bugs an img-only scan never sees:

Social Preview & Schema Cross-Check. Extracts og:image, twitter:image, and every image URL inside JSON-LD (ImageObject, primaryImageOfPage, Organization.logo, publisher.logo) and cross-checks them for consistency. Catches the classic bugs that break social shares: og:image missing entirely (LinkedIn shows no preview card), or og:image and twitter:image pointing to different URLs (previews inconsistent across platforms). Also checks whether the og:image is referenced from JSON-LD, which is how Google.s image docs say you influence the preview image shown for a page.

CSS background-image detection. Scans <style> blocks and inline style="" attributes for background-image: url(...) references. Google Image Search does not index CSS background images — if your hero is a CSS background, you lose image search traffic entirely. Google.s own image SEO docs put it plainly: "Google doesn.t index CSS images."

Inline SVG accessibility audit. Walks every inline <svg> element and checks for <title> child, aria-label/aria-labelledby, role="img", or aria-hidden="true" (decorative). Parent accessible names (<button aria-label>) are also detected. Google.s image SEO docs recommend a <title> element inside inline SVG for exactly this reason.

<picture> element completeness. For each <picture> element, validates: fallback <img> exists, all <source> elements have type and srcset attributes, and source order respects AVIF > WebP > JPG/PNG. Browsers pick the first matching source, so putting WebP before AVIF means AVIF-capable browsers never get AVIF — a silent performance regression. Also recommends adding AVIF sources to WebP-only pictures.

Alt text and ADA compliance

WCAG 2.1 requires every meaningful image to have a text alternative. Section 508 covers US federal sites, and the European Accessibility Act has been in force since June 2025. Both point back at WCAG, so a missing alt tag isn't just bad SEO. It's legal exposure in a lot of jurisdictions. Screen readers announce alt text when they reach an image. If there isn't any, they announce the file name instead. "IMG_4382.jpg" doesn't help a blind user, and it doesn't help Google Image Search either. That's a compliance gap and a traffic gap at the same time.

Beyond the basic missing-alt check, the tool detects alt text that's technically present but useless: one-word alts, alts that match the filename, generic alts like "image" or "photo", alts over 125 characters (long alt text is tedious to listen to, so details belong in a caption), and duplicate alt text used across multiple images. Anchor-wrapped images without alt are a critical error because they leave the link with no accessible name — screen readers announce nothing.

Using this checker with WordPress, Shopify, and other CMSs

Any public URL works. Paste your WordPress or Shopify page and the tool reads the rendered HTML via Cloudflare Browser Rendering, which catches alt text wherever it lives: media library, Gutenberg blocks, ACF fields, Shopify liquid templates, Next.js Image components, React SPAs. For bulk fixes, run the checker first to get a ranked list with copy-ready fix snippets, then patch from the platform's bulk-edit UI or a dedicated accessibility plugin like WP Accessibility.

AI Alt Quality Analysis (vision model)

Most "AI alt text" tools use regex heuristics — they check whether alt text exists, and if it looks generic. This tool actually looks at the image. Click the purple "Analyze Alt Quality with AI" button and the tool runs every image with an alt issue (missing, generic, filename-like, weak, or duplicate) through an OpenAI vision model. The model sees the image, reads the current alt text, and scores 0-10 whether the alt actually describes what's visually present. It then suggests a better alt text in the page's language (detected from the <html lang> attribute), and explains the score in 1-2 sentences.

This is opt-in to control quota usage. The tool only sends images that already have detected issues — typically 0-3 per page, not all 16+. Logos and tracking pixels are excluded entirely. Bring your own OpenAI key (set it in the Settings ⚙️ icon top right) for unlimited analysis. The model reads the pixels, not the markup, so it catches alt text that is grammatical and still wrong about what the image shows.

Explore more tools

FAQ

How do I use this alt text checker?+
Paste any public URL and click Check Images. The tool fetches the page, scans every image across 20+ checks, and returns a per-image severity card with copy-ready fix snippets. Issues are sorted by severity (red errors first), and smart heuristics exempt nav logos, hero images, and tracking pixels from false-positive penalties.
Does this alt text checker support bulk image processing?+
Yes. It audits every image on the target page in one scan, including alt status, format, dimensions, file size, lazy loading, fetchpriority, decoding, srcset coverage, and oversized delivery. Results can be exported as CSV or a standalone HTML report with one click. There's no per-image limit.
Does the tool detect broken images?+
Yes. Every unique image URL gets a HEAD request via the Lumina worker. If an image returns HTTP 4xx or 5xx, it's flagged red with the exact status code. The check runs in parallel with the file size fetch so it doesn't slow down the audit. A 404 image is invisible to a crawler and to a reader, and nothing else on the page tells you it happened.
Why do nav logos get a high score even without lazy loading?+
Because eager loading is CORRECT for a 28×28 nav logo. The logo heuristic detects images that are (a) inside a <nav> or <header>, (b) under 60×60 pixels, or (c) have "logo/icon/favicon" in their src, and exempts them from no-lazy and no-srcset penalties. A nav logo should be loaded eagerly — adding loading="lazy" to it would be a bug, not an optimization. The tool won't punish you for correct HTML.
What image formats does this checker flag?+
The tool uses AVIF-tiered scoring. AVIF is "excellent" (score 100), WebP and SVG are "good" (85), PNG and JPG are "legacy" (50), and BMP and GIF are "ancient" (0). AVIF is supported by about 95% of browsers in use (caniuse, September 2026) and is usually smaller than WebP at the same quality. The tool recommends AVIF as the target, not WebP.
Does it check fetchpriority and decoding attributes?+
Yes. The tool parses fetchpriority and decoding attributes on every image and surfaces them in the per-image card. It also flags the most common anti-pattern: an image with both loading="lazy" AND fetchpriority="high" — these contradict each other. That combination is a real Core Web Vitals regression when it lands on the LCP image, and nothing in the browser warns you about it.
How does the oversized image detection work?+
Every image gets loaded in the browser via a sandboxed Image() call, and the natural width is compared to the declared HTML width attribute. If the natural size is more than 2.5x the declared size, the image is flagged as oversized. The 2.5x threshold allows 2x retina variants without false positives. SVGs and logos are excluded because viewBox-based natural sizes aren't pixel-accurate.
What does the Social Preview & Schema Cross-Check do?+
It extracts og:image, twitter:image, and all image references from JSON-LD (ImageObject, primaryImageOfPage, Organization.logo) and cross-checks them for consistency. It catches two bugs that break social shares: og:image missing entirely (LinkedIn, Facebook, WhatsApp, and Slack will show no preview card), and og:image pointing to a different URL than twitter:image (previews become inconsistent across platforms). It also checks whether the og:image is referenced from JSON-LD via primaryImageOfPage, which Google.s image docs name as a way to influence which image is shown as the page.s preview.
Does it detect CSS background images and inline SVG a11y issues?+
Yes. The tool scans <style> blocks and inline style attributes for background-image:url() references and flags them as a blind spot — Google Image Search does not index CSS background images. If your hero is a CSS background, you're losing image search traffic. Separately, every inline <svg> is audited for accessibility: missing <title> child, missing aria-label, missing role="img", and wrapping parent accessible names. Google.s image SEO docs recommend a <title> element inside inline SVG for exactly this reason.
How does the LCP optimization audit work?+
The tool scores every content image with a heuristic that combines DOM order, declared dimensions, above-fold position, and explicit author hints (loading="eager", fetchpriority="high"). The highest-scoring image is identified as the most likely Largest Contentful Paint candidate. Then the audit checks four things: (1) is loading="lazy" set on the LCP image (critical error — delays the paint), (2) is fetchpriority="high" set (recommended in 2026), (3) is there a matching <link rel="preload" as="image"> in the <head>, and (4) are there any "stranded" preloads (preload links that don't match any image on the page — wasted bandwidth). Images are the LCP content type on 76% of mobile pages and 85% of desktop pages (HTTP Archive Web Almanac 2025), so this is usually where LCP is won or lost.
What does the "Analyze with AI" button do?+
This is an opt-in feature that uses an OpenAI vision model to evaluate alt text quality with computer vision. It only runs when you click the button, and it only analyzes images that already have detected alt issues (missing alt, generic alt like "image"/"photo", alt that matches the filename, one-word alt, or duplicate alt across multiple images). For each candidate, the AI looks at the actual image and: (1) scores the current alt text 0-10 against what's visually present, (2) generates a context-aware suggested alt text in the page's language (detected from <html lang>), and (3) explains the score in 1-2 sentences. The model reads the pixels rather than the markup, so it catches alt text that is grammatical and still wrong about what the image shows. The free tier allows 10 AI calls per day. Bring your own OpenAI key for unlimited use.
Is there a Chrome extension for alt text checking?+
Yes. The Lumina Chrome extension runs alt text checks directly in the browser, so it works on any page you can view, including staging environments and pages behind a login.
Image analysis on every page

Lumina checks ALT tags, formats, lazy loading, and file sizes automatically.

Add Lumina to Chrome — Free