ImagePDF.Tools
Productivity

Shopify Image Optimization: What the Platform Does (and Doesn't Do) For You

N
NikolaLast updated on June 20, 2026 · 9 min read

Summary

Shopify serves WebP and has a CDN, but it won't resize a 14 MB banner or fix your LCP. Here's the checklist that actually moves your PageSpeed score.

Shopify stores are routinely blamed on a "heavy theme" when the real cause is a single collection banner uploaded at 8000×5000 pixels and 14 MB. Shopify serves that file to every visitor's phone, scales it down in-browser, and the visitor waits. The platform does a lot for image delivery, but not everything. Understanding exactly where Shopify's automation ends and your manual work begins is the difference between a 45 and a 90 PageSpeed score.

Most Shopify merchants never touch their image settings after launch. They upload whatever comes out of the camera app or design tool and trust that "Shopify handles it." For a store with ambitions past 50K monthly visitors, that's a mistake with a real revenue cost: Google's research shows a 100ms improvement in page load correlates with a 0.6–1% increase in conversion rate.

Image compression results: JPEG 76% reduction, PNG 71% reduction, WebP 75% reduction | ImagePDF.Tools
Compressing product images before upload gives Shopify less work and faster pages

What Shopify Does Automatically

Shopify's image infrastructure is genuinely good. Here's what happens without any action from you:

  • WebP serving: Shopify's CDN (Fastly) automatically serves WebP to browsers that support it, about 97% of all traffic. You upload a JPEG; visitors receive WebP.
  • Global CDN: Images are served from the nearest Fastly edge node. A visitor in Singapore gets the image from an Asian PoP, not your origin server.
  • Thumbnail generation: Shopify generates seven standard sizes from your uploaded source (100px, 160px, 240px, 480px, 640px, 1024px, 2048px). Theme code requests the appropriate size.
  • Lazy loading: Most modern Shopify themes apply loading="lazy" to product grid images, below-fold images defer loading until the user scrolls.
  • HTTPS delivery: All image URLs use HTTPS automatically; no mixed-content issues.

What Shopify Does NOT Do

This is the part that surprises most merchants:

  • Shopify will not refuse an oversized upload. A 15 MB, 8000×5000px image uploads successfully, is stored in full, and its processing time on the CDN is proportionally longer.
  • Shopify will not fix a poor quality source. If you upload a blurry, over-compressed JPEG, the CDN serves a blurry image. Quality in = quality out.
  • Shopify will not add fetchpriority="high" to your LCP image. This is controlled by theme code. Most themes do not do it, which is a direct LCP regression for every page.
  • Shopify will not strip EXIF metadata. GPS coordinates, device model, shooting timestamp, and software version are preserved on your product images. These add unnecessary file weight and expose data you likely do not want public.
  • Shopify will not resize your banner to a sensible dimension. You upload a 6000px hero image; Shopify stores it at 6000px and generates thumbnails from it. Uploading at 2048px instead saves storage, reduces processing, and produces identical display quality.
⚠️

Shopify's largest generated thumbnail is 2048px. Uploading a 6000px source gives you no additional display quality, but the 6000px file is stored in full and processing takes longer. Always upload banners and product images at 2048px or below.

Shopify Images vs. PageSpeed: What Gets Flagged

PageSpeed InsightRoot causeShopify fixes it?You fix it?
Serve images in modern formatsJPEG source uploaded; CDN serves WebPYes (auto)-
Properly size imagesHero uploaded at 4000px, rendered at 800pxNoYes, resize before upload
Eliminate render-blocking resources (LCP)No fetchpriority="high" on heroNoYes, edit theme Liquid
Defer offscreen imageslazy missing on some imagesPartially (theme-dependent)Yes, check theme code
Efficiently encode imagesJPEG quality 95+ at uploadNoYes, compress to q80 before upload
Remove unused metadataEXIF preservedNoYes, strip before upload
Common Shopify image issues and their PageSpeed Insights audit labels

The LCP Problem on Shopify Stores

The LCP element on most Shopify stores is the hero banner or the first product image in the product detail page. LCP is the primary Core Web Vitals metric Google uses for search ranking. Common LCP failures on Shopify:

  • Banner uploaded at 4000×2000px, even the 2048px thumbnail Shopify generates is large; the source is wasteful
  • loading="lazy" on the hero banner, most themes apply lazy loading globally, which delays the most important image on the page
  • No fetchpriority="high", the browser treats the hero image with the same priority as a product thumbnail below the fold
  • Banner served as 1920px to a 390px phone, Shopify generates a 640px thumbnail but some theme configurations request the 1920px size for mobile too

Theme Liquid Fix: fetchpriority for the Hero Image

liquid
{%- comment -%}
  Add to your hero/banner section Liquid file.
  Sets fetchpriority="high" only for the first section (LCP candidate).
{%- endcomment -%}
{%- if section.index == 1 -%}
  {%- assign fetchpriority = "high" -%}
  {%- assign loading = "eager" -%}
{%- else -%}
  {%- assign fetchpriority = "auto" -%}
  {%- assign loading = "lazy" -%}
{%- endif -%}

<img
  src="{{ image | image_url: width: 1920 }}"
  srcset="{{ image | image_url: width: 750 }} 750w,
          {{ image | image_url: width: 1100 }} 1100w,
          {{ image | image_url: width: 1500 }} 1500w,
          {{ image | image_url: width: 1920 }} 1920w"
  sizes="100vw"
  loading="{{ loading }}"
  fetchpriority="{{ fetchpriority }}"
  width="1920" height="600"
  alt="{{ image.alt | escape }}"
>

Practical Shopify Image Upload Checklist

  1. 1.Banner/hero images: 1920×600px (standard widescreen banner), compressed to under 300 KB before upload. Never upload the raw camera export.
  2. 2.Product main image: 2048×2048px square (Shopify's thumbnail engine works best with square sources), JPEG quality 80, under 400 KB.
  3. 3.Product gallery images: Same spec as main, Shopify generates all thumbnail sizes from the same uploaded source.
  4. 4.Collection page thumbnails: Shopify renders these at ~450px wide. A 1200px source is more than enough; aim for 100–200 KB per image.
  5. 5.Strip EXIF before upload: Remove GPS, device info, and timestamps. Use imagepdf.tools/remove-metadata, done in-browser, nothing uploaded.
  6. 6.Check theme Liquid for lazy-loading the hero: Search your theme files for loading="lazy" and remove it from the first section image.

The Bottom Line

Shopify's CDN and automatic WebP conversion handle delivery perfectly. The bottleneck is always the source file you upload. Compress banner images to under 300 KB and product images to under 400 KB before uploading. Compress your product images here, everything happens in your browser, nothing is uploaded to our servers.

Frequently asked questions

Does Shopify automatically convert images to WebP?
Yes. Shopify's CDN (powered by Fastly) serves WebP automatically to browsers that support it, which is approximately 97% of all traffic. You do not need to upload WebP files yourself, upload JPEG or PNG and Shopify converts and serves WebP on the fly. However, this only improves format efficiency; it does not fix oversized source images or missing fetchpriority attributes.
What image dimensions should I use for Shopify product photos?
Upload product images at 2048×2048px square. This is the maximum size Shopify generates thumbnails from, and square images work correctly with Shopify's aspect-ratio cropping for product grids. For quality, JPEG at 80 is indistinguishable from 95 at screen resolution and typically saves 40–60% in file size. Target under 400 KB per product image after compression.
Why is my Shopify store still slow after optimizing images?
Image compression is often the largest single gain, but it is not the only issue. After optimizing images, check: theme JavaScript bundle size (Dawn and most modern themes are well-optimized, but third-party apps frequently inject large scripts), app embed blocks that load resources on every page, and font loading strategy. Use PageSpeed Insights to identify the remaining bottlenecks after images are addressed.
Does Shopify strip EXIF data from uploaded images?
No. Shopify preserves EXIF metadata on uploaded images. This means GPS coordinates from where a photo was taken, device model, shooting timestamp, and software information are embedded in the served file. For most product photos this is a minor privacy concern and a small file size increase. Strip EXIF before uploading using imagepdf.tools/remove-metadata, the process takes a few seconds per image.
What is the maximum image size I should upload to Shopify?
Shopify accepts images up to 20 MB and 4472×4472px. However, its largest generated thumbnail is 2048px. Uploading anything larger than 2048px gives you no additional display quality but increases storage, processing time, and the risk of timeouts during image transformation. For banners, stay at 1920px wide. For product images, 2048×2048px is the optimal upload size.

Sources & references

This article was researched and written by Nikola, drawing on the following primary sources and documentation:

Ready to try it?

All tools run entirely in your browser, no uploads, no account required.

Compress Image
You're offline, cached tools still work