Defer and async app scripts
Every app script that loads synchronously in your <head> or at the top of theme.liquid forces the browser to stop parsing HTML until that script finishes downloading and executing. On a store with 20 apps, that can stack into several seconds of blocked rendering before a shopper sees a single product image.
The fix is straightforward: add defer to scripts that do not need to run before the page paints, and async to scripts that are fully independent. In practice, most review widgets, chat widgets, loyalty apps, and upsell pop-ups can be safely deferred. Work through each app script systematically: add defer, test the app functionality, and keep it if everything works. If an app breaks, try async. If that also breaks it, the script must stay blocking — but most can be deferred.
In our testing, applying defer to an average of 9 out of 21 homepage scripts reduced Time to Interactive by 1.4 seconds and Largest Contentful Paint by 0.9 seconds — making it the single most impactful change you can make without touching your app stack. Tools like Hyperspeed and Flying Pages automate this detection and deferral if you prefer not to edit Liquid code. For a broader look at how page speed intersects with your SEO rankings, see our guide on the Shopify SEO checklist.


























