Shopify's servers are fast. When a store is slow, the cause is nearly always in the theme or the apps. Work through these in order and measure after each change.
Measure first
1. Test the right pages. Run PageSpeed Insights on the home page, a collection page and a product page. They often have different problems.
2. Look at real-user data. The field data in PageSpeed Insights and the Core Web Vitals report in Search Console show what actual visitors experience. Lab scores are a guide only.
Images
3. Serve the right size. Use Shopify's image filters with responsive widths so a phone never downloads a desktop image.
4. Prioritise the main image. The largest image above the fold should load eagerly with high fetch priority. Everything below it should lazy load.
5. Set width and height. Declared dimensions stop the page jumping as images arrive, which improves CLS.
Apps and scripts
6. Remove unused apps. Then check the theme for code they left behind. Uninstalling an app does not always remove its snippets.
7. Question every remaining app. If an app adds a small feature and a large script, a few lines in the theme may replace it.
8. Defer what is not needed immediately. Chat widgets, review carousels and tracking scripts can load after the page is usable.
Theme
9. Limit fonts. Two families and three weights are plenty. Preload the main one and use font-display swap.
10. Cut home page sections. Each section adds markup, images and often scripts. Keep the ones that earn clicks.
11. Avoid heavy sliders and video backgrounds above the fold. A single strong image nearly always converts as well and loads far quicker.
12. Review Liquid loops. Nested loops over large collections slow server response. Paginate and limit.
When to call for help
If you have worked through the list and the store is still slow, the cause is usually buried in theme code. That is the work we do in our SEO and speed service.