Inside a Shopify technical audit: the deeper checks
Six areas where a closer look at the store usually changes the fix list.
Diagnosing Core Web Vitals, not just scoring them
A single lab test is a snapshot from one simulated device. Google’s Core Web Vitals assessment is based on field data from real Chrome users, so a store can pass a lab test and still fail where it counts. Where your store has enough traffic to appear in the Chrome UX Report, we start from that field data, then use lab tools to explain it.
Each metric points to a different kind of cause. Slow largest contentful paint usually comes from the hero image, render-blocking files or fonts. Poor interaction to next paint usually comes from heavy JavaScript, often from apps, running when a shopper taps a variant or opens a menu. Layout shift often comes from app widgets, banners or images without fixed sizes that appear after the page has drawn. We name the element and the file behind each problem, so the fix is specific.
Judging theme code quality
Healthy theme code has a few recognizable traits. Logic lives in reusable snippets rather than being copied between templates. Content and settings are editable in the theme editor or held in metafields and metaobjects, not typed into Liquid. Sections load only the assets they need. Custom work is kept apart from vendor code, so the theme can still be updated.
We look for the opposite: product logic repeated in several places, large inline scripts, assets loaded on every page for one section, and edits scattered through vendor files. Each pattern is listed with the files involved, so a developer can see exactly where the fragile parts sit.
Measuring app bloat and script cost
Theme app extensions and app embeds are the current way for apps to add features to a theme, and they can be switched off in the theme editor. Older apps may still inject code directly into theme files or add script tags. We note which method each app uses, because it changes how safely it can be removed and how much it costs on pages where it does nothing.
Reviewing checkout and Shopify Functions
Shopify has moved checkout customization to checkout extensibility, with checkout UI extensions for the interface and Shopify Functions for logic such as discounts, payment and delivery options. For Plus stores we check whether any legacy checkout.liquid edits or Shopify Scripts are still in use, what they do and how each one maps to the current tools.
Where Functions or checkout extensions are already in place, we review how they behave with your discount stack, markets and payment methods, and whether more than one app is trying to control the same part of checkout. On any plan, we check the thank you and order status pages, where tracking and post-purchase apps often overlap.
Mapping integrations and data flow
For each connected system we record which way data moves, what triggers it, which system is the source of truth for stock, prices and customers, and what happens when a sync fails. Many problems come from two systems both believing they own the same field, so we look for that conflict specifically.
Checking security hygiene
Shopify secures the platform, but access to your store is yours to manage. We review staff and collaborator accounts against current team members, check whether two-step authentication is required for staff, and compare the permissions of each account and app with what it needs. Custom apps and their API access scopes get the same review, along with any tokens shared with outside services.
We also look at third-party scripts on the storefront and pixels set up through customer events, because each one can see what shoppers do. Anything without a clear owner or purpose is flagged for removal.
- Accounts for people who have left
- Apps and tokens with broader access than they need
- Scripts nobody can identify