Skip to main content

Reducing Spam Score in Image-Heavy Emails

Fix the image-to-text ratio rules: real text instead of baked-in copy, alt text that is not a substitute, image hosting signals, and the blocked-images fallback.

A message built as one large image scores badly, renders as an empty rectangle when images are blocked, and is unreadable to a screen reader. This guide covers the rules that fire on image-dominant messages, why they exist, and the changes that fix the score and the rendering at the same time.

Root Cause: Images Are Opaque to a Filter

A filter can read text. It cannot read an image, and it cannot verify that the pixels say what a legitimate message would say. Historically, senders who wanted to evade content filtering did exactly that — rendered the message as a picture — so filters learned to treat an image-dominant message as suspicious on its own.

The rules measure the ratio of rendered image area to text characters, and they fire on a spectrum rather than at a single point. A message that is mostly text with a header image trips nothing. A message where images occupy most of the visible area and the text is a single line of legal footer trips several rules at once, each contributing points.

The reason this matters beyond the score is that all three failure modes have the same cause. A message with no real text is unreadable when images are blocked — which is the default in Outlook and common elsewhere — and it presents nothing to a screen reader. Adding genuine text fixes the filter, the blocked-image rendering and the accessibility problem together.

Image-only versus text-led rendering with images blocked With images blocked, an image-only message shows an empty frame while a text-led message remains fully readable. The Score and the Rendering Share a Cause image-only, images blocked empty frame legal footer — the only text text-led, images blocked Your order has shipped Track parcel complete without a single image
The blocked-image rendering is the same test the filter is applying: what is left when the pictures are removed.

The Exact Fix: Real Text Carries the Message

The rule is that the message must be complete without images. Not degraded gracefully — complete. Every fact the recipient needs is live text; images add brand and context on top.

<!-- The headline is text, not a picture of text. It survives image blocking,
     is read by screen readers, and is what the filter counts. -->
<tr>
  <td style="font-family:Arial,sans-serif;font-size:28px;line-height:34px;
             mso-line-height-rule:exactly;color:#450920;padding:0 24px;">
    Your order has shipped
  </td>
</tr>
<tr>
  <td style="font-family:Arial,sans-serif;font-size:16px;line-height:24px;
             mso-line-height-rule:exactly;color:#334155;padding:12px 24px 0;">
    Order SEED-0001 left our warehouse this morning and should arrive by Friday.
  </td>
</tr>
<!-- The image is supporting content. width and height prevent layout shift
     when it is blocked; the alt text describes it rather than replacing the
     copy above, which already carries the message. -->
<tr>
  <td style="padding:24px;">
    <img src="https://cdn.example.com/parcel-illustration.png"
         width="552" height="200" alt="Illustration of a parcel in transit"
         style="display:block;border:0;width:100%;max-width:552px;height:auto;">
  </td>
</tr>

Two details are load-bearing. width and height attributes reserve the space so a blocked image leaves a correctly-sized gap rather than collapsing the layout — several clients ignore CSS dimensions on a blocked image but honour the attributes. And the alt text describes the image, it does not repeat the headline: the headline is already present as text, so duplicating it in alt produces a message that reads twice to a screen-reader user.

What Actually Counts Toward the Ratio

The rules measure rendered image area against text characters, which produces some counter-intuitive results.

Change Effect on ratio Effect on score
Replacing a headline image with live text Large improvement Removes several rule hits
Adding a paragraph of body copy Improvement Reduces the ratio directly
Compressing the image file None The area is unchanged
Splitting one image into four None Total area is what counts
Reducing displayed image dimensions Improvement Less area against the same text
Adding alt text None for the ratio Helps accessibility, not the score

The third and fourth rows are where effort is most often wasted. File size is irrelevant to these rules — a heavily optimised 40KB hero occupying 600×400 counts the same as an unoptimised one. And slicing an image into pieces, a habit inherited from older layout techniques, changes nothing because the areas sum.

The row that surprises people in the other direction is alt text. It is essential for accessibility and for the blocked-image experience, but it does not count as text for ratio purposes — filters know it is not body copy. A message that is one image with an excellent alt attribute still scores as an image-only message.

Changes that move the ratio Converting images to text and adding copy improve the ratio, while compressing files, slicing images and adding alt text do not. Area Against Characters — Nothing Else moves the ratio headline image becomes live text a real paragraph of body copy smaller displayed dimensions each also improves the blocked-image view does not move it compressing the file slicing one image into four adding alt text all worth doing — just not for this score
Optimisation and slicing are worth doing for other reasons; neither changes a ratio computed from rendered area.

Variant: Where the Images Are Hosted

Beyond the ratio, image hosting contributes its own signals. Serve images over HTTPS from a hostname under your sending domain, ideally the same subdomain the links use. A message whose links point at mail.example.com and whose images load from an unrelated shared CDN hostname presents two unrelated identities, which several filters weigh.

Avoid hotlinking to a third-party asset host you do not control, and never serve an image from a bare IP address — that trips a rule on its own and has no legitimate use. Where a marketing tool provides image hosting, check whether a custom domain can be configured; it usually can, and it is the same CNAME change that fixes the tracking-domain mismatch.

Rebuilding an Image-Only Template

Most teams meeting this problem have an existing template that is one exported picture, usually produced by handing a design file straight to an export tool. Rebuilding it is a mechanical process rather than a redesign.

Separate the layers. Go through the exported image and list what it contains: a logo, a headline, one or two paragraphs, a button, possibly an illustration and a footer. Everything except the logo and the illustration is text that was rendered as pixels, and each of those becomes a real element.

Rebuild in reading order. Compose the message top-down as live text with the illustration placed where it sits visually. The result is usually shorter than the original design suggests, because a paragraph that occupies a large area as an image occupies two lines as text — which is itself a signal that the original was carrying less information than its size implied.

Keep only what is genuinely pictorial. A logo is genuinely an image. A photograph is genuinely an image. A rounded rectangle with the words "Track your parcel" inside it is a button, and rebuilding it as a bulletproof button makes it clickable at the correct size, readable when images are blocked, and reachable by keyboard.

Re-cut the remaining artwork at the right dimensions. An illustration exported at the full 600px content width contributes six times the area of the same illustration at 200px. Where the artwork is decorative rather than informative, a smaller placement improves the ratio and usually the design.

The measurable outcome is consistent: a template rebuilt this way typically drops two to three points of score, becomes readable with images blocked, and gains a plain-text part worth sending — because there is now text to generate it from. The work is a day or so per template and it does not need to happen all at once; the highest-volume template first captures most of the benefit.

Separating an exported design into layers One exported picture is decomposed into a logo, live headline, live body copy, a real button and a smaller illustration. Most of the Picture Was Text one exported image 600 x 800 px logo — stays an image headline — becomes text body copy — becomes text button — becomes an anchor illustration — re-cut smaller Two elements stay pictorial; three were never images at all.
The decomposition is mechanical: everything that is words becomes words, and what remains is genuinely pictorial.

Pipeline Integration

Assert the ratio at build time rather than discovering it in a spam report. A check that sums the declared width × height of every image and compares it against the character count of the text parts is a few lines of code and fails on the template that introduced the problem.

Pair it with an assertion that the plain-text part is non-trivial. An image-heavy HTML message almost always has a thin text part, because the text part is generated from the HTML — so the two defects travel together and one check can catch both.

Validation and Deployment Checklist

Frequently Asked Questions

Is there a specific ratio to aim for?

Filters do not publish one, and chasing a number is less useful than the qualitative test: with every image removed, is the message complete? If yes, the ratio is almost certainly fine. If no, the ratio is a symptom rather than the problem.

Our design team wants a fully designed hero image. Is that acceptable?

Yes, provided the message is complete without it. A hero image above a text headline and a text body is entirely normal and scores fine. What does not work is a hero image instead of the headline, which is the version that breaks in three ways at once.

Do background images count toward the ratio?

Inconsistently — some filters include them, some do not, and clients differ in whether they load them at all. Since background images already need a solid colour fallback, treat them the same way here: never let one carry information, and the ratio question stops mattering.

What about animated GIFs?

They count as their rendered area like any image, and they add file weight that can push the message toward Gmail's clipping threshold. The bigger practical issue is that Outlook renders only the first frame, so any information in later frames is invisible there — which makes the first frame the only one that can carry meaning.


← Back to Spam Filter and Inbox Placement Testing