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:
- Oversized files: compress and resize to display size.
- Old formats: serve WebP or AVIF.
- No responsive images: use
srcsetso phones get smaller files. - Missing width and height: causes CLS.
- Lazy-loaded LCP image: remove
loading="lazy"above the fold and addfetchpriority="high". - 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-Controllifetimes. - 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"
Answer: Problem.
-
Footer images with loading="lazy"
Answer: Good practice.
-
4 MB PNG product photo
Answer: Problem.
-
Images served as WebP with srcset
Answer: Good practice.
-
Five font families and twelve weights
Answer: Problem.
-
CSS served with Brotli compression
Answer: Good practice.
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.
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.