Audit apps before you touch the theme
Every app that injects a script costs you milliseconds even on pages where it does nothing. Open the theme code and search for script tags left behind by uninstalled apps. Shopify removes theme app extensions cleanly, though older apps that edited theme.liquid leave debris.
Run PageSpeed Insights on a product page, then look at the third party summary. Review widgets, chat, popups, upsells and analytics stacks usually account for the bulk of blocking time. Removing three apps you barely use beats a week of code optimisation.
Fix the LCP element specifically
Your Largest Contentful Paint element is almost always the hero image or the first product photo. Serve it at the size it renders, in WebP, with a preload hint and without lazy loading. Shopify’s image_url filter with explicit width and a srcset does most of the work.
Layout shift usually comes from images with no dimensions, web fonts swapping late and app banners injected after paint. Set width and height on every image, preload the one font weight above the fold and reserve fixed height for announcement bars.
Judge speed on field data and revenue
Lighthouse scores in the Shopify admin are lab tests on a throttled connection. Google ranks on field data from the Chrome User Experience Report, gathered over 28 days. Check Search Console’s Core Web Vitals report for the real verdict, and expect a month of lag after any fix.
Be honest about the payoff. Going from four seconds to two seconds moves revenue. Going from 88 to 94 in Lighthouse usually moves nothing. Spend the budget where the load time is genuinely bad on mobile, then stop.