Website slow on phones because of big photos: before and after

A photo straight from a phone or camera is often 2 to 8 MB. Put a few of them on the home page and a customer on mobile data stares at a blank or half-drawn page while they arrive, and many leave before it finishes. Google also measures how fast the main picture appears and ranks slow pages lower. In a check of 43,077 small-business home pages, 3,378 had at least one image over 1 MB; on the typical one those images added up to 2.5 MB, and one in ten carried more than 10 MB.

Before: 2.5 MB of photos

about 12 seconds

for the photos alone to arrive on a slow mobile connection

After: resized and saved as WebP

about 1 second

for the same photos at a tenth of the size; on screen they look the same

The fix in one sentence

Save each photo at the width it is actually shown (1600-2000 pixels is plenty for a full-width banner, 800 for a photo in a column) and in a modern format (WebP), then replace the original. A 1.7 MB banner usually comes out well under 300 KB.

By platform

WordPress: install a free image-compression plugin (EWWW Image Optimizer, ShortPixel or Smush all have a free tier), run its bulk optimize on the Media Library and turn on WebP. Then open the home page and check that the banner is not set to "Full size" in the image block if a "Large" size looks the same.
Wix, Squarespace, Shopify: these resize photos for you in most places. When a page is still heavy, it is usually a background image, a slideshow or a picture added through custom code or an embed: export that photo at 2000 pixels wide and upload it again in place of the original.
Any site, no install: open the photo in Squoosh (squoosh.app, free, runs in the browser), set the width to 1600-2000, choose WebP at quality 75, and upload the result in place of the original. Or, from a terminal:

cwebp -q 75 -resize 1600 0 banner.jpg -o banner.webp

Hand-built HTML: also tell the browser the size and let photos further down the page load later:

<img src="team.webp" width="800" height="533" loading="lazy" alt="Our crew at a kitchen remodel">

(Leave loading="lazy" off the top banner: that one should load first.)

How to check your own page

Open pagespeed.web.dev, enter the address and look under "Properly size images" and "Serve images in modern formats": both list each heavy photo with how much it would save.

The timings are arithmetic, not a measurement of a real site: 2.5 MB, and a tenth of it, at 1.6 Mbps, the slow mobile connection Google's Lighthouse test simulates, counting the photos only. Real pages also load text, scripts and fonts. The 43,077-site figures come from our own scan of small-business home pages in 2026 (images over 1 MB by their download size). More before/after examples: all demos.