Chase a vanity score
We will not strip functionality your business needs so a synthetic number goes green.
MEASURED ON REAL DEVICES
App bloat stripped, scripts deferred, images sized properly, and LCP, CLS and INP measured on real devices rather than a lab score. Most Shopify stores carry more third-party JavaScript than first-party, and that is usually where the wins are.
IN SHORT
Rarely the theme. Almost always accumulation. An app trialled during Black Friday and never removed. A tracking pixel for a campaign that ended. A review widget, a chat widget, a popup tool, a loyalty script, a heatmap recorder — each one justified on its own, and each one loading before your product image does.
The revealing number on most audits is that a store loads more third-party JavaScript than first-party. The theme your agency built is a minority of the payload, and the majority is code nobody in the building can name.
Which is good news: the largest wins usually cost nothing to ship, because they are deletions.
LCP — Largest Contentful Paint. How long until the biggest thing on screen appears, usually your hero image or headline. Good is 2.5 seconds or under.
CLS — Cumulative Layout Shift. How much the page jumps around while loading. The reason you tap the wrong thing when an image loads late. Good is 0.1 or under.
INP — Interaction to Next Paint. How quickly the page responds when someone taps. Replaced First Input Delay as a Core Web Vital in March 2024. Good is 200 milliseconds or under.
Google assesses all three at the 75th percentile of real visits — so you are being judged on your slower quarter, not your average.
| Lab score | Field data | |
|---|---|---|
| Where you see it | Shopify admin, Lighthouse, PageSpeed | Search Console, Chrome UX Report |
| What it is | A simulated load on a throttled device | Real visits from real customers |
| Updates | Instantly, every run | Over weeks, as data accumulates |
| Used for ranking | No | Yes |
| Good for | Debugging a specific page | Knowing whether you actually have a problem |
Both are useful. The mistake is optimising the lab number — chasing 90+ in the admin while the experience of a real customer on a mid-range Android on mobile data stays unchanged.
Six stages. The first is measurement, and the last is measurement again, weeks later.
We start with field data from Search Console and the Chrome UX Report rather than a Lighthouse run, because a lab score on a fast laptop is not what your customers experience or what Google ranks on.
Each script is listed with what it costs in bytes and blocking time, and whether anyone still uses it. Stores routinely carry tags for tools they stopped paying for two years ago.
Render-blocking CSS and JavaScript moved out of the way, non-critical scripts deferred, and anything that can load after interaction made to do so.
Usually the hero. Correct image dimensions and formats, preloading the LCP element, removing what delays it, and making sure it is not waiting behind a font or a script.
Reserved space for images, ads and embeds to stop layout shift, and heavy main-thread work broken up so interactions respond inside the INP threshold.
Field data takes weeks to update, so we track it after launch rather than declaring victory on a lab score the same afternoon.
We will not strip functionality your business needs so a synthetic number goes green.
Adding a script to fix a script problem. Speed apps help at the margins and cost you a dependency.
Anyone quoting a specific score before auditing your app stack is guessing at your store.
Field data takes weeks to move. We report when the real numbers change, not on launch day.
Speed work is part of every maintenance retainer we run, because stores decay through accumulation and a one-off clean-up drifts back within a year.
Almost always third-party apps and tracking scripts loading before the page renders, plus oversized hero imagery. Theme code is rarely the largest factor on its own.
Core Web Vitals are a ranking signal, but the number in your Shopify admin is a lab score. Field data in Search Console is what Google actually uses.
Largest Contentful Paint at 2.5 seconds or under, Cumulative Layout Shift at 0.1 or under, and Interaction to Next Paint at 200 milliseconds or under. Google assesses these at the 75th percentile of real visits, so the goal is the experience of your slower quarter, not your average.
Because the admin score is a synthetic lab test on a throttled connection, and you are browsing on a fast device with things cached. Neither is wrong — they measure different things. Field data in Search Console is the one that affects rankings.
Removing an app you use would. The audit separates apps that earn their cost from scripts left behind by apps already uninstalled — the second category is pure dead weight and comes out with no functional change at all.
Research, hypothesis, test, ship — a continuous programme rather than a one-off redesign.
A senior engineer walks your storefront, theme and checkout and sends back a prioritised list of fixes.
Campaign and launch pages built to a section library, so marketing ships without a dev queue.
NEXT STEP
A senior engineer reviews your storefront, theme performance and checkout, then sends a prioritised list of fixes. No pitch deck, no obligation.