Load speed has been a confirmed Google ranking factor since 2018 for desktop and 2021 for mobile. Beyond that, it directly affects conversion rate: every extra second of load time increases page abandonment by up to 32%, according to Google's own data. And in e-commerce, Portent studies show pages that load in 1 second convert up to 3 times more than pages that take 5 seconds.

Images typically account for 50–80% of a web page's total weight. Optimizing them correctly is therefore the highest-impact intervention for any site's performance.

What PageSpeed Insights checks about images

Google PageSpeed Insights (PSI) analyzes your page and flags image-related issues in several categories. The most common are:

The 6 principles of image optimization for the web

1. Use the right format for each type of image

Choosing the format is the highest-impact decision, even before any compression:

Image typeIdeal format in 2026Alternative
Photography (product, banner, blog)WebP lossyJPG 80–85%
Logo, icon with transparencyWebP lossless or SVGPNG
Icons and vector illustrationsSVGWebP PNG
Screenshot with textWebP losslessPNG
Short animationAnimated WebP or MP4GIF
Favicon.ico + PNG (multiple sizes)

WebP produces files 25–35% smaller than JPG and 20–30% smaller than PNG at equivalent visual quality. In 2026, compatibility exceeds 97% of browsers in use — there's no longer a technical reason to avoid it on new sites.

🔄 Immediate action: use the ImageTools Image Converter to convert your existing JPG and PNG photos to WebP before uploading. It's the highest-impact change with the least effort.

2. Compress without giving up visible quality

Compression is the process of reducing file size while keeping the image's dimensions. For JPG photos, lowering quality from 100% to 80% produces files 5–10 times smaller with an imperceptible difference on screen. That's the ideal range for the web.

Practical file-size references by image type:

Compress your images for the web now

The ImageTools Image Compressor smartly reduces JPG, PNG, and WebP — no files sent to external servers, no sign-up.

Compress images for free

3. Upload images at their real display size

This is the most common mistake and also one of the most impactful: uploading images much larger than the space they're displayed in. The browser downloads the full image and then discards the excess pixels when rendering.

Examples of the cost of this mistake:

The rule is simple: the image sent to the server should be at most double the display dimensions (double to cover Retina/HiDPI screens). For a 600px-wide space, upload at most 1200px.

Use the ImageTools Image Resizer to adjust dimensions before uploading, entering exact values in pixels or percentage.

4. Implement lazy loading

Lazy loading is the technique of loading images only when they're about to enter the visible screen area, instead of downloading all page images at once on initial load. The impact is significant: on pages with many images (like product listings or long articles), lazy loading can reduce the initial page weight by 60–80%.

The simplest implementation is native in modern HTML — just add the loading="lazy" attribute to image tags:

<!-- Image that should load immediately (above the fold) -->
<img src="main-banner.webp" alt="Banner" loading="eager">

<!-- Images that can wait (below the fold) -->
<img src="product-1.webp" alt="Product 1" loading="lazy">
<img src="product-2.webp" alt="Product 2" loading="lazy">

Important: never apply loading="lazy" to the main image above the fold (hero, banner, first product photo). Doing so delays LCP — the most important Core Web Vitals metric — and directly hurts your PageSpeed score.

5. Set width and height on image tags

When the browser starts loading a page, it builds the layout before knowing the image sizes. If width and height aren't set, the browser doesn't reserve the correct space — and when the image loads, the layout "jumps," shifting text and buttons. This is what PageSpeed measures as Cumulative Layout Shift (CLS), another Core Web Vital.

<!-- No dimensions: causes layout shift -->
<img src="product.webp" alt="Product">

<!-- With dimensions: reserves the correct space from the start -->
<img src="product.webp" alt="Product" width="600" height="600">

The width and height values in HTML don't need to match the visual display size — they just define the aspect ratio. CSS handles the display size.

6. Use responsive images with srcset

The srcset attribute lets you provide different versions of an image for different devices — sending a smaller image to phones and a larger one to desktops. The browser automatically picks the most suitable version for the user's screen.

<img
  src="product-800.webp"
  srcset="product-400.webp 400w,
          product-800.webp 800w,
          product-1200.webp 1200w"
  sizes="(max-width: 600px) 400px,
         (max-width: 900px) 800px,
         1200px"
  alt="Product"
  width="800"
  height="800"
  loading="lazy"
>

For e-commerce sites with many product photos, srcset can reduce the data transferred to mobile users by 40–60%.

Complete image optimization checklist

Use this list before publishing any page or updating existing images:

Optimization by platform

WordPress

WordPress automatically converts to WebP starting with version 6.1 if the server supports it. To be sure: install an optimization plugin like Imagify, ShortPixel, or Smush — they compress, convert to WebP, and add lazy loading automatically to images already in the media library.

Shopify

Shopify has automatically converted images to WebP and served the correct version per device since 2021. What the store owner still needs to control manually is the size of uploaded images — 2048×2048px is recommended for product photos, which Shopify resizes for each display context.

Wix, Squarespace, and other builders

Most modern builders already apply compression and lazy loading automatically. What still depends on the user is uploading images with reasonable dimensions — uploading 8 MB camera photos overloads the server and can result in variants larger than necessary.

Plain HTML/CSS sites or frameworks (Next.js, Nuxt, etc.)

In these cases, all optimization is the developer's responsibility. Next.js's <Image> component, for example, automates lazy loading, srcset, and WebP conversion. For frameworks without that abstraction, manual optimization following the checklist above is necessary.

E-commerce tip: the LCP (Largest Contentful Paint) image on product pages is almost always the main product photo. Make sure it's in WebP, compressed, correctly sized, and without lazy loading. That single image carries the most individual weight in these pages' PageSpeed score.

How to measure the impact of optimizations

After applying optimizations, measure the result with these tools:

Frequently asked questions

Does optimizing images actually improve Google ranking?
Yes, both directly and indirectly. Directly: page speed and Core Web Vitals are confirmed Google ranking factors. Indirectly: faster pages have lower bounce rates and longer time on page — behavioral signals Google uses to assess relevance. A slow site that loses the visitor before content even shows has no chance to demonstrate relevance.
What's the difference between PageSpeed Insights and Core Web Vitals?
PageSpeed Insights is Google's diagnostic tool — it analyzes a URL and gives a score from 0 to 100 with recommendations. Core Web Vitals are the three specific metrics Google uses as a ranking factor: LCP (Largest Contentful Paint, load speed of the main element), INP (Interaction to Next Paint, responsiveness), and CLS (Cumulative Layout Shift, visual stability). Images directly affect LCP and CLS.
Do I need to convert all my site's images to WebP?
For new uploads, yes — WebP should be the default. For existing images, the impact depends on volume: a site with 20 images probably doesn't need an urgent migration, but an e-commerce store with hundreds of product photos will see a significant performance boost after converting. Use the Image Converter to convert in batches before re-uploading.
What is LCP and why is the main image so important for it?
LCP (Largest Contentful Paint) measures how long it takes for the largest visible element on the page to load. On most sites, that element is an image — the main banner, a product photo, or an article's featured image. Google uses LCP as an indicator of when the page "feels ready" to the user. For a good score, LCP should occur in under 2.5 seconds. An unoptimized LCP image can triple that time.
Can lazy loading hurt SEO?
No, when implemented correctly. Googlebot has supported native lazy loading since 2019 and indexes images loaded with loading="lazy" normally. The only caution is not to apply lazy loading to the LCP image — the main image above the fold. Doing so delays loading of the page's most important element and hurts the LCP score.
What image size should I use for a site hero/banner?
For full-width banners on desktop, 1920px wide is the maximum needed to cover modern monitors. For mobile, 768–1024px is enough. With srcset, you can automatically serve the right version for each device. In terms of file size, keep the banner under 200 KB in WebP — a well-compressed 1920px WebP image should comfortably stay below that.