%25E3%2581%25AE%25E3%2582%25B3%25E3%2583%2592%25E3%2582%259A%25E3%2583%25BC.png&w=3840&q=75)
今回の記事は Shopify App Store で提供されている、「複数の画像を一度に表示できるスライドショー(カルーセル)アプリ」についての記事です。
「スライドショー=1枚ずつ切り替わるバナー」というイメージが強いですが、最近は PC で“複数枚を横並び” にしつつ、次の画像が少し見切れる(peek) ことで「続きが気になる」導線を作れるタイプが人気です。コレクション誘導・新作訴求・ブランドロゴ訴求など、見せたい画像が複数あるストアほど相性が良いです。
スライドショーアプリについて調べるにあたり、以下の公式ドキュメントも参考にしています。(実装パートで使います)
image_url / image_tag)(URL が必要な場合は、末尾の「参考記事」にまとめています)
複数画像スライドショーは、ストアの任意の場所(トップ、コレクション、商品詳細、ブログなど)で、複数の画像を 横スクロール(カルーセル) や ローテーション(自動切り替え) で見せる UI です。
特に「複数の画像を一度に表示できる」タイプは、次のような見せ方が得意です。
「画像が1枚だけ」だと訴求が単発になりますが、複数枚を並べられると 回遊を促す導線 を作りやすくなります。
複数画像スライドショーの導入により得られる利点について解説します。
回遊率の向上
画像が複数並ぶことで「他にもある」ことが直感的に伝わり、スクロール/スワイプが増えやすくなります。結果として、コレクションや特集ページへの遷移が増えます。
訴求の“並列化”ができる
新作・セール・定番・ランキングなど、伝えたい要素が複数あるストアほど、1枠でまとめて見せられるのは強いです。
クリック導線を作りやすい
スライドごとにリンク設定ができると、画像=メニューになります。トップの「特集導線」が作りやすいです。
コンバージョンに近い導線へ短縮できる
「画像 → 商品一覧 → 商品詳細」のように、入口から購入候補までの距離を短くできます。
ブランド体験の統一感が出る
画像のトーンや余白、角丸、影などを揃えることで、ストア全体の見た目が整い“きちんと感”が出ます。
モバイル UX と相性が良い
スワイプ操作はモバイルで自然です。バナーより“触れるUI”として認知されやすいです。
季節施策・キャンペーンの運用がしやすい
スライド差し替えやスケジュール機能(アプリによる)で、季節ごとの運用が楽になります。
分析・改善に繋げやすい
クリック数や表示数(アプリによる)を見て、どの訴求が効いたか改善できます。
複数画像スライドショーアプリを選ぶ際には、「見せ方」と「運用のしやすさ」をセットで見るのが重要です。以下に、選定時に重視すべきポイントをまとめます。
「まず失敗したくない」なら、日本語対応 + ノーコードで設置できる アプリから入るのが無難です。逆に、LP をガッツリ作り込みたいなら、テンプレートが豊富なビルダー系が強いです。
ここから、今回ピックアップした 7 つのアプリを紹介します。
(評価・価格・機能は、いただいたアプリ情報をもとに整理しています)
見切れ表示つきの“今っぽい”画像カルーセルを、ノーコードでサクッと追加できるアプリ。日本語対応なのも安心。
最初におすすめしたいのがこのアプリです。最大の魅力は、「見切れ表示(次の画像が少し見える)」 を前提にしたデザインで、視覚的に「続きが気になる」体験を作れることです。
ストア内の好きな場所にスライダーを追加でき、各スライドにリンク設定が可能なので、新作・セール・コレクションなどの特集ページへ自然に誘導できます。デザインは 2 種類から選べ、PC では複数画像を横並び表示できるため、一覧性と訴求力も高めやすいです。
開発者は UnReact Inc.。評価は現時点で 0.0(レビューなし)ですが、要件が明確なストアには刺さりやすいタイプです。
1週間の無料期間もあるので、ぜひお試しください。
シンプル複数画像スライドショー|お手軽イメージカルーセル
また、公式ご利用ガイドもあるので合わせてご参照ください。
公式ご利用ガイド

ルックブックやバナーを“複数枚まとめて”見せたいストア向け。画像の一括アップロード、速度調整、テキスト/リンク設定に対応。
Image Slider Pro は、画像をスライダー/カルーセルで見せる王道タイプです。複数画像をまとめてアップロードでき、スライド速度を調整可能。画像の上にテキストやコメントを入れられ、クリック時の遷移先 URL も設定できます。
「ロゴスライダーを任意のページへ設置できる」点も特徴で、トップだけでなく商品ページやコレクションページの補強にも使いやすいです。モバイルレスポンシブにも対応しています。
言語は英語(日本語未翻訳)です。

画像だけでなく YouTube 動画も同じスライダーで混在表示できるのが強み。ドラッグ&ドロップで管理でき、レスポンシブ設定も細かい。
Image & Video Slider は、「画像スライダー」に動画要素(YouTube)を組み合わせたいストアに向いています。プロモーション動画やレビュー動画などを混ぜると、情報量と説得力が増します。
ドラッグ&ドロップで並び替えでき、デバイス別設定(desktop/tablet/mobile)や余白・間隔・レイアウト調整にも対応。さらに、商品画像のライトボックス(拡大表示)機能があるため、ギャラリー用途にも使えます。
言語は英語(日本語未翻訳)です。

バナーを“複数”運用したいストア向け。ローテーション表示、カウントダウン、ポップアップ、送料無料バーなど販促一式をまとめたいなら強い。
TA Banner Slider は、純粋な「画像カルーセル」というより 販促バナー運用の総合ツール に近いです。複数バナーをローテーション表示でき、ページ/顧客グループごとの出し分けや、カウントダウンで緊急性を演出できます。
さらに、セールポップアップ、メルマガ登録、カート目標(Cart Goal)など、購入を後押しする要素が揃っています。バナーを“何本も運用するストア”ほど、管理を一元化できるメリットが大きいです。
言語は英語(日本語未翻訳)です。

「スライダーだけ」ではなく、LP・ヒーロー・バナー・動画・カルーセルをテンプレから一気に作れる“作り込み派”向け。
このアプリは、スライダー専用というより ページビルダー + セクションライブラリ の位置付けです。600+ のテンプレートから、画像スライダー、バナー、ビデオスライド、ヒーローセクションなどを構築できます。
“とにかく早くそれっぽいデザインを作りたい”ときに強く、アニメーションやトランジションも豊富。さらに YouTube/Vimeo/Facebook/Instagram などのソーシャルコンテンツをスライダーで使えるのも特徴です。
言語は英語(日本語未翻訳)です。

「無料で、とりあえずクリック可能な画像スライドを置きたい」なら候補。デスクトップ/モバイル最適化も用意。
DC は、シンプルな画像スライドショーを作るのに向いたアプリです。各スライドをクリック可能にでき、商品ページへ誘導する用途にも使えます。
“複数画像を一度に表示”という意味では、主に バナーのローテーション に近いですが、無料で始められるのは魅力です。最初の導入テストや、小規模ストアの運用に向きます。
言語は英語(日本語未翻訳)です。

スライドショーではなく“スライド式カート”で CVR/AOV を伸ばす系。ただ、カート内で関連商品(画像付き)を複数見せられるため、導線設計としては相性が良い。
Qikify は画像スライダーアプリではありませんが、スライド式のカートドロワー を導入し、カート内でアップセル/クロスセル(=商品画像が複数並ぶ)を見せられます。
「トップでカルーセルを置く」よりも、購入直前のカートで関連商品を出したいストアには非常に強力です。プログレスバー(条件達成で特典)や、無料ギフト、割引コード欄などもあり、AOV 改善の定番パターンをまとめて実装できます。
言語は英語(日本語未翻訳)です。
アプリが便利なのは前提として、「まずは軽く試したい」「アプリを増やしたくない」「デザインを細かく揃えたい」場合は、テーマにセクションを追加して自作するのも有効です。
ここでは、複数枚を横並び表示し、スワイプ/横スクロールでき、矢印ボタンで移動できる簡易カルーセルを、Shopify テーマのセクションとして実装します。
(“見切れ表示”も、設定でそれっぽく作れるようにしています)
sections に multi-image-carousel.liquid を新規作成{% comment %}
マルチ画像カルーセル(簡易版)
- PCは複数枚を横並び表示
- モバイルはスワイプ
- 矢印でスライド移動
- 画像にリンク設定可
{% endcomment %}
<section id="ur-carousel-{{ section.id }}" class="ur-carousel" data-ur-carousel>
{% if section.settings.title != blank %}
<h2 class="ur-carousel__title">{{ section.settings.title | escape }}</h2>
{% endif %}
<div class="ur-carousel__frame">
<button class="ur-carousel__nav ur-carousel__nav--prev" type="button" aria-label="前へ" data-ur-carousel-prev>
‹
</button>
<div class="ur-carousel__track" data-ur-carousel-track tabindex="0" aria-label="画像カルーセル">
{% for block in section.blocks %}
{% assign img = block.settings.image %}
<div class="ur-carousel__item" {{ block.shopify_attributes }}>
{% if img != blank %}
{% capture image_markup %}
{{
img
| image_url: width: 1600
| image_tag:
loading: 'lazy',
widths: '360, 540, 720, 900, 1200, 1600',
sizes: '(min-width: 990px) 25vw, (min-width: 750px) 33vw, 80vw',
alt: block.settings.alt_text
}}
{% endcapture %}
{% if block.settings.link != blank %}
<a class="ur-carousel__link" href="{{ block.settings.link }}">
{{ image_markup }}
</a>
{% else %}
{{ image_markup }}
{% endif %}
{% if block.settings.caption != blank %}
<p class="ur-carousel__caption">{{ block.settings.caption | escape }}</p>
{% endif %}
{% else %}
<div class="ur-carousel__placeholder">
画像を設定してください
</div>
{% endif %}
</div>
{% endfor %}
</div>
<button class="ur-carousel__nav ur-carousel__nav--next" type="button" aria-label="次へ" data-ur-carousel-next>
›
</button>
</div>
</section>
<style>
#ur-carousel-{{ section.id }} {
--gap: {{ section.settings.gap }}px;
--radius: {{ section.settings.radius }}px;
/* 表示枚数(ブレイクポイントで切替) */
--per-view: {{ section.settings.per_view_mobile }};
--peek-extra: {% if section.settings.peek %}0.35{% else %}0{% endif %};
}
@media (min-width: 750px) {
#ur-carousel-{{ section.id }} { --per-view: {{ section.settings.per_view_tablet }}; }
}
@media (min-width: 990px) {
#ur-carousel-{{ section.id }} { --per-view: {{ section.settings.per_view_desktop }}; }
}
#ur-carousel-{{ section.id }} .ur-carousel__title {
margin: 0 0 12px;
font-size: 1.4em;
line-height: 1.3;
}
#ur-carousel-{{ section.id }} .ur-carousel__frame {
position: relative;
}
#ur-carousel-{{ section.id }} .ur-carousel__track {
display: flex;
gap: var(--gap);
overflow-x: auto;
scroll-snap-type: x mandatory;
scroll-behavior: smooth;
padding: 2px;
-webkit-overflow-scrolling: touch;
/* スクロールバーを目立たせない(完全非表示はしない) */
scrollbar-width: thin;
}
#ur-carousel-{{ section.id }} .ur-carousel__item {
scroll-snap-align: start;
flex: 0 0 calc(100% / (var(--per-view) + var(--peek-extra)));
}
#ur-carousel-{{ section.id }} img {
width: 100%;
height: auto;
display: block;
border-radius: var(--radius);
}
#ur-carousel-{{ section.id }} .ur-carousel__link {
display: block;
text-decoration: none;
}
#ur-carousel-{{ section.id }} .ur-carousel__caption {
margin: 8px 0 0;
font-size: 0.95em;
line-height: 1.4;
}
#ur-carousel-{{ section.id }} .ur-carousel__placeholder {
border: 1px dashed rgba(0,0,0,.2);
border-radius: var(--radius);
padding: 24px;
text-align: center;
}
#ur-carousel-{{ section.id }} .ur-carousel__nav {
position: absolute;
top: 50%;
transform: translateY(-50%);
z-index: 2;
width: 40px;
height: 40px;
border-radius: 999px;
border: 1px solid rgba(0,0,0,.15);
background: rgba(255,255,255,.9);
cursor: pointer;
}
#ur-carousel-{{ section.id }} .ur-carousel__nav--prev { left: 6px; }
#ur-carousel-{{ section.id }} .ur-carousel__nav--next { right: 6px; }
/* モバイルはスワイプ中心にして矢印を控えめに */
@media (max-width: 749px) {
#ur-carousel-{{ section.id }} .ur-carousel__nav { display: none; }
}
@media (prefers-reduced-motion: reduce) {
#ur-carousel-{{ section.id }} .ur-carousel__track { scroll-behavior: auto; }
}
</style>
<script>
(function () {
const root = document.querySelector('#ur-carousel-{{ section.id }}[data-ur-carousel]');
if (!root) return;
const track = root.querySelector('[data-ur-carousel-track]');
const prev = root.querySelector('[data-ur-carousel-prev]');
const next = root.querySelector('[data-ur-carousel-next]');
const item = root.querySelector('.ur-carousel__item');
if (!track || !prev || !next || !item) return;
function step() {
const rect = item.getBoundingClientRect();
const gap = parseFloat(getComputedStyle(track).gap || '0');
return rect.width + gap;
}
prev.addEventListener('click', () => {
track.scrollBy({ left: -step(), behavior: 'smooth' });
});
next.addEventListener('click', () => {
track.scrollBy({ left: step(), behavior: 'smooth' });
});
})();
</script>
{% schema %}
{
"name": "マルチ画像カルーセル",
"settings": [
{
"type": "text",
"id": "title",
"label": "見出し",
"default": "おすすめ"
},
{
"type": "checkbox",
"id": "peek",
"label": "見切れ(次の画像を少し表示)を有効にする",
"default": true
},
{
"type": "range",
"id": "per_view_desktop",
"min": 2,
"max": 6,
"step": 1,
"label": "PCで同時に見せる枚数",
"default": 4
},
{
"type": "range",
"id": "per_view_tablet",
"min": 1,
"max": 4,
"step": 1,
"label": "タブレットで同時に見せる枚数",
"default": 3
},
{
"type": "range",
"id": "per_view_mobile",
"min": 1,
"max": 2,
"step": 1,
"label": "モバイルで同時に見せる枚数",
"default": 1
},
{
"type": "range",
"id": "gap",
"min": 0,
"max": 24,
"step": 1,
"label": "画像の間隔(px)",
"default": 12
},
{
"type": "range",
"id": "radius",
"min": 0,
"max": 24,
"step": 1,
"label": "角丸(px)",
"default": 12
}
],
"blocks": [
{
"type": "slide",
"name": "スライド",
"settings": [
{
"type": "image_picker",
"id": "image",
"label": "画像"
},
{
"type": "url",
"id": "link",
"label": "リンク先URL(任意)"
},
{
"type": "text",
"id": "caption",
"label": "キャプション(任意)",
"default": ""
},
{
"type": "text",
"id": "alt_text",
"label": "代替テキスト(alt)",
"default": ""
}
]
}
],
"max_blocks": 12,
"presets": [
{
"name": "マルチ画像カルーセル"
}
]
}
{% endschema %}
loading: 'lazy' で遅延読み込みし、表示を重くしにくくしています--peek-extra で“少しだけ次が見える幅”を作っていますアプリを入れるか迷うときでも、このセクションでまず“置いたときの効果”を確認してから判断すると失敗が減ります。
「複数画像を見せたい」という目的で、各アプリの始めやすさをざっくり整理します。(テーブルは使わず箇条書きでまとめます)
「画像カルーセルだけ欲しい」のか、「販促バナー運用までまとめたい」のか、「LP を作り込みたい」のかで、最適解が変わります。
日本語サポート(少なくともアプリ UI が日本語対応しているか)は、運用効率に直結します。翻訳しながら設定すると、地味に時間が溶けます。
日本語対応あり
日本語未翻訳(英語)
「スタッフ全員が英語UIでも問題ない」なら選択肢は広がりますが、運用担当が複数いるストアほど、日本語対応の価値は大きいです。
複数画像スライドショー用途で、管理画面の言語面も含めて「シンプルに使いやすい」のは、現状だと 「シンプル複数画像スライドショー|お手軽イメージカルーセル」 です。
一方で、バナー運用・分析・ポップアップまで含めるなら TA、LP を作り込むなら スライダー革命、動画を混ぜるなら Image & Video Slider、カートで AOV を伸ばすなら Qikify…というように、目的別に選ぶのがベストです。
今回は、Shopify の「複数の画像を一度に表示できるスライドショー(カルーセル)アプリ 7選」を紹介しました。
どのアプリをインストールするか迷っている場合は、まずは次の順番で検討すると選びやすいです。
また、「アプリを増やさずにまず試したい」場合は、記事内のセクションコードで簡易カルーセルを作って、クリック率や回遊が伸びるかを見てからアプリ導入するのもおすすめです。
ここまでお付き合い頂き、誠にありがとうございました。