Shopify Image Sizes: Product Photos, Banners, and Mobile Cropping Explained

Last updated
•
Expert reviewed
•
5 min read
Jacques Blom
Jacques Blom
CTO at Fudge.

Key takeaways

  • Shopify documents product image sizes, not banner sizes. Product images can be up to 5000 x 5000 px and must be under 20 MB, with 2048 x 2048 px suggested for square photos.1 Banner dimensions depend on your theme.
  • For a full-width desktop banner, 3840 x 1600 px is a safe upload. Dawn never requests a banner wider than 3840 px.2
  • Banners crop on mobile because the box changes shape. The proper fix is a separate mobile image, which Horizon supports and Dawn does not.3
  • Blurry images are almost always a width problem. Either the file is too small for the space at 2x, or the theme asks the CDN for too small a version.

A table of Shopify image sizes answers half the question. The other half is why a banner exported at the right size still gets cut off on a phone. This guide gives you the table first, then explains what Shopify does with the file after upload, why banners crop, and how to fix blur.

Every number is labelled documented (Shopify publishes it) or recommended (we derived it from theme code), so you know which are rules and which are judgment.

Why you can trust us

We have been in the Shopify space for over four years and have worked with hundreds of Shopify brands on their storefronts. Jacques has over 15 years of development experience. We build Fudge, an AI storefront editor with a 4.9 rating on the Shopify App Store and Built for Shopify status. The numbers here were read from Shopify’s documentation and the Dawn and Horizon theme source on the day of writing.


What are the right Shopify image sizes in 2026?

Image typeSize to uploadAspect ratioStatus and notes
Product image (square)2048 x 2048 px1:1Documented. Shopify’s suggested size for square photos.1
Product image (portrait)2048 x 2560 px4:5Recommended. Matches the Portrait card ratio in Dawn and Horizon.
Collection image2048 x 2048 pxSame as your product photosRecommended. Same upload limits as product images.
Hero or banner, desktop3840 x 1600 pxAbout 2.4:1Recommended. Shopify publishes no figure. Dawn’s banner requests up to 3840 px wide.2
Hero or banner, mobile1600 x 2000 px4:5Recommended. Needs a theme with a separate mobile image field. Horizon requests mobile hero images up to 1600 px wide.3
Slideshow slide3840 x 1600 pxEvery slide the sameRecommended. Dawn’s slideshow shares the banner’s height rules and widths.
Image with text1500 x 1500 px1:1 or 4:5Recommended. Dawn requests at most 1500 px here (1800 px with some image animations).
LogoAt least 600 px wideAnyRecommended. Dawn’s logo width setting tops out at 300 px and requests a 2x version. Use PNG.
Favicon32 x 32 px1:1Documented. Larger files are reduced to 32 x 32 px.4
Blog featured image2400 x 1350 px16:9Recommended. Dawn shows the article image up to 1100 px wide by default, so 2400 px covers 2x.
Social sharing image1200 x 630 px1.91:1Recommended. Shopify documents where to set it (Online Store → Preferences), not a size. The figure is Meta’s.5

The hard upload limits


Shopify image sizes versus what shoppers download

The file you upload is not the file a shopper downloads. Shopify’s CDN generates smaller versions on request, in whatever modern format the browser supports, including WebP and AVIF.6

The theme decides which version is requested. It lists several widths of the same image in a srcset attribute, and a sizes attribute tells the browser how wide the image appears on screen. The browser picks the smallest version that fills that space on that device.

Shopify’s image_tag filter writes this markup, including the width and height attributes that stop the page jumping as images load.7 For how the built-in CDN compares with third-party options, see our Shopify image CDN comparison.

Why a 2x image matters and a 6000 px one does not

Phones and many laptops pack two or three device pixels into every CSS pixel. A product card that is 400 px wide on screen needs an 800 px image to look sharp at 2x.

Going beyond 2x buys nothing, because the theme sets the ceiling. Dawn’s banner tops out at a 3840 px request and its product gallery at 1946 px.2 A 6000 x 3375 px banner is also 20.25 megapixels, which is over the theme image limit.


Shopify banner size: why does my banner crop on mobile?

Shopify publishes no banner size because the banner is a box whose shape is set by the theme section, not by your image. The section scales your image to cover the box and trims what does not fit.6

Dawn makes the arithmetic easy to see. With Height on Medium and default settings, its Image banner is at least 560 px tall on desktop and the image area is 340 px tall on mobile.2

A 2.4:1 desktop banner covering that phone box shows only about the middle 48% of its width. A 16:9 image shows about 65%, but loses around 30% of its height on the laptop.

No single file fits both boxes. There are four ways to deal with that. If the banner is not set up yet, start with how to change the homepage banner in Shopify.

Fix 1: set a focal point

A focal point tells the theme which part of the image must stay in frame. Click the image in Content → Files, in the theme editor, or in a product’s Media section, click the important area or drag the blue dot, and save.6

Each image has one focal point, and it applies everywhere the image is used. It works on Dawn 7.0.0 and later and on every Horizon theme.

A focal point chooses what survives the crop. It does not stop the crop.

Fix 2: let the section adapt to the image

In Dawn, set the banner’s Height to Adapt to first image. The section takes the image’s own aspect ratio, so nothing is trimmed.

The trade-off shows on mobile: a 2.4:1 banner on a 390 px phone becomes a strip about 160 px tall.

Fix 3: keep text out of the image

Text baked into the artwork is cropped along with everything else and shrinks to unreadable on a phone. Shopify’s guidance is to leave text out of slideshow and background images and add it in the theme editor.6

Live text stays the right size at every width, wraps on its own, and is readable by search engines and screen readers. If you must bake text in, keep it inside the middle 40% of the width.

Sale artwork is the usual offender. Our guide to the Black Friday homepage covers what else to change that week.

Fix 4: use a separate mobile image

This is the proper fix: a wide image for desktop and a 4:5 portrait image for phones, each composed for its own box.

Horizon supports this natively. Its Hero section has a Show different media on mobile checkbox that reveals mobile image pickers, and the theme outputs a picture element that swaps the source below 750 px.3

Dawn does not. Its Image banner has two pickers, but Image 2 sits beside Image 1 on desktop and stacks on mobile. It is not a mobile alternative.2

A common workaround is two banner sections with CSS hiding one per screen size. Shopify’s performance guidance recommends a picture element instead, so the browser downloads only the matching image.8

The Fudge route. Fudge adds the missing setting and the responsive markup to your theme’s banner section, so you only supply the two image files. Tell Fudge:

“Add a separate mobile image setting to my homepage banner so phones show a 4:5 portrait crop and desktop keeps the wide version. Keep the heading as live text over the image.”

You get native theme code as a draft you can preview on both screen sizes before publishing.

Need a mobile image field your theme does not have? Describe it to Fudge.
Try Fudge for Free

The code, if you are adding it yourself

Duplicate your theme first, then go to Online Store → Themes → ⋯ → Edit code and open the banner section. Add an image picker to the section schema:

{
    "type": "image_picker",
    "id": "mobile_image",
    "label": "Mobile image (4:5)"
}

Then output both images inside one picture element:

{%- assign desktop_image = section.settings.image -%}
{%- assign mobile_image = section.settings.mobile_image -%}

<picture>
  {%- if mobile_image != blank -%}
    <source
      media="(max-width: 749px)"
      srcset="
        {{ mobile_image | image_url: width: 800 }} 800w,
        {{ mobile_image | image_url: width: 1200 }} 1200w,
        {{ mobile_image | image_url: width: 1600 }} 1600w
      "
      sizes="100vw"
      width="{{ mobile_image.width }}"
      height="{{ mobile_image.height }}"
    >
  {%- endif -%}
  {{
    desktop_image
    | image_url: width: 3840
    | image_tag:
      widths: '750, 1100, 1500, 2000, 3000, 3840',
      sizes: '100vw',
      loading: 'eager',
      fetchpriority: 'high'
  }}
</picture>

Four things to know:


Shopify product image size: keeping grids consistent

A collection grid looks tidy when every featured image shares one aspect ratio. Shopify’s documentation makes the same point: mixed ratios display at different sizes side by side.1

Pick one ratio and export everything to it: 2048 x 2048 px for square, or 2048 x 2560 px for 4:5 portrait, which suits apparel and tall products.

The theme can enforce the ratio. In Dawn, the Product grid, Featured collection and Collection list sections each have an Image ratio setting with three options: Adapt to image, Portrait and Square. Portrait is 4:5 in the code.2

Portrait and Square crop to fill the card, from the centre unless a focal point is set. Adapt to image shows each photo uncropped, which is where uneven rows come from.

Dawn has no 2:3 option. A 2:3 photo in a Portrait card loses about 17% of its height, so check that heads and hems survive. For swapping files, see how to update product images in Shopify.

The Fudge route. If your theme’s card setting does not offer the ratio you want, Fudge changes the card markup and CSS. Tell Fudge:

“Make all product card images on collection pages a 4:5 portrait ratio, cropped from the centre, without stretching.”

You get the change as a draft to review. The photos still need enough room around the product to survive that crop.


Why do my Shopify images look blurry?

Blur means the browser was given fewer pixels than the screen needed. Work through this list in order:

  1. Is it only blurry for a moment? Shopify notes that images can appear soft and then sharpen as the full version loads. That is expected.6
  2. Is the source file big enough? Take the widest the image appears on screen and double it. A 1200 px file in a full-width banner falls short on any laptop.
  3. What did the browser load? Right-click the image, choose Inspect, and hover over the image URL. Chrome shows the rendered size and the intrinsic size. On a 2x screen, if intrinsic is smaller than rendered times two, that is the blur.
  4. What width did the theme ask for? Shopify CDN URLs carry a width= value. If your file is 3000 px wide and the URL says width=1100, the theme’s srcset or sizes is the cause.
  5. Was the file enlarged or heavily compressed before upload? Scaling a small image up adds pixels, not detail, and the CDN never enlarges it either.7
  6. Is there text in the image? Baked-in text softens whenever the image is scaled.

Cases 2, 5 and 6 are fixed by exporting a better file. Case 4 is a theme fix.

The Fudge route. A wrong sizes value or a srcset that stops too low is a code change inside the section. Tell Fudge:

“My hero image looks blurry on desktop. Check what widths the section requests and fix the srcset so large screens get a sharp image.”

Fudge edits how the section requests the image and returns it as a draft. The image files still have to be exported at the right size by you - Fudge fixes how the theme requests and crops them. The Shopify store editor page shows what else it edits.


Which file format and weight should you upload?

Upload JPEG for photographs and PNG for logos, icons and flat graphics with transparency. That is Shopify’s guidance for theme images.6 Its product media page ranks PNG first for product photos, so either works there.1 WebP and HEIC uploads are accepted too.

The upload format matters less than it used to, because the CDN converts on delivery to WebP or AVIF where the browser supports them.

On weight, Shopify’s position is that images do not need compressing before upload and that you should upload the best quality you can.6 Shoppers download the CDN’s resized version, not your original.

So the sensible target is dimensions, not kilobytes. Export at the pixel sizes in the table at high quality, stay under the 20 MB cap, and let the CDN compress. Squeezing a JPEG hard first only means it gets compressed twice.

If you still want smaller originals, our guide to compressing images in Shopify covers the tools.

FAQ

What is the best Shopify banner size?

Shopify does not publish one, because the banner's shape is set by the theme. For a full-width desktop banner, 3840 x 1600 px is a safe upload: the Dawn theme never requests a banner wider than 3840 px. If your theme has a separate mobile image field, add a 1600 x 2000 px portrait version for phones.

What size should Shopify product images be?

Shopify suggests 2048 x 2048 px for square product images. The maximum is 5000 x 5000 px or 25 megapixels, and the file must be under 20 MB. For portrait photos, 2048 x 2560 px gives a 4:5 ratio that matches the Portrait card setting in Dawn and Horizon.

Why is my Shopify banner cut off on mobile?

The banner section is a wide box on desktop and a nearly square box on a phone, and the theme scales your image to cover whichever box it is in. A wide image covering a near-square box loses its left and right edges. Set a focal point, switch the height to Adapt to first image, or use a separate portrait image for mobile.

Does the Dawn theme support a separate mobile banner image?

No. Dawn's Image banner has two image pickers, but the second shows another image beside the first on desktop and stacked on mobile. Horizon's Hero section does have a Show different media on mobile option. In Dawn you need a small code change to add one.

Why are my Shopify images blurry?

Usually the image is shown larger than the pixels the browser received. Either the uploaded file is too small for the space on a 2x screen, or the theme requests too small a width from the CDN. Inspect the image in your browser and compare the intrinsic size with the rendered size to tell which.

What is the maximum image size Shopify accepts?

Product and collection images can be up to 5000 x 5000 px or 25 megapixels, under 20 MB. Shopify's theme image page lists 20 megapixels and 20 MB for images uploaded for themes. The CDN serves images up to 5760 px wide or tall and never enlarges an image beyond its original size.

Should I upload JPEG, PNG or WebP to Shopify?

JPEG for photographs such as products and banners, PNG for logos, icons and anything needing transparency. WebP uploads are accepted as well. Shopify converts images to the best format each browser supports on delivery, including WebP and AVIF.

Jacques's signature
Files exported at the right size? Describe the crop to Fudge.

Footnotes

  1. Shopify Help Center, “Product media types” - product and collection images can be any size up to 5000 x 5000 px or 25 megapixels and must be smaller than 20 MB; 2048 x 2048 px is suggested for square product images; a consistent aspect ratio is needed for images to display at the same size on collection pages. https://help.shopify.com/en/manual/products/product-media/product-media-types ↩ ↩2 ↩3 ↩4 ↩5

  2. Shopify, Dawn theme source - sections/image-banner.liquid requests widths of 375 to 3840 px with Height options Adapt to first image, Small, Medium and Large, and has Image 1 and Image 2 pickers but no mobile image setting; assets/section-image-banner.css sets minimum heights of 42, 56 and 72rem on desktop and 28, 34 and 39rem on mobile (1rem is 10 px at Dawn’s default scale); snippets/card-product.liquid sets the Portrait card ratio to 0.8; snippets/product-thumbnail.liquid requests up to 1946 px. https://github.com/Shopify/dawn/blob/main/sections/image-banner.liquid ↩ ↩2 ↩3 ↩4 ↩5 ↩6

  3. Shopify, Horizon theme source, sections/hero.liquid - the Hero section has a custom_mobile_media checkbox labelled “Show different media on mobile” with separate mobile image pickers, and renders a picture element with a mobile source for screens up to 749 px wide at widths of 416 to 1600 px. https://github.com/Shopify/horizon/blob/main/sections/hero.liquid ↩ ↩2 ↩3

  4. Shopify Help Center, “Adding a favicon to your store” - the ideal favicon size is 16 x 16 or 32 x 32 pixels, and larger images are reduced to 32 x 32 pixels on upload. https://help.shopify.com/en/manual/online-store/images/add-favicon ↩

  5. Meta for Developers, “Images in Link Shares” - recommends images of at least 1200 x 630 pixels and an aspect ratio close to 1.91:1 for link previews. https://developers.facebook.com/docs/sharing/webmasters/images/ ↩

  6. Shopify Help Center, “Uploading images” - covers focal points (one per image, set from Content → Files, the theme editor or product Media; supported on Dawn 7.0.0 and higher and all Horizon themes), JPEG versus PNG guidance, automatic WebP and AVIF delivery, the 20 megapixel and 20 megabyte upload limits, cropping of wide images on tall screens, the advice to keep text out of slideshow and background images, and the note that images do not need to be compressed before upload. https://help.shopify.com/en/manual/online-store/images/theme-images ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8

  7. Shopify.dev, Liquid filter reference - image_url accepts a width or height up to 5760 px, never resizes an image larger than its original dimensions, and selects the output format automatically; image_tag adds width and height attributes, generates a srcset, accepts widths and sizes, and applies the focal point as an object-position style. https://shopify.dev/docs/api/liquid/filters/image_url and https://shopify.dev/docs/api/liquid/filters/image_tag ↩ ↩2 ↩3

  8. Shopify.dev, “Performance best practices for Shopify themes” - recommends replacing CSS-toggled mobile and desktop hero image pairs with a picture element so the browser downloads only the matching image, and marking the LCP image with fetchpriority high. https://shopify.dev/docs/storefronts/themes/best-practices/performance ↩

You might also be interested in

Shopify BFCM 2026: The Page-Builder Playbook
BFCM 2026 runs Nov 27-30. The Shopify storefront playbook: week-by-week timeline, the pages to build, the pre-launch checklist, and what to freeze.
Mobile-First Shopify Landing Page Patterns That Convert
Mobile Shopify landing page patterns that convert: single-column layout, sticky CTA, thumb-friendly targets, fast hero, and message match with your ad.
Building a BFCM Countdown Banner Without an App
Build a BFCM countdown banner in Shopify with no app: a copy-paste Liquid section with end date settings, timezone handling, and CLS-safe rendering.