We have a client that's website isn't performing well in the load department. And I need to perform an analysis on why so. So I am hopping that someone can give advise or strategy on how to do so. Now I know how to use GTMetrix, Shopify Analyzer, Google Insights. But these just say obvious stuff, like image compression, reduce js request and so on. But can't show the sources of these issues. So my question to you would be what kind of strategy do you use in finding the source of the issue. I am thinking of writing an extended analysis on how well the site performs with only theme and separate apps installed, and would really like to hear some advice on this.
Solved! Go to the solution
Hi @mariusslo I have a couple ideas for you:
1) With the Shopify Analyzer if you click on the warning you can get the details on what's causing it + recommendations how to fix (if it's not explained well let me know, my team built this and always looking to make things easier).
2) We also like to use Pingdom and WebpageTest.org as part of a full analysis. Pingdom has a nice interface for seeing the amount of resources coming from each domain (I think the "source" you're looking for), and WebpageTest is great for benchmarking number of requests, page weight, and load speed. For example, if you're curious how much an app is contributing to load speed and resources, disable it then run the test, and compare the results.
3) As part of an extended analysis you'll also want to read the code, especially the core theme files (theme.liquid, product.liquid and its subsidiaries, blog, article, collection). When reading the code you can look for:
- Unnecessary files (example, from apps that the store owner deleted but did not remove the code)
- App code that is included globally (theme.liquid) but app is only needed on 1 template (like the product page). This code can be conditionally loaded
- Pretty rare, but nested liquid loops that cycle through large data sets (like every product in the store) could possibly be refactored to make fewer commands.
that is some solid advise and I thank you for it. But the source I am talking about is the actual app that loads the script, it is not always obvious what app loads what scripts and it is hard to identify them. The only way of identifying such thing I believe would be:
1) disable all apps
2) scan website and save all scripts in a txt file
3) install 1 app
4) scan again and save script files in txt
5) compare 2 txt files
6) delete app
7) repeat from step 3 until all apps scanned
As you can image it is a really long and boring routine, but I guess it's the only way to identify slow apps
This is an accepted solution.
Ah ok, ya this will require some analysis (good times
Here are a few methods we use to identify which app is loading which script:
1) Look in the theme code, apps will often (I wish always) have code comments or the snippet / file similar to their app name.
2) Use Pingdom to analyze the "waterfall", then click on the details of the request you're investigating to find more info. If you can't extrapolate the app it's coming from, try a google search for the file.
3) Use the Chrome dev tools Network tab to inspect the resources loading and data.
4) Contact the apps in your store and ask them to share the list of files / resources that they load with their app. Every app developer knows exactly which resources they load and where, so this one is probably the easiest method for you if you're doing an app analysis.
Thanks Joe, your advices are really helpful in this case. Hopefully app support will provide me some kind of list of requested scripts, but that is doubtful from my experience (app support usually does not give a damn from the first 7 emails. Only when you get mad they start doing the things you ask) and I will be left of with a headache of a task with finding the apps which make the requests and analyzing the theme. Cheers!
@mariusslo you're welcome. For app support, reach out to the app developer directly (either inside their app or the email on their app store listing, not Shopify support). Shopify support can be quite slow but in my experience most app development companies care about their customer's experience and will respond within a day during business hours. If there's an app that is ignoring your requests for support for multiple emails, that's a huge red flag, I would consider a new app in that case.