ASO · Header + Mega Menu Preview
Shopify Speed Optimization & Core Web Vitals Retainer

Retainers / Performance & Core Web Vitals

A 90 on launch day is a photograph, not a guarantee.

Almost every speed engagement is sold as a one-off: someone compresses the images, defers a few scripts, screenshots a green Lighthouse score and invoices. Six months later the store is slower than before they started — because nothing that made it fast was ever protected. Performance isn't a fix. It's a budget somebody has to hold.

Retainer summaryEverything below is answered in detail further down the page.
What it is
An ongoing Core Web Vitals retainer for Shopify and Shopify Plus: a performance budget agreed up front, then enforced every month against real field data — not a one-off speed fix that decays.
Who it's for
Brands whose speed has drifted since launch, who keep paying for one-off optimisation that doesn't hold, or who are adding apps and campaigns faster than anyone is checking the cost.
What we measure
LCP, INP and CLS from field data — real visitors on real devices via the Chrome UX Report — with lab testing used to diagnose, never to report.
Targets
LCP under 2.5s, INP under 200ms, CLS under 0.1, at the 75th percentile on mobile. Those are Google's thresholds, not ours, which is what makes them arguable-with.
How the budget works
Weight, request count and third-party script budgets per template. Anything that would breach it is caught on staging, and a regression that reaches production is flagged the week it lands.
Investment
From $3,000 per month standalone. Included from the Growth tier when bundled with another retainer. Three-month initial term, then rolling monthly.
What it isn't
Not a one-time audit, and not a guaranteed score — anyone promising a specific Lighthouse number on a store they don't control yet is guessing.

Why one-off speed work fails

Nothing you did was wrong. It just wasn't defended.

A store gets slower through completely reasonable decisions, each made by someone who had no way to see the cost.

How the score decays

Six months after a successful speed engagement

  • Marketing uploads a 4 MB hero image for a campaign and it becomes the LCP element
  • A review app is installed and injects its own stylesheet, fonts and a render-blocking script
  • A chat widget is added on a Friday and adds 300ms to interaction on mobile
  • A third-party pixel is dropped in by an agency, unversioned and untested
  • A theme edit removes width and height on an image, and CLS reappears on the PDP
  • An uninstalled app leaves its scripts behind, still loading months later

What the budget does about it

The same six months, defended

  • Image pipeline enforces format, dimensions and responsive sizes — a 4 MB upload can't become the LCP element
  • Every app install is tested on staging first with its performance cost quantified before it ships
  • Third-party budget per template — adding one script means justifying or removing another
  • Tags are versioned and reviewed, not pasted into the theme
  • Layout stability checked after every deploy, so CLS regressions never reach a customer
  • App inventory audited monthly — dead scripts removed, not just the app uninstalled

The three metrics

What actually causes each one on a Shopify store.

Generic advice — "compress your images", "reduce JavaScript" — is why most speed work stalls. These are the causes we find specifically on Shopify themes.

LCP Largest Contentful Paint Target < 2.5s

How long until the main thing on the page appears. On a product page that's almost always the hero image; on a collection page it's the first row of the grid.

Usual causesOversized or unpreloaded hero images, a render-blocking app stylesheet, fonts loading without font-display, and a slow server response on uncached collection pages.
INP Interaction to Next Paint Target < 200ms

How long the page takes to respond when someone taps something. Replaced FID because it measures every interaction, not just the first — which is far harder to game.

Usual causesLong JavaScript tasks blocking the main thread, heavy variant-selection logic on PDPs, cart drawers re-rendering the whole cart, and third-party chat or review widgets doing work on tap.
CLS Cumulative Layout Shift Target < 0.1

How much the page jumps around while loading. The metric users feel most directly — it's what makes someone tap the wrong thing and leave.

Usual causesImages without width and height, banners and announcement bars injected after load, web fonts swapping and reflowing text, and star-rating widgets appearing late on collection pages.
Field data, not lab scoresThe distinction most speed reports quietly avoid.
What we report
Field data from the Chrome UX Report — real visitors, real devices, real networks, at the 75th percentile. It is what Google actually uses, and it is what your customers actually experience.
What we don't report
Lighthouse scores as a headline. A lab test on a fast machine with a simulated network is a diagnostic tool, not a result. We use it to find causes, then report the field numbers.
Why it matters
Field data lags by roughly 28 days, so improvements show up gradually rather than the afternoon they ship. Any agency reporting an instant win is reporting a lab score.
Segments
Reported mobile and desktop separately, and by template — home, collection, product, cart. A good average hides a product page that's failing.

What a month looks like

The budget only works if someone holds it.

MONTH 1Baseline & budget

Field data captured per template, causes diagnosed, and a written budget agreed — weight, requests and third-party count you commit to staying inside.

WEEKLYRegression watch

Field metrics reviewed against the budget. Anything trending the wrong way is traced to the deploy or app that caused it.

ON CHANGEPre-flight testing

Every app install, tag and theme deploy tested on staging with its performance cost quantified before it reaches production.

MONTHLYReport & next fix

Field numbers per template, what changed, what it moved, and the next highest-impact fix. Sent before the call.

Performance & Core Web Vitals retainer

Baseline and budget, weekly regression watch on field data, pre-flight testing for every change, and a monthly report per template. Closes the gap that one-off speed work always reopens.

$3,000 / mo

from · 3-month term

Enquire

A starting point for scoping rather than a quote — the final number depends on template count, app count and traffic volume. Included from the Growth tier when bundled with another retainer. Three-month initial term, then rolling monthly with 30 days' notice.

Questions we get

Straight answers.

Can you guarantee a 90+ Lighthouse score?

No, and anyone who does on a store they haven't seen is guessing. Lighthouse is a lab test on simulated hardware — it moves depending on the machine that ran it. What we commit to is a written performance budget against field data, and to holding it. If your apps and merchandising make a specific target impossible, we'll tell you that during the baseline rather than after you've paid for three months.

Why not just do a one-off speed optimisation?

Because it decays, and usually within two quarters. The store gets slower through entirely reasonable decisions — a campaign hero image, a review app, a chat widget — each made by someone with no way to see the cost. One-off work fixes the symptoms present that week. A budget stops new ones being created. If you genuinely never change your store, a one-off is the right purchase and we'll scope one.

How fast will we see results?

Lab improvements are visible immediately; field data lags by roughly 28 days because it's a rolling window of real visits. So the first month's report shows diagnosis and lab movement, and month two is where the field numbers start moving. Any agency showing you an instant field-data win is showing you a lab score with a different label.

Do we have to remove our apps?

Sometimes, and we'll show you the cost of each so it's your decision rather than ours. Often the fix isn't removal — it's loading the app differently, scoping it to the templates that need it, or replacing a third-party widget with a native implementation. Reviews and chat are the two that most often justify a native rebuild.

Does this work on a theme you didn't build?

Yes, and most of them are. The baseline month exists precisely for that — we map what's actually in the theme, what each app costs, and where the ceiling is on the current architecture. Occasionally the honest finding is that the theme itself is the constraint, and we'll say so rather than bill you monthly to sand down the edges of it.

How does this differ from the maintenance retainer?

Support and maintenance keeps the store working — bugs, platform updates, monitoring. This keeps it fast, which is a different discipline with different tooling and its own budget. They bundle well, and most brands on both see fewer regressions because app installs get reviewed once for correctness and once for cost.

Next step

Find out what your speed is costing you.

The free CRO and tracking audit includes a Core Web Vitals baseline on your real field data — so you'll know where you stand before deciding whether a retainer is worth it.

© 2026 Aqsa Shahzad Official LLC — Shopify Plus retainers & ongoing engineering contact@aqsashahzad.com · +1 (310) 430-1227