Shopify / Shopify/liquid

Shopify Theme Performance

Open
#1,074 13 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Feature Request In Progress
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.