Shopify Theme Performance
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 11.9k
- Forks
- 1.5k
- Avg merge
- 17h 55m
- Merged PRs (30d)
- 3
Description
Based on my experiences as a partner, stores with high TTFB times (above 2 seconds) are becoming increasingly common and I think how Liquid is being used has to do a big part in it. Compared to years ago, themes are getting much more complex and more apps are being used.
Site speed became a factor in Google search results in July 2018 and is also used grade the quality score of an ad. This is an issue that directly impacts sales and non-technical stakeholders can see it is a problem.
I know this is very hard to solve in practice since these problems are due to things out of Shopify's control and that there is huge variance in network quality.
App and theme developers tend to not put a huge emphasis on performance and in the end, all these things add up. To their defense, there are absolutely no resources on how to deal with this or measure it.
Some ideas:
Add performance section to Shopify Help Center
I have a feeling this may be tough for you guys to have documentation on this since things are probably changing on a day to day basis but I think even the smallest amount of information would be a lot of help.
- What is cached? Is it Russian doll caching? This is commonly believed by many in the Shopify community but there hasn't been a direct statement from a Shopify employee to my knowledge.
- What causes the cache to invalidate
- Low level info on how metafields are queried
- Best practices for structuring metafield namespace/keys and accessing them
Add performance measurement to Liquid
If a client asks me to solve high TTFB times, I basically have to review their entire theme by measuring the impact of removing and adding different parts of their theme which can potentially be time consuming to the point where a rewrite of the theme is actually feasible. This is an extremely bad look for all sides.
- We need to be able to determine what is and isn't being cached
- We need to be able to measure the performance in a reliable way (too many external factors when testing manually in a browser)
- Not sure if this is realistic: measuring performance impact of certain blocks of Liquid
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named. Start by narrowing the proposal to either Help Center documentation or Liquid performance measurement, then define a concrete scope and reliable completion criteria for the selected work.
Written by the indexing model from the issue text.
Assessment
- Domain
- performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100