Day 1 — Diagnosis
Full Lighthouse Audit + Root Cause Analysis
Ran Google Lighthouse, GTmetrix, and WebPageTest audits. Identified 6 render-blocking scripts, 18MB of uncompressed images, 3 unused app scripts loading on every page, and no lazy loading on any images.
✓ Root causes identified — prioritized by load time impact
Day 2 — Image Optimization
Converted 94 Images to WebP — Saved 16.5MB
Converted all PNG and JPEG images to WebP format using Shopify's built-in image transformation API. Added responsive srcset attributes so mobile devices load smaller images. Enabled lazy loading on all below-fold images.
✓ Page weight dropped from 18.4MB to 1.9MB — load time cut by 4.1 seconds
Day 3 — Script Optimization
Deferred 6 Render-Blocking Scripts
Added defer and async attributes to all non-critical JavaScript. Removed 3 unused Shopify apps that were injecting scripts on every page load even though they were only needed on 2 pages. Moved all scripts to bottom of body.
✓ Time to First Byte improved by 2.8 seconds
Day 4 — Font Optimization
Consolidated 6 Google Font Requests to 1
Store was loading 6 separate Google Fonts API calls. Consolidated into a single optimized request. Added font-display: swap to prevent invisible text during font load. Self-hosted the primary display font.
✓ Eliminated 5 network round trips — saved 0.8 seconds
Day 5-7 — Final Tuning
Preload, Cache Headers + Liquid Template Cleanup
Added resource preload hints for hero image and primary font. Cleaned up Liquid template files — removed 340 lines of unused CSS. Added browser cache headers. Minified all custom CSS and JS files.
✓ Final score reached 91 — from starting score of 43