「一緒に買われた」を武器にする協調フィルタとクロスセル実践ガイド
「一緒に買われた」協調フィルタは、感覚ではなく実際の購入データからクロスセルを組み立てられる強力な仕組みです。どこに何個出すか、NG な組み合わせをどう避けるかまで、Shopify ストアで今すぐ試せる運用方法を解説します。

結論から言うと、「一緒に買われた」協調フィルタはクロスセルの起点として非常に強力ですが、「どこに」「何個」「どの条件で」出すかを決めないと成果が安定しません。感覚ではなく購入データをもとに、小さく A/B テストしながら運用ルールを固めることがポイントです。Shopify ではアプリ経由でこの仕組みを比較的簡単に導入できるため、テーマ改修よりもまずはレコメンド運用の設計から手を付けるのがおすすめです。
協調フィルタと「一緒に買われた」をかんたんに整理する
協調フィルタという言葉は難しく聞こえますが、やっていることはシンプルです。「この商品を買った人は、ほかに何を買っているか」という履歴を大量に集計し、よく一緒に買われる組み合わせを見つけて表示するだけです。専門的にはユーザー同士や商品同士の「似ている行動パターン」を見つける仕組みですが、現場で意識すべきなのは「実際の購入データにもとづくクロスセル候補を自動で抽出する仕組み」と捉えることです。
よくあるおすすめの作り方は「店長の勘」や「原価率」「在庫状況」から組み合わせを決めるやり方です。もちろんこれも重要ですが、勘だけに頼ると、実際には一緒に買われていない組み合わせを押し出してしまい、ページを圧迫する「ノイズの多いレコメンド」になります。協調フィルタは、過去の注文データをそのまま反映できるため、まずは「現実に起きている買い方」を見える化する用途から始めると運用に乗せやすくなります。
また、「一緒に買われた」と似た機能に「この商品を見ている人はこんな商品も見ています」がありますが、こちらは閲覧ベースです。どちらも協調フィルタで実現できますが、クロスセルの売上インパクトを狙うなら、まずは購入ベースの「一緒に買われた」から固めるのが効率的です。閲覧ベースは PV が多くないとノイズが増えやすく、小規模ストアでは動きが安定しにくい傾向があります。
どのページで「一緒に買われた」を出すかの優先順位

協調フィルタによる「一緒に買われた」は、出す場所によって役割が変わります。すべてのページに一気に出すと検証がしづらくなるため、まずは優先度を決めて順番に広げていきます。おすすめの順番は、商品ページ → カートページ(ドロワーカート含む)→ サンクスページの三段階です。特に商品ページは滞在時間が長く、ロジックの影響を一番受けやすい場所です。
商品ページでは、「この商品と一緒に買われた商品」として 3〜4 個に絞って出すのが扱いやすいです。たとえば単価 3,000 円の商品ページに、平均 1,500 円の「一緒に買われた」商品を 3 個並べ、1 ヶ月で 1,000 セッションあたり 5〜8 件の追加購入が出れば、クロスセルとしてはかなり優秀な部類です。初期は「スクロールの途中(説明文の下)」と「ページ末尾」のどちらがクリックされやすいかだけでも比べると、レイアウトの方向性が見えます。
カートページとドロワーカートでは、すでに買う気になっているお客様に対して「ついで買い」を提案する役割になります。ここに「一緒に買われた」ブロックを 1〜2 個だけ出し、「カート金額 + 20〜30%前後の合計になるような商品」が混ざるのが理想です。例えば平均注文額が 6,000 円なら、1,000〜2,000 円前後で一緒に買われやすい消耗品や関連パーツが候補になります。
サンクスページは「もう買ってくれたお客様」に対する追いレコメンドの場です。即時の購入よりも、後日のリピート購入を狙う設計に向いています。ここでは同時購入ではなく、「この商品を買った人が次回よく買っている商品」を協調フィルタで抽出できると理想的です。まずは商品ページとカートで十分なデータが溜まってから、サンクスページを追加する順番でも問題ありません。
出しすぎ注意。「何個まで」「どんな並びで」見せるか

「一緒に買われた」を入れるときに起こりがちな失敗が、「とにかくたくさん並べてしまう」ことです。レコメンドを 10 個も 12 個も並べると、ユーザーは見きれずにスクロールしてしまい、クリック率が 1%未満に落ち込むケースがよくあります。現場感覚としては、1 ブロックあたり 3〜4 個、多くても 6 個までに絞り、その代わりブロックの配置と中身をチューニングした方が成果につながりやすいです。
並び順の基本は「一緒に買われた回数が多い順」ですが、それだけだと単価が極端に安い商品ばかり上位に来ることがあります。たとえば 200 円のパーツが 80 回一緒に買われていて、1,500 円の関連商品が 40 回だった場合、売上インパクトが大きいのは後者です。この場合、「一緒に買われた回数」と「商品単価」や「利益率」に重みをつけて並び替えると、売上につながりやすい組み合わせが上にきます。
また、「値引き商品ばかり」「在庫が少ない商品ばかり」が上位に来ると運用が不安になります。現場で扱いやすくするには、レコメンド対象から除外する条件をあらかじめ決めておくことが有効です。例えば「在庫数が一定数を切った商品は出さない」「原価率が一定以上高い商品は出さない」「セール期間中は特定コレクションだけを優先表示する」といったルールを決め、それ以外の並びは協調フィルタに任せるとバランスを取りやすくなります。
「これは出したくない」をどう制御するか(NG 組み合わせ管理)
協調フィルタは、あくまで「過去によく一緒に買われた」組み合わせを抽出する仕組みです。そのため、現場感覚では出したくない組み合わせが混ざることがあります。たとえば「同じ商品の色違い」「上位モデルと下位モデル」「保証プランと内容が重複するオプション」などが代表的です。これらを何も制御せずに出してしまうと、お客様が迷ったり、不信感を持ったりする原因になります。
現場で対応しやすいのは、「NG 組み合わせ」のリストを作り、レコメンドの候補から除外する設計です。運用のやり方としては、次のような簡単なステップが現実的です。
- 毎月 1 回、主要商品の「一緒に買われた」リストをダッシュボードや CSV で確認する
- 「これは一緒に出したくない」という組み合わせにフラグを付ける(商品タグやメモ欄を使ってもよい)
- アプリやスクリプト側で、その組み合わせが一緒に表示されないよう除外条件を設定する
注意点として、「なんとなく違和感がある」だけで除外しすぎないことも大事です。例えば、店側の想定では別々に売れるはずの商品が、実際には「まとめ買い」されていることがあります。ある店舗では、A と B を分けて売る前提でページを作っていたものの、「一緒に買われた」データを見ると A+B のセット購入が 30%以上を占めていたケースがありました。この場合、むしろ「セット商品」を新しく作る方が売上と在庫回転の両方でメリットが出ます。
データが少ないストアでの協調フィルタの始め方
新規ストアや月間注文数がまだ多くないストアでは、「一緒に買われた」のデータが十分に溜まっておらず、協調フィルタがうまく機能しないことがあります。注文数が数十件レベルだと、たまたまの購入パターンが強く反映されてしまい、「本当に相性が良い商品」かどうかが判断しづらくなります。
この段階では、「協調フィルタ 100%」ではなく、「ルールベース 70% + 協調フィルタ 30%」くらいの感覚で混ぜると安定します。具体的には、まず店側が「この商品に必ず見せたい関連商品」を 1〜2 個だけ手動で決めておき、残り 1〜2 枠を協調フィルタに任せるやり方です。こうしておくと、データが少ないうちは店側の意図で最低限の品質を保ちつつ、注文が増えるにつれて自動レコメンドの精度が自然に上がっていきます。
また、データが少ない状態で無理に「この商品を見ている人は…」のような閲覧ベースのレコメンドを増やすと、同じ人が何度も見た商品だけが偏って出るなどのノイズが増えます。月間のセッション数や注文数がある程度増えるまでは、「一緒に買われた」など購入ベースの協調フィルタに集中し、ブロック数を絞って様子を見る方が運用コストも低く抑えられます。
RecoBoost ならこう活かす
RecoBoost は Shopify ストア向けのレコメンドアプリとして、「一緒に買われた」など協調フィルタのロジックを標準で備えています。商品ページ・カート・サンクスページなど複数の場所にブロックを設置できるため、本記事で触れた「どこに」「何個」出すかの検証を、テーマ改修なしで始められます。また、除外したい商品やコレクションをタグや設定画面から制御できるため、「これは一緒に出したくない」という NG 組み合わせにも現場から対応しやすい構成です。まずは主要商品のページだけに「一緒に買われた」ブロックを 3〜4 個で設置し、クリック率と追加購入数を見ながらルールを整えていくと、協調フィルタを無理なく運用に組み込めます。
協調フィルタによる「一緒に買われた」は、感覚ではなく購入データにもとづいてクロスセルを自動化できる仕組みです。出す場所・個数・除外ルールをあらかじめ決め、データが少ないうちはルールベースと併用しながら徐々に自動化の比率を高めていくと、Shopify ストアでも無理なく運用できます。重要なのは、一度入れて終わりにせず、月に一度でもレコメンド結果を確認し、NG 組み合わせの整理やセット商品の発掘に活かすことです。
