Limit text trapped inside images to a small share of the page
Keep meaningful text as real HTML so AI can read it without expensive optical character recognition.
What this signal tests
We sample the larger images on your page and run them through optical character recognition (OCR) to detect any text baked into the pixels. We then compare the volume of OCR-extracted text to the volume of real HTML text on the page. If more than 15 percent of your textual content lives inside images, the page fails.
Why it matters for your visibility in AI
Text inside a JPG or PNG is text only humans can read at a glance. To a crawler, the image is a wall of pixels. Reading that text requires OCR, which is computationally expensive. At web-crawl scale, AI ingestion services almost never run OCR; they skip the image and move on. Anything you put inside that image (pricing, feature lists, quotes, slide content) drops out of the text representation of your page entirely. This matters most on marketing pages, product pages, and slide-style content. If you screenshot your slide deck and post the screenshots, an AI summary of the page captures none of the slide content. If your pricing tiers are rendered as an infographic, AI shopping agents cannot compare your prices. WCAG 1.4.5 also discourages images-of-text on accessibility grounds.
Pass criteria at a glance
| Criterion | Passes when |
|---|---|
| <15% of textual content lives inside images. |
How we test it
We download each in-content image larger than 150 by 150 pixels and run Tesseract OCR over it. We sum the character count of recognised text and divide by the total of OCR characters plus DOM text. If the ratio exceeds 0.15 (meaning more than 15 percent of textual content lives in images), the page is flagged.
Show technical detection method
For each in-content image >150x150px, run OCR (Tesseract); sum OCR chars; compare to DOM text chars; flag pages where OCR/(OCR+DOM) > 0.15.
If your site fails: how to fix it
- Audit your marketing and pricing pages for slides, infographics, and screenshots of text. Replace each with real HTML text styled via CSS to look the same.
- For logos and brand graphics where the text is part of the design, put the full text in the image's alt attribute or in adjacent prose. This recovers the textual content without changing the visual design.
- For charts and data visualisations, publish the underlying data as an HTML table near the image and use alt text to summarise the chart's key takeaway.
- For PDFs or slide decks you must publish as images, also publish the source text content on the page (as a transcript, summary, or accordion).
- If you use a design system or component library, audit whether any components render text inside SVG paths instead of as accessible <text> elements. SVG <text> is crawlable; rasterised PNG text is not.
Quick facts
| Maturity | ESTABLISHED |
|---|---|
| Weight | high |
| Category | Multimodal |
Primary sources
Related signals
Frequently asked questions
Can't multimodal AI just OCR my images?
Technically yes; in practice almost never at crawl scale. OCR is one or two orders of magnitude more expensive than reading DOM text. Crawlers default to skipping it. Even when models do OCR (during a user-initiated query), accuracy degrades on stylised fonts, low contrast, and complex backgrounds.
What about decorative text inside hero images? My designer worked hard on that.
Keep the designed image, but also expose the text. The most common pattern is a CSS-positioned overlay where the headline is real HTML text rendered over a backgroundless image. That preserves the design and makes the text readable to crawlers.
Does this apply to icons with text like badges or buttons?
Small UI elements (under 150x150 pixels in our test) are excluded. Buttons with one or two words are not the problem. The problem is the slide-deck export, the infographic, the screenshot of a spreadsheet, or the marketing graphic that puts a paragraph of explanation into a PNG.
Run your own scan
Run a free scan and see how your site grades across all 155 AI-readiness signals.