How do I know if my Shopify performance problem is severe enough to justify hiring an agency versus something my in-house team can fix in a day?
A Shopify performance problem needs an agency when the fix touches theme JavaScript, a customized template or a third party widget you cannot edit. Leftover app embeds, oversized hero images and dead tag manager tags are a one day in house job, because uninstalling an app does not remove its code from the theme (per Shopify's Help Center, September 2026).
Start with field data, not a Lighthouse score
Shopify's web performance report shows Largest Contentful Paint, Interaction to Next Paint and Cumulative Layout Shift from real user metrics, at the 75th percentile by default, across the last 90 days, with data that "might be delayed by up to 36 hours" (per Shopify's Help Center, September 2026). Google's thresholds for good are LCP within 2.5 seconds, INP of 200 milliseconds or less and CLS of 0.1 or less, assessed at the 75th percentile of page loads (per web.dev, September 2026).
Those two paragraphs are the whole triage input. A synthetic score from a testing tool is a diagnostic, not a verdict, and chasing one is how teams end up paying for movement that no shopper experiences.
The triage table
| Symptom in field data | Most likely cause | Who fixes it | Realistic time |
|---|---|---|---|
| LCP poor on product and collection pages, CLS fine | Hero and product images served far larger than rendered size | In house | Under a day |
| LCP poor across every template, including simple pages | Render-blocking third-party code loading in the head | In house first, agency if it is app-injected | A day to a sprint |
| INP poor, LCP fine | Theme JavaScript, or a widget binding handlers to everything | Agency | Weeks |
| CLS poor on collection pages | Missing image dimensions, late-injecting banners and badges | In house | Under a day |
| Regression that appeared with no deploy | An app updated its embed, or a tag was added in the tag manager | In house to find, agency if the app is the cause | Hours to find, longer to remediate |
| Poor on one template only | That template's custom sections | Agency | Weeks |
| Field data good, Lighthouse bad | Nothing. Stop | Nobody | Zero |
The four things an in-house team should do before calling anyone
- Inventory theme app embeds against installed apps. Anything left from an uninstalled app is dead weight, and Shopify states plainly that uninstalling does not remove theme code (per Shopify, September 2026). This alone has closed the gap on more than one engagement we were about to be hired for.
- Audit the tag manager. Shopify's own guidance is to "audit your tag manager to remove any unused or low-value tags" (per Shopify, September 2026). Marketing usually knows which campaigns ended.
- Fix the hero. One oversized above-the-fold image is the single most common LCP cause we see. Correct dimensions, modern format, no lazy loading on the LCP element.
- Count sections. Shopify advises against "adding too many sections to page templates in your theme" (per Shopify, September 2026). Homepages accumulate sections the way garages accumulate boxes.
Do those four, wait for the field data to refresh, and re-read the report. The 90 day window means improvement appears gradually, which is worth telling your stakeholders before they check on Friday.
The thresholds that justify an agency
- The fix is in code you did not write and cannot edit. A review widget or chat launcher that blocks rendering can often only be replaced, and replacement is a project with merchandising and legal inputs, not a ticket.
- INP is the failing metric. Interaction latency traces back to JavaScript execution across theme and apps together. It is genuinely hard to attribute without profiling, and it is where in-house attempts usually stall.
- The estate is bigger than one theme. Multiple themes, a headless front end, or several agencies adding tags. Governance, not a fix.
- It keeps coming back. A store that has been fixed twice and regressed twice does not have a performance problem; it has a release process problem. Our build-vs-buy note on script governance names the failure mode directly, that app-injected scripts land in the theme without a deploy, so a CI gate alone misses the most common way tags arrive (Deploi, September 2026).
When NOT to hire anyone
When your field metrics sit inside the good bands and the complaint originated with a synthetic score or a competitor's screenshot. Our own analysis of speed apps flags this exact trap: lab scores rise while field metrics in the web performance dashboard stay flat, so the subscription looks like it is working (Deploi, September 2026). Hyperspeed lists at $59 per month, rated 4.8 stars across 175 reviews (verified September 2026), and it preloads and defers. It does not remove the code that makes a store slow.
The Deploi point of view
Our own position, from building on Shopify. Separate from the facts above.
- Our take: The severity question is really an attribution question. If you can name the file or the app causing the regression, it is in house work. If naming it requires profiling, it is agency work, and the first hour of that engagement should be attribution rather than optimization.
- What we’ve seen: Across our media and asset loading engagements, the remediation that moved field LCP was almost always narrow: the hero, the font loading strategy, and two or three scripts moved out of the critical path. The wide rewrites that get proposed at kickoff rarely earn out. In the vendor widget work, roughly the same pattern held, except the fix was often a conversation with a vendor rather than a commit.
- Times we’ve shipped this: 11 builds delivered.
- What it takes: roughly 144 hours of scoped work for a media and asset loading strategy program (directional Deploi estimate from a small sample of engagements, not a measured average).
- Where we disagree: The standard agency pitch is a full performance audit as the entry point. For a store that has never done the app embed inventory, that is selling week three before week one. We would rather hand a client the four-item checklist, lose the first month of billing, and be right about what is left.
- What this page adds: the symptom-to-owner triage, the four in-house fixes to run first, and the field-data thresholds that say the problem is already solved.
Reviewed by Martin Dejnicki, Director of SEO & AI Search. Facts verified 2026-09-13.
Where we worked this out
Our decision records