Work and Experience
Performance Named client

Shopify Speed Optimization

Liquid render path and asset pipeline taken to the practical ceiling

75 → 95
Lighthouse, stable median
Client
Skalifestyle, Shopify store
Engagement
Performance optimization
Stack
ShopifyLiquidCore Web VitalsRender PathImage Optimization
01

Context

A Shopify store was slower than its content justified, a Lighthouse performance score around 75, with the storefront carrying heavy product imagery, banners and app scripts the business was not willing to give up. The brief was explicitly not "strip the store"; it was to reach the practical performance ceiling achievable with the existing merchandising in place, through engineering rather than subtraction.

The work targeted the two levers that actually move a themed Shopify storefront: the Liquid render path, what blocks first paint and in what order resources arrive, and the asset pipeline, where oversized and mis-dimensioned media dominates Largest Contentful Paint on visual stores. Every change was measured against a statistical baseline so the reported gains are stable medians, not one lucky run.

02

The Challenge

  • Lighthouse run-to-run variance can fabricate or hide 10-point swings, a single-run baseline would have made results unfalsifiable.
  • The merchandising was non-negotiable: gains had to come from how content loads, not whether it exists.
  • Third-party and app scripts sat on the critical path but could not simply be removed, they had to be resequenced.
  • Shopify themes accumulate dead Liquid weight over years of edits, sections and snippets that render nothing visible but still cost server time and payload.
  • Mobile is where the store converts and where the CPU and network budget is smallest, the same theme had to serve desktop richness and mobile speed without forking.
03

Scope and Approach

  1. 01

    Statistical baseline

    Established the Lighthouse baseline across repeated runs and took the median, separating real regression and real gain from measurement noise before any optimization began.

  2. 02

    Render-path optimization

    Refactored the Liquid theme to cut render-blocking resources, reorder the critical path and defer non-essential script execution, moving everything that does not paint pixels off the road between request and first render.

  3. 03

    Dead-weight reduction

    Traced what each template actually renders and cut the accumulated dead weight, markup, styles and script hooks left behind by years of theme edits that produced payload and render cost without producing pixels.

  4. 04

    Asset pipeline

    Recompressed and correctly dimensioned product imagery and banners, added responsive sizing so devices download the size they display, and lazy-loaded below-the-fold media, the dominant LCP lever on a visual storefront.

  5. 05

    Variance-checked verification

    Re-measured across repeated runs to confirm the gains hold as a stable median, the score that survives Monday morning, not the screenshot score.

  6. 06

    Documented walkthrough

    Recorded a walkthrough video covering the before state, the after state and every specific change, so the client owns the knowledge, not just the result.

04

Architecture flow

Baseline measurement
median of repeated runs
Liquid render path
reduce + reorder + defer
Asset pipeline
compress + dimension + lazy-load
Load strategy
what loads when
Re-measure
stable median, verified
05

Technical Deep Dive

Median-of-runs methodology

Lighthouse scores move with network jitter, CPU contention and CDN cache state. Reporting medians across repeated runs is the difference between performance engineering and performance theater, it also kept the work honest when an "improvement" was actually noise.

Where LCP actually lives on Shopify

On merchandised storefronts the LCP element is almost always a hero image or banner. Serving it correctly dimensioned, compressed and prioritized, while everything below the fold lazy-loads, moves LCP more than any script optimization, which is why the asset pipeline got equal billing with the render path.

Resequencing what cannot be removed

App and third-party scripts the business depends on were moved off the critical path rather than deleted: deferred where execution order allowed, delayed-until-interaction where it did not. The functionality survives; the first paint no longer waits for it.

Downloading the size you display

A 2000-pixel product photo rendered in a 400-pixel grid cell is pure waste on mobile. Responsive sizing serves each breakpoint the dimensions it actually renders, which cuts transfer weight across the whole catalog without touching visual quality, the least glamorous change with the largest mobile payoff.

06

Engineering Decisions

Optimize loading, not content

The store's conversion assets stayed. The engineering premise was that a visual store can be fast if the render path is clean and the assets are disciplined, proven out by the final score.

Ceiling honesty

The result was framed as the practical ceiling for the current theme and content, not a promise of 100. Clients keep trust in numbers they can reproduce.

A video walkthrough as the handover artifact

The engagement closed with a recorded walkthrough of the before state, the after state and each specific change, chosen over a written report because the client is a store operator, not a developer: seeing the changes in the theme editor transfers the knowledge a PDF would bury.

07

Results

  • Lighthouse performance from ~75 to 95, the practical ceiling for the store's current merchandising.
  • Strong desktop and solid mobile scores, verified as stable medians across repeated runs.
  • Gains from render-path and asset engineering, the storefront kept every conversion asset.
  • A walkthrough video documenting the before, after and every specific change.

Have a system that needs
this kind of work?

Tell me what is breaking or what you need built. I will reply with how I would approach it and what I would check first.

Chat on WhatsApp