freecourses.digital
Lesson progress: 0 of 3 activities done
All lessons in Technical SEO Auditing Lesson 7.4 of 84

Image and Resource Optimization Opportunities

What we will go through

  • How to find oversized and unoptimized images
  • When to lazy load and when not to
  • How fonts, caching, and compression affect speed
  • How to speed up the LCP element

Short answer

Image and resource audits find files that slow loading: oversized images, old formats, missing width and height, lazy-loaded LCP images, uncompressed text files, missing browser caching, and slow web fonts. Use your crawler's image size filters and Lighthouse opportunities, then fix templates so the LCP image loads early and everything else loads efficiently.

A Palawan resort’s homepage hero was a 6.2 MB PNG straight from the photographer’s camera. On a 4G connection in Puerto Princesa, it took 9 seconds to appear. Converting it to WebP at the right size brought it to 140 KB. Same photo, 97% smaller.

Images: the biggest quick wins

Check in your crawl’s Images tab (filter Over 100 KB) and Lighthouse opportunities:

  1. Oversized files: compress and resize to display size.
  2. Old formats: serve WebP or AVIF.
  3. No responsive images: use srcset so phones get smaller files.
  4. Missing width and height: causes CLS.
  5. Lazy-loaded LCP image: remove loading="lazy" above the fold and add fetchpriority="high".
  6. Offscreen images not lazy loaded: add loading="lazy" below the fold.

Other resources

  • Text compression: HTML, CSS, JS served with Brotli or Gzip.
  • Browser caching: static files with long Cache-Control lifetimes.
  • Fonts: few families, WOFF2, font-display: swap, preload the main font.
  • CDN: serve static files from servers near your visitors.
  • Preconnect: early connections to critical third-party domains.

How to find the LCP element

In PageSpeed Insights, open the diagnostic for the Largest Contentful Paint element. It shows exactly which image or text block is the LCP and its load phases. Fix that element first on each template.

Practice: good practice or problem?

Sort each item into the right group.

  • Hero image with loading="lazy"

  • Footer images with loading="lazy"

  • 4 MB PNG product photo

  • Images served as WebP with srcset

  • Five font families and twelve weights

  • CSS served with Brotli compression

Common mistakes

  • Lazy loading everything, including the hero.
  • Compressing but not resizing. A 4000px image is still too big for a phone.
  • Fixing images on one page instead of in the upload or template process.
1. Should the LCP image be lazy loaded?
2. Which attribute helps load the LCP image sooner?
3. Missing width and height on images mainly hurts...

Your action

Next, you will audit JavaScript and CSS performance.

Key terms

WebP and AVIF
Modern image formats that are much smaller than JPEG or PNG at similar quality.
Lazy loading
Delaying offscreen images until the user scrolls near them, using loading="lazy".
fetchpriority="high"
An attribute that tells the browser to load an important resource, like the LCP image, early.
Text compression
Gzip or Brotli compression of HTML, CSS, and JavaScript to reduce download size.

Questions beginners ask

How large should images be?

No larger than their displayed size, served responsively with srcset. Hero images under about 200 KB are a good target on mobile.

Should I lazy load every image?

No. Never lazy load the LCP image or images above the fold. That delays LCP.

Does a CDN help?

Yes, especially for visitors far from your server. Many hosts in the Philippines serve from Singapore or the US, so a CDN can cut latency.

How do fonts affect performance?

Large or many font files delay text and can cause layout shifts. Limit families, use WOFF2, and font-display: swap.

Related lessons

Want someone to handle SEO for your business while you learn? The team at Remar Digital can help.