How Agencies Evaluate Shopify Apps for Client Stores

a checklist with app icons being evaluated with checkmarks and ratings

Evaluating Shopify apps for client stores is completely different from picking an app for your own store. When it’s your store, you install something, try it for a week, and uninstall if it doesn’t work. When it’s a client store, a bad app choice can mean broken pages in production, angry emails, scope creep on the project, and a client who blames you (not the app) for every issue going forward. The stakes are higher. The diligence should match.

Most agencies skip proper app evaluation because it takes time and clients want results yesterday. I get it. But spending 30 minutes vetting an app now saves 10 hours of debugging later. Every time.

Run the client’s store through our App Detector first. It shows what apps are already installed so you can avoid conflicts and redundancy before adding anything new.

On this page

Speed impact: the first filter

Before anything else, check what the app does to page speed. This should be non-negotiable for agencies. A client’s Core Web Vitals score affects their Google rankings, and a single heavy app can tank LCP by seconds.

Here’s how to test properly:

  1. Measure the store’s current speed on a key product page and collection page. Use Google PageSpeed Insights or our SEO Checker.
  2. Install the app on a development store or duplicate theme.
  3. Configure it minimally (just enough to render on the storefront).
  4. Measure again. Same pages. Same tool.
  5. Compare. If LCP increased by more than 200ms, that’s a red flag worth investigating.

What to watch for: apps that load external JavaScript files from their own servers on every page load. Apps that inject render-blocking CSS into the head. Apps that make API calls from the storefront (as opposed to preloading data into metafields). Each of these patterns adds latency.

The best-performing apps use metafield-based loading: they store data in Shopify metafields during configuration, and the storefront reads from those metafields with zero external calls. No server round-trips, no CORS headers, no third-party CDN dependencies. If an app’s docs mention metafield-based rendering, that’s a positive signal.

Code residue after uninstall

This one drives agencies insane. You install an app, try it, decide it’s not the right fit, uninstall it. Two months later, the client reports their theme is broken. You dig in and find orphaned Liquid snippets, leftover script tags, or disabled app blocks still sitting in the theme JSON.

Some apps inject code into theme files during installation. When you uninstall, they’re supposed to clean up after themselves. Many don’t. Some can’t, because Shopify’s uninstall webhooks don’t guarantee theme code removal.

Before installing any app on a client store:

  • Check the app’s docs for how it integrates. Does it use app blocks (clean, removable) or does it inject into theme.liquid (messy, persistent)?
  • Apps using Shopify’s app embed system or theme app extensions leave almost no residue. They show up as toggleable blocks in the theme editor.
  • If the app modifies Liquid templates directly, take a theme backup before installing. Diff the theme files after uninstall to confirm everything was removed.

The app stack audit guide walks through how to detect and clean up residual app code. For client stores, do this audit quarterly.

Reading reviews the right way

Most people look at the star rating and move on. Wrong approach. Here’s how agencies should actually read Shopify app reviews:

Skip the 5-star reviews. Seriously. A lot of them are prompted (“leave a review and get a month free”) or from merchants who just installed and haven’t hit problems yet. The 2-star and 3-star reviews are where the real information lives. Those are from people who liked the app enough to try it but hit a wall.

Look for patterns, not individual complaints. One person complaining about slow support might have been impatient. Ten people saying the same thing? That’s a data point.

Three patterns that should make you pause:

  1. “Broke my theme” appearing more than twice. That means the app has integration issues the developer hasn’t fixed.
  2. “Support stopped responding after the trial” appearing consistently. Trial-to-paid support dropoff is a real problem.
  3. “App slowed down my site” with no developer response. Speed complaints the developer ignores (not addresses) are a bad sign.

Also check: does the developer respond to negative reviews? How? A developer who responds defensively (“that’s not our fault”) vs. one who responds with a solution (“we pushed a fix for this in v2.3”) tells you everything about what support will look like when your client has an issue at 9pm on a Friday.

For what it is worth from the other side of that evaluation: Rubik Variant Images stores its variant image mapping in Shopify metafields rather than theme files, which is the specific property agencies ask about, because it survives a theme swap and leaves nothing behind on uninstall. Free to install, 5.0 stars across 436 reviews.

Pricing traps agencies miss

Shopify app pricing is a minefield for agencies. Here are the traps:

Plan-based pricing. Some apps charge based on the client’s Shopify plan. A client on Basic Shopify pays $9/month. The same client upgrades to Shopify Plus and suddenly the app costs $99/month with zero new features. You recommended the app. The client blames you for the cost jump. This is avoidable: pick apps with flat pricing that doesn’t scale with the Shopify plan.

Usage-based pricing with unclear thresholds. “Free up to 100 products” sounds great until the client’s catalog grows to 101 and they’re auto-charged without warning. Read the pricing page carefully. Ask: what happens when the client outgrows a tier? Is there a grace period? Does the app stop working or does it start billing?

Annual lock-in. Some apps offer 20% off for annual billing. Great, unless the client decides to switch platforms 4 months in. Check refund policies before committing a client to annual plans. Use our Fee Calculator to model total Shopify costs including app fees before presenting to the client.

Hidden feature gating. The free plan shows the app working perfectly. But key features (custom CSS, removing watermarks, priority support, API access) are locked behind the highest tier. Test on the plan the client will actually use, not the trial.

Support quality signals

As an agency, you’ll need the app developer’s support at some point. Probably at the worst possible time. Here’s how to gauge support quality before you commit:

  • Send a pre-sales question. Something specific, not “does your app work?” Ask about theme compatibility with the client’s exact theme, or about a specific use case. Measure response time and quality.
  • Check for documentation. Apps with thorough docs have teams that think about users. Apps with no docs or a 3-paragraph FAQ? That’s a solo developer who’ll disappear on vacation for two weeks with no backup.
  • Look for a changelog. Regular updates mean active development. If the last update was 8 months ago, the developer may have moved on to other projects.

One thing that matters more than agencies realize: does the app developer have experience with agencies specifically? Agency needs (white-label, multi-store management, client handoff, team access) are different from merchant needs. Some apps are built by people who understand agency workflows. Most aren’t.

Built for Shopify badge

Shopify’s “Built for Shopify” certification program matters more than most agencies give it credit for. To earn the badge, an app must meet requirements around performance (loading speed), quality (error rates), and user experience (onboarding, uninstall cleanup).

Does the badge guarantee the app is perfect? No. But it guarantees a baseline. The app won’t inject 500KB of JavaScript. It won’t break the theme editor. It handles uninstall cleanup properly. For agencies, that baseline eliminates most of the “broke my client’s store” scenarios.

Not every good app has the badge (the certification process takes effort and some small developers haven’t applied), but if you’re choosing between two similar apps and one has the badge, lean toward the certified one. The variant image app comparison and combined listings app comparison both note which apps carry the badge.

The 7-point evaluation checklist

Use this for every app you consider installing on a client store. Print it. Bookmark it. Whatever. Just don’t skip it.

#CheckPass criteria
1Speed impactLCP increase under 200ms on product and collection pages
2Code residueUses app blocks or theme extensions (not direct Liquid injection)
3Review patternsNo recurring “broke my theme” or “no support” complaints
4Pricing modelFlat pricing, clear tier thresholds, no Shopify-plan-based scaling
5Support responsivenessPre-sales question answered within 24 hours with a specific answer
6DocumentationSetup guide, FAQ, and changelog exist and are current
7Built for ShopifyCertified, or meets the performance criteria informally

An app that fails on 1 or 2 of these might still be the right choice if it’s the only option for the client’s specific need. An app that fails on 3 or more? Walk away. There’s almost always an alternative.

A strong practice: agencies should maintain an internal app whitelist. Every app you install on a client store should come from a pre-vetted list. New apps get tested on a staging store first, scored against this checklist, and added to the whitelist only if they pass. Yes, this means saying no to clients who “found this cool app on TikTok.” But it also means you never get a 2am call because some random app pushed a bad update and broke the checkout.

Worth it? Ask any agency that’s been through that 2am call. They’ll say yes. Use the Store Analyzer to get a full picture of the client’s current setup before recommending changes.

FAQ

How do I test a Shopify app without affecting the live client store?

Use a Shopify development store or duplicate the client’s theme and test on an unpublished copy. Most apps allow installation on development stores. Test speed, functionality, and uninstall cleanup before going live.

What does “Built for Shopify” actually guarantee?

It guarantees the app meets Shopify’s standards for performance (loading speed), quality (low error rates), and user experience (clean onboarding and uninstall). It does not guarantee the app solves your specific use case, so testing is still needed.

How do I check if an app leaves code behind after uninstall?

Take a theme backup before installing. After uninstalling the app, download the theme again and diff the two versions. Look for leftover Liquid snippets, script tags in theme.liquid, or disabled app blocks in section JSON files.

Should agencies avoid apps with plan-based pricing?

Not necessarily, but be aware of the cost implications. If a client plans to upgrade from Basic to Plus, an app that charges $9/month on Basic but $99/month on Plus creates an unexpected cost jump. Flat-priced apps avoid this entirely.

How many apps is too many for a Shopify store?

There’s no magic number. What matters is total speed impact and code overlap. A store with 15 well-built apps can outperform a store with 5 poorly built ones. Audit the app stack quarterly and remove anything unused. Check the app stack audit guide for the full process.

What’s the best way to present app recommendations to clients?

Include the monthly cost, the speed impact test results, one screenshot of the app in action, and your reasoning for choosing it over alternatives. Clients don’t want a feature list. They want to know why this app, why now, and what it costs.

Co-Founder at Craftshift