Skip to main content
Emailens
Blog

Email Banner Size and Image Widths That Hold in Every Inbox

Export each email image at twice the width it is displayed at, put the display width in the img tag's width attribute for Outlook Classic, and add max-width:100%; height:auto so it shrinks on phones.

max-width

Works in 20 of 21. Partial in Outlook Classic.

The fix for Outlook Classic

Use a fixed-width table wrapper for Outlook

after
<!--[if mso]>
<table role="presentation" width="600" cellpadding="0"
  cellspacing="0" border="0" align="center"><tr><td>
<![endif]-->
<div style="max-width: 600px; margin: 0 auto;">
  Content here
</div>
<!--[if mso]>
</td></tr></table>
<![endif]-->
Show the original
before
<div style="max-width: 600px; margin: 0 auto;">
  Content here
</div>

The checker needs a computer screen.

A free account opens all 21 clients and keeps your checks for 7 days. Create a free account →

Real installs

Outlook Classic

caniemail: max-width is partly supported in Outlook Classic.

  • Outlook 2019 (Windows), real install · counted as Outlook Classic

    The Emailens probe for max-width on a real Outlook 2019 (Windows)
More versions (2)
  • Outlook 2016 (Windows), real install · counted as Outlook Classic

    The Emailens probe for max-width on a real Outlook 2016 (Windows)
  • Outlook 2007 (Windows), real install · counted as Outlook Classic

    The Emailens probe for max-width on a real Outlook 2007 (Windows)

Emailens simulation of Outlook Classic

The same probe in the Emailens simulation of Outlook Classic

Partial. Only works on <table> elements.

Philippe Kam, founder of Emailens · Published 28 Oct 2026

@emailens/engine 0.17.2 · data last changed 27 Oct 2026

Part of the HTML email guide · all guides

The hero image looked right in the design tool. On a phone it is soft at the edges, in Outlook it is twice the width of the email and pushes everything else off to the right, and the person reading it decides the brand is careless. All three come from the same two numbers: the size of the file and the size you tell the client to draw it.

The width most emails use

Most HTML emails sit in a container 600 to 640 pixels wide. That is a convention, not a rule any client enforces. It dates from desktop preview panes and small screens, where a wider email would not show in full, and it survives because it gives a readable line length on desktop and narrows cleanly on phones. ZeptoMail's template guide calls 600 to 640 pixels the industry standard; EDMdesigner traces the 600 to preview windows of limited size.

Pick one width and size every image from it. This post uses 600. How the container narrows on a phone is a layout question, covered in responsive email design.

Export at twice the display width

High-density screens, such as Apple's Retina displays, use several physical pixels for every CSS pixel. A 600 pixel file drawn 600 pixels wide on one of them is stretched, and looks soft. Export the file at double the width it is displayed at, a 1200 pixel file for a 600 pixel banner, and the screen has a real pixel for each one it draws. Email on Acid's advice is to get as close to double as you can; it does not have to be exact.

Then tell the client the display width, not the file's. That is where the second problem comes from.

Why Outlook needs the width attribute

Most clients size an image from its CSS. Outlook Classic mostly does not. In the engine's data, taken from caniemail, max-width is partly supported in Outlook Classic. It only applies to tables there, and the CSS width property does not apply to an <img> at all. What Outlook Classic reads is the width attribute on the tag. Leave it off, and Email on Acid's test shows Outlook drawing the image at its native size, a 1200 pixel retina file 1200 pixels wide, blowing out the tables around it.

So every image gets both:

  • width="600", the display width in plain pixels, no px and no percentage. Outlook Classic uses it. caniemail notes that a percentage there is worked out from the file's width, not the column's, so width="100%" on a 1200 pixel file is still 1200 pixels wide.
  • style="max-width:100%; height:auto", for everyone else. max-width lets the image shrink when the column is narrower than 600 on a phone, and height:auto keeps its proportions. Across all clients, max-width: Works in 20 of 21 · partial in 1.

Leave the height attribute off. Without it every client works out the height from the file's proportions. With it, a client that ignores the CSS keeps the fixed height while the width shrinks: height is not supported in Yahoo Mail.

One more Outlook catch: caniemail notes that sizes set in attributes do not scale when Windows runs at 120 dpi. That is the same display-scaling problem that breaks background images; the Outlook background images guide covers it.

A 600px banner, done right

banner.html
13 lines
<!-- banner@2x.jpg is 1200px wide. It displays at 600. -->
<table role="presentation" width="600" align="center"
       cellpadding="0" cellspacing="0" border="0"
       style="width:100%; max-width:600px;">
  <tr>
    <td>
      <img src="https://example.com/banner@2x.jpg"
           width="600"
           alt="Autumn sale: 20% off every jacket"
           style="display:block; max-width:100%; height:auto; border:0;">
    </td>
  </tr>
</table>

The file is 1200 pixels wide, the tag says 600, the style lets it shrink, and the alt text carries the offer if the image does not load. Check your own version against every client in the email rendering preview.

Sizes for common placements

In a 600 pixel email. The source width is the display width doubled; the display width is what goes in the width attribute.

PlacementDisplay widthSource width (2x)How
Full-width banner, edge to edge600px1200pxThe container width.
Banner inside 20px side padding560px1120px600 − 2 × 20.
Two-column image, 20px padding, 20px gutter270px540px(600 − 40 − 20) ÷ 2.
Logo150px300pxAn example width; use your own.
Icon24px48pxAn example width; use your own.

Heights follow the design. Crop the file to the shape the template shows, so nothing has to be cropped in the client.

File format and weight

Doubling the width roughly quadruples the pixels, so compress hard. Email on Acid points out that large images add to what the reader has to download, and ZeptoMail's guide suggests keeping each image under 200 KB. Pick the format by what is in the image:

FormatUse forSupport (engine data)
JPEGPhotos and anything with gradients.Works in 20 of 21. Untested in Superhuman.
PNGLogos, icons, flat colour, transparency.Works in 20 of 21. Untested in Superhuman.
GIFSimple animation.Works in 19 of 21. Partial in Outlook Classic. Untested in Superhuman.
WebPSmaller photos, where it is shown.Works in 16 of 21. Not supported in Outlook Classic. Partial in Gmail, Gmail Android and Gmail iOS. Untested in Superhuman.
SVGVector logos and icons.Works in 17 of 21. Partial in Gmail, Gmail Android and Gmail iOS. Untested in Superhuman.

JPEG and PNG are the safe pair. The partial cells hide real changes: caniemail records Gmail converting WebP to JPEG and rasterising SVG to PNG, and Outlook Classic not supporting animated GIFs, so never let a GIF's message depend on the animation. A WebP-only banner leaves a gap in Outlook Classic. Do not embed images as base64 to save a request: Works in 15 of 21. Not supported in Gmail, Gmail Android, Gmail iOS and 2 more. Untested in Superhuman. Images you link to are fetched separately and do not count toward Gmail's size limit; the HTML does, and Gmail clipping explains what happens past it.

When images do not load

Some readers never see the banner. Gmail shows images by default but holds them back on mail it finds suspicious, and readers can turn them off. Put the offer and the button in live text, and give every image alt text that says what it shows; the email accessibility guide covers how to write it. Logos on a transparent background have a second problem in dark mode, covered in the dark mode email guide.

Questions

What is the best size for an email banner?

Display it at the width of your email container, which by convention is 600 to 640 pixels, and export the file at twice that width, so 1200 pixels wide for a 600 pixel banner. Set width="600" on the img tag and max-width:100%; height:auto in its style, so it is sharp on high-density screens, shrinks on phones and keeps its width in Outlook Classic.

What is the best image size for email?

Twice the width the image is displayed at, with the display width written in the img tag's width attribute. A half-width image in a 600 pixel email with 20 pixels of padding and a 20 pixel gutter displays at 270 pixels, so export it at 540. Keep the file light: ZeptoMail's guide suggests staying under 200 KB per image.

What size should an email header image be?

The same rule as any banner: as wide as the container (600 pixels is the common choice) or as wide as the padded column inside it, exported at double that width. The height is your design's call; keep the headline and the call to action out of the image so they still read when images are off.

Does Gmail resize images in email?

Gmail draws the image at the size your HTML gives it: max-width works in Gmail. So max-width:100% shrinks a wide banner to fit a phone. What Gmail changes is the format: the engine's data, from caniemail, shows it converting WebP to JPEG and rasterising SVG to PNG.

What width should an email be?

600 to 640 pixels is the convention. It dates from preview panes and small screens, and it still leaves a comfortable line length on desktop while a fluid layout narrows it on phones. Wider emails can work, but test them in the clients your readers use.

Your next question

Also useful: Gmail Clipping & Size Checker · Email Rendering Playground · max-width in Outlook Classic: the fix

Paste the email that broke.

The checker needs a computer screen.

Get new email CSS fixes by email, or follow by RSS.