# 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?

Reviewed by Martin Dejnicki, Director of SEO & AI Search · facts verified October 11, 2026 · canonical: https://deploi.ca/shopify/faq/performance-issue-severity-agency-vs-in-house

## Short answer

A Shopify performance problem needs an agency only when the fix needs profiling or code you cannot edit, like theme JavaScript. In Deploi's judgment, leftover app code, oversized hero images and dead tag-manager tags are a one-day in-house job. App code lingers because uninstalling an app "doesn't automatically remove its code from your theme" ([Shopify Help Center](https://help.shopify.com/en/manual/online-store/web-performance/improving-web-performance), October 2026).

- **Good at the 75th percentile:** LCP 2.5 s, INP 200 ms, CLS 0.1. Largest Contentful Paint, Interaction to Next Paint and Cumulative Layout Shift; Shopify's reports rank your store Good, Moderate or Poor on each from real visitors ([Shopify Help Center, Web performance reports](https://help.shopify.com/en/manual/online-store/web-performance/web-performance-reports); [web.dev, Web Vitals](https://web.dev/articles/vitals))
- **Shopify's field data window:** Past 30 days, up to 36 hours late. Shopify's metric summary ranks real-user data from the past 30 days by default, at the 75th percentile; the reports keep 90 days and annotate app installs, theme updates and new code ([Shopify Help Center, Web performance reports](https://help.shopify.com/en/manual/online-store/web-performance/web-performance-reports))
- **Usual cause of poor INP:** Too much JavaScript. Shopify traces poor Interaction to Next Paint to theme code, app code or third-party and tag-manager code, and says to clean up the worst offenders ([Shopify Help Center, Improving your online store performance](https://help.shopify.com/en/manual/online-store/web-performance/improving-web-performance))
- **A speed app's monthly price:** Hyperspeed, $59 a month. 4.8 stars on 174 reviews on the Shopify App Store (11 October 2026). It defers, preloads and lazy-loads; Deploi's site speed record says lab scores rise while field metrics stay flat ([Rvere, Hyperspeed EXTREME Page Speed on the Shopify App Store](https://apps.shopify.com/hyperspeed); [Deploi Build vs. Buy, Build or Buy Site Speed Optimization on Shopify?](https://deploi.ca/shopify/build-vs-buy/site-speed-optimization-apps))

## Deploi's call

Severity comes down to attribution: a problem whose file or app you can name is in-house work, and one that takes profiling to name is agency work. A fix is usually small once you know its source, so the first hour of an agency engagement should go to attribution, not optimization.

**WAIT: Hire nobody yet while**

- Field data sits inside Good on all three Core Web Vitals and is not trending down, where [Deploi's performance monitoring record](https://deploi.ca/shopify/build-vs-buy/performance-monitoring-and-app-audit) says to wait and re-check quarterly (October 2026).
- The complaint started with a lab score or a competitor's screenshot, not Shopify's field reports.
- The four in-house fixes are not done yet: leftover app code, the tag manager, the hero image and section count.

**BUILD: Bring in an agency when**

- Interaction to Next Paint (INP) fails, which Shopify traces to "too much JavaScript" across theme, app and tag code ([Shopify Help Center](https://help.shopify.com/en/manual/online-store/web-performance/improving-web-performance), October 2026).
- The fix sits in a third-party theme, where Shopify sends you to the theme developer or a Shopify Partner ([Shopify Help Center](https://help.shopify.com/en/manual/online-store/web-performance/improving-web-performance), October 2026).
- Vitals fail or trend down on a stack past roughly ten apps or two years without a cleanup, where [Deploi's monitoring record](https://deploi.ca/shopify/build-vs-buy/performance-monitoring-and-app-audit) scores an audit BUILD (October 2026).
- Regressions return after two fixes, because app-injected scripts "land in the theme without a deploy" ([Deploi's script governance record](https://deploi.ca/shopify/build-vs-buy/third-party-script-governance-and-performance-budgets), October 2026).

## Which data shows how severe a Shopify performance problem is?

Field data shows how severe a Shopify performance problem is, because it measures real visitors rather than a test run. Shopify's web performance reports show Largest Contentful Paint (LCP), Interaction to Next Paint (INP) and Cumulative Layout Shift (CLS) at the 75th percentile by default ([Shopify Help Center](https://help.shopify.com/en/manual/online-store/web-performance/web-performance-reports), October 2026). Shopify's metric summary ranks real-user data from the past 30 days by default, the reports keep 90 days, and the data "might be delayed by up to 36 hours." Google's Good thresholds are LCP within 2.5 seconds, INP of 200 milliseconds or less and CLS of 0.1 or less ([web.dev](https://web.dev/articles/vitals), October 2026).

A synthetic score from a testing tool is a diagnostic, not a verdict, and chasing one is how teams pay for gains no shopper notices. [Whether Plus is a speed fix](https://deploi.ca/shopify/faq/shopify-plus-upgrade-site-speed-vs-checkout-scale) has a short answer, no, so the same work applies on every plan.

## Which symptoms point to an in-house fix, and which to an agency?

Symptoms in Largest Contentful Paint (LCP), Interaction to Next Paint (INP) and Cumulative Layout Shift (CLS) point to who should fix them. Images and leftover code are in-house work, because fixing them needs no profiling; theme JavaScript and widgets you cannot edit need an agency. Shopify says poor INP most likely means "too much JavaScript" from theme, app or tag-manager code ([Shopify Help Center](https://help.shopify.com/en/manual/online-store/web-performance/improving-web-performance), October 2026).

**Image and leftover-code symptoms are in-house fixes, while JavaScript and custom-template symptoms need an agency**

| Symptom in field data | Likely cause | Who fixes it | Realistic time |
| --- | --- | --- | --- |
| Slow LCP on product and collection pages | Images served far larger than shown | In-house | Under a day |
| Slow LCP on every template | Render-blocking third-party code in the page head | In-house; agency if an app injects it | A day to a sprint |
| Poor INP, LCP fine | Theme JavaScript or a heavy widget | Agency | Weeks |
| Poor CLS on collection pages | Missing image sizes, late banners and badges | In-house | Under a day |
| Regression with no deploy | An app's embed update or a new tag-manager tag | In-house to find; agency if an app | Hours to find |
| Slow on one template only | That template's custom sections | Agency | Weeks |
| Field data good, lab score bad | Nothing | Nobody | None |

Sources: [Shopify Help Center, Improving your online store performance](https://help.shopify.com/en/manual/online-store/web-performance/improving-web-performance); [Shopify Help Center, Web performance reports](https://help.shopify.com/en/manual/online-store/web-performance/web-performance-reports). Verified October 11, 2026.

## What should an in-house team fix before calling anyone?

An in-house team should run four fixes before calling anyone, because each takes a day or less and needs no outside profiling.

1. **Inventory leftover app code.** Compare theme app embeds and theme snippets against installed apps, because uninstalling an app "doesn't automatically remove its code from your theme" ([Shopify Help Center](https://help.shopify.com/en/manual/online-store/web-performance/improving-web-performance), October 2026).
1. **Audit the tag manager.** Shopify's advice is to "Audit your tag manager to remove any unused or low-value tags." Marketing usually knows which campaigns ended.
1. **Fix the hero image.** Serve it at its displayed size and never lazy-load it. web.dev warns that lazy-loading the Largest Contentful Paint (LCP) image "will always lead to unnecessary resource load delay" ([web.dev](https://web.dev/articles/optimize-lcp), October 2026).
1. **Count sections.** Shopify warns that "High numbers of sections on pages can lower web performance." Homepages collect sections the way garages collect boxes.

Then wait for the field data to refresh. Shopify's metric summary ranks real-user data from the past 30 days by default ([Shopify Help Center](https://help.shopify.com/en/manual/online-store/web-performance/web-performance-reports), October 2026), so a fix takes about a month to show fully; tell stakeholders before they check on Friday.

## What thresholds justify hiring an agency?

Four thresholds justify hiring an agency, and each one means the fix needs profiling or code your team cannot touch.

- **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 brings merchandising and legal inputs. Shopify sends stores on third-party themes to the theme developer, a Shopify web performance expert or a Shopify Partner ([Shopify Help Center](https://help.shopify.com/en/manual/online-store/web-performance/improving-web-performance), October 2026).
- **Interaction to Next Paint (INP) is the failing metric.** Interaction delay comes from JavaScript across theme and apps at once, which is hard to attribute without profiling.
- **The estate is bigger than one theme.** Multiple themes, a headless front end or several agencies adding tags need governance, not a single fix.
- **Regressions keep coming back.** [Deploi's script governance record](https://deploi.ca/shopify/build-vs-buy/third-party-script-governance-and-performance-budgets) explains why: app-injected scripts "land in the theme without a deploy," so a pipeline check alone misses them (October 2026).

[How an agency structures a paid app-stack audit](https://deploi.ca/shopify/faq/app-stack-audit-engagement-deliverables) lists what its deliverable must contain.

## When should you hire nobody?

You should hire nobody when your field metrics sit inside the Good bands, because no shopper-facing problem is left to fix.

> **When not to do this**
> - **When the complaint came from a lab score or a competitor's screenshot.** Shopify says "There's no such thing as a perfect speed score" ([Shopify Help Center](https://help.shopify.com/en/manual/online-store/web-performance/overview), October 2026).
> - **When the plan is a speed app instead of a fix.** Hyperspeed costs $59 a month and held 4.8 stars on 174 reviews on 11 October 2026 ([Rvere's Hyperspeed listing](https://apps.shopify.com/hyperspeed), October 2026). It defers scripts, preloads pages and lazy-loads images. [Deploi's site speed record](https://deploi.ca/shopify/build-vs-buy/site-speed-optimization-apps) warns that lab scores rise while field metrics stay flat, so the subscription looks like it works (October 2026).
> - **When the field data has not caught up with the last fix.** Shopify's reports trail by up to 36 hours and show the 75th percentile across the dates you pick, so one good day moves little ([Shopify Help Center](https://help.shopify.com/en/manual/online-store/web-performance/web-performance-reports), October 2026).

## Deploi's point of view

**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 first, even when it costs us the first piece of work, and be right about what is left.

**What we fix first, in our judgment.** In our judgment, the fix that moves field Largest Contentful Paint is usually narrow: the hero image, the font loading strategy and two or three scripts moved out of the critical path. The wide rewrites proposed at kickoff rarely earn out, and in widget work the fix is often a conversation with the vendor rather than a commit. That is our view from client work, not a measured result.

**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.

## When this answer changes

- Shopify changes its web performance summary's 30-day window, the reports' 90-day retention, the 36-hour delay or the Good thresholds.
- Google changes a Core Web Vital or its Good threshold.
- Shopify adds per-app or per-script attribution to its web performance reports.
- Shopify Support starts helping with performance on third-party themes.
- Hyperspeed changes its $59 price, or Shopify ships native script deferral.

## Sources

1. [Shopify Help Center, Improving your online store performance](https://help.shopify.com/en/manual/online-store/web-performance/improving-web-performance), checked October 11, 2026
2. [Shopify Help Center, Web performance reports](https://help.shopify.com/en/manual/online-store/web-performance/web-performance-reports), checked October 11, 2026
3. [web.dev, Web Vitals](https://web.dev/articles/vitals), checked October 11, 2026
4. [web.dev, Optimize Largest Contentful Paint](https://web.dev/articles/optimize-lcp), checked October 11, 2026
5. [Shopify Help Center, Overview of web performance](https://help.shopify.com/en/manual/online-store/web-performance/overview), checked October 11, 2026
6. [Rvere, Hyperspeed EXTREME Page Speed on the Shopify App Store](https://apps.shopify.com/hyperspeed), checked October 11, 2026
7. [Deploi Build vs. Buy, Build or Buy Performance Monitoring & App Audits on Shopify?](https://deploi.ca/shopify/build-vs-buy/performance-monitoring-and-app-audit), checked October 11, 2026, Deploi research
8. [Deploi Build vs. Buy, Build or Buy Site Speed Optimization on Shopify?](https://deploi.ca/shopify/build-vs-buy/site-speed-optimization-apps), checked October 11, 2026, Deploi research
9. [Deploi Build vs. Buy, Build or Buy Third-Party Script Governance on Shopify?](https://deploi.ca/shopify/build-vs-buy/third-party-script-governance-and-performance-budgets), checked October 11, 2026, Deploi research
