← inaro.devShopify学習ツール
14-02

Liquidのパフォーマンス

描画時間を悪化させるLiquidの書き方を見抜き、書き直せる

最終確認: 2026-09

解説

受託の現場でなぜ必要か: この回では、描画(ページを組み立てる処理)を遅くするLiquidの書き方を見抜き、書き直せるようになります。
受託では、定番の遅い書き方を知っていると「商品一覧が遅い」をコードレビューの段階で止められます。

重いオブジェクト参照とは

遅さの定番は、ループの中で重いオブジェクトを参照する書き方です。
all_products['handle']をループ内で呼ぶ、collections.all.productsを全件たどる、商品カードごとにproduct.collectionsを参照する、の3つが代表です。
見た目はふつうのfor文なので、気づきにくいのが厄介です。

ネストしたループは件数の積で増える

コレクション × 商品 × バリエーションの三重ループは、処理の回数が件数の積で増えます。
必要なデータはwheremap(配列を絞る・取り出すフィルタ)で先に絞ります。
paginateで1ページに出す件数も控えめにします(上限は公式で確認します)。
「全件表示」は、ページ速度とAPIの両面で無理があります。

renderはどの単位で呼ぶか

大きいオブジェクトを毎回渡すrenderを数百回呼ぶより、ループをrenderの中に入れるほうが軽くなります。
{% render 'x' for items as item %}の書き方も選択肢です。

直す前に計測する

書き換えの前に、theme profileで最も時間を使っているセクションを特定します。
推測で書き換えると、効果のない場所を直して時間を失います。
計測 → 特定 → 修正の順に進めます。

ステップ1 / 2

ShopifyはShopify Inc.の商標です。本サイトは個人が制作した非公式の学習教材であり、同社の承認・提携・後援を受けていません。記載内容は2026-09時点のものです。料金・上限値・管理画面のラベルは変わるため、作業の前に公式ドキュメントで確認してください。