How to show multiple images per variant inside a Shopify combined listing

How to show multiple images per variant inside a Shopify combined listing

Shopify combined listings multiple images per variant is one of the most searched setups we deal with, and the answer catches people off guard: the cleanest way to give every color its own full set of photos isn’t a single product stuffed with variants at all. It’s a combined listing. A combined listing links separate standalone products, one per color, into a single shopping experience. Each color keeps its own product page, its own URL, and its own image gallery. So the “multiple variant images” problem more or less solves itself.

Say you sell a hoodie in six colors. You want twelve photos per color: front, back, detail, on-model, folded, and so on. On a single product with variants, all seventy-two images pile into one gallery and Shopify only lets you tie one featured image to each variant. That’s the famous one image per variant limit. Combined listings sidestep it entirely, because each color is already its own product with its own gallery.

This post walks through the combined-listings route, where it beats the single-product route, and where you still want a second tool for product-page image filtering. We build both apps, so we’ll keep the split honest. Rubik Combined Listings (RCL) links the products and paints the swatches. Rubik Variant Images (RVI) filters the gallery on the product page. Different jobs.

In this post

Combined listing vs one product with variants

A combined listing links separate products into one grouped listing, so each color already carries its own gallery, while a single product with variants forces every color to share one gallery and one featured image slot. That single sentence is the whole decision. But the consequences run deep, so let’s lay them side by side.

ApproachGallery per colorURL per colorSEO per colorBest for
One product, many variantsShared, one featured image eachNoOne page ranks for all colorsSmall catalogs, few photos
Combined listing (separate products)Full gallery, unlimited photos eachYes, one per colorEach color can rank and be sharedApparel, high-photo catalogs

Here’s the strong opinion, and we’ll defend it: stuffing ten colors into one product is the wrong default for anything visual. Apparel, furniture, cosmetics, footwear. If a color deserves ten photos, it deserves its own page. A combined listing gives you that page without breaking the shopping feel, because shoppers still click a swatch and switch colors like normal variants. They just don’t lose the gallery when they do.

So why does a single product with variants make this so hard? Because Shopify’s data model was built around one image per variant. You can assign a hero shot per color, sure. But you can’t assign a full multi-photo set per color and have the gallery swap cleanly. That gap is exactly why the combined-listings pattern exists, and why merchants who want multiple variant images keep landing on it.

When each color is its own product, each color owns a complete image gallery with no cap from us and no shared-slot compromise. Twelve photos for red, eight for navy, twenty for the limited edition. Whatever each color needs. This is the cleanest way to assign multiple images to a variant, because technically you’re not assigning images to a variant at all. You’re just giving a product its normal gallery, then grouping the products so they behave like one listing.

The SEO side is underrated. Separate products mean a unique URL per color, a unique title, a unique meta description, and unique alt text. A shopper searching for “olive green field jacket” can land directly on the olive page instead of a generic product that shows blue by default. We wrote a longer breakdown on separate products versus variants for SEO if you want the ranking argument in full, and on what combined listings actually are under the hood.

There’s a real merchant voice on this exact pattern, so here it is unedited.

“I was struggling with separate product pages for different colors/flavors (e.g., aftershave red, green, blue as individual products for better SEO and unique URLs), but I wanted customers to see swatches and switch between them easily, like real variants, on BOTH the product page and collection pages (under each card). This app does it perfectly: Group products into combined listings, Add customizable color/image swatches, […] No extra fees, no add-ons in cart, no performance hit (site still loads fast). Setup was straightforward, no coding needed, and the support is insane […]”

Ostwint, Romania, 2026-03-02. Rubik Combined Listings on the Shopify App Store

That “no extra fees, no add-ons in cart” bit matters more than it reads. Some grouping methods bolt a second widget into the cart or slow the page down. We built RCL to be metafield-based with no external API calls, so the swatches load with the page and nothing gets injected into checkout. Want to sketch your groups before you build them? Our free grouping planner maps which products belong in which listing.

Set up a combined listing

Setting up a combined listing takes three moves: link the products, pick a swatch type, then style it. Rubik Combined Listings runs all three from the Shopify admin with a live preview, so you see the result before it ships. No theme code required for the common path.

Group products as variants with swatches in a combined listing

Linking the products is the part people overthink. You have three routes:

  1. Manual grouping. Use the resource picker to select the products that belong together. Best for a handful of listings you want full control over.
  2. Bulk grouping. Group automatically by a title pattern, by product tags (like RUBIK::Group), or by a metafield. Best when you have hundreds of products that already follow a naming convention.
  3. AI Magic Fill. Fills in empty option values and swatch colors for you, so you’re not hand-typing “Forest Green” and a hex code for every card.

Then pick how the swatch looks. RCL ships four swatch types: image (a real photo of the color), button, pill, and dropdown. There are 19 built-in style presets and over 100 CSS variables under the hood, plus an AI Visual Assistant that restyles swatches from a plain-language request (you type “make the swatches round with a thin border”, it does it). Everything renders inside Shadow DOM, so the styling stays isolated from your theme’s CSS and won’t collide with it. We tested that isolation across 350+ themes because theme conflicts were the number one thing breaking early swatch apps, and it’s the single most common support question we still get.

A few more practical notes from building this. Out-of-stock states sync in real time through metaobject references, so a sold-out color greys out on the swatch instead of leading to a dead end (we cover the full behavior in out-of-stock handling for combined listings). Multilingual stores get Translate & Adapt integration. And no, you do not need Shopify Plus for any of this, which we spell out in combined listings without Plus. If you want to see grouped products behaving like variants first, our group products as variants guide is the hands-on version.

Show only the selected color’s images on the product page

Here’s the honest boundary. Rubik Combined Listings does not filter multiple images per variant on a single product’s page. That’s a different job, and it belongs to a different app. If your setup is one product with a Color option and you want the gallery to show only the selected variant’s images (display images specific to the selected variant, hide the rest), you want Rubik Variant Images. It assigns multiple images (plus videos and 3D models) to each variant and filters the product-page gallery so only the chosen option’s media shows.

Does that mean you sometimes need both? Yes, and the combination is genuinely nice. Run a combined listing so each color is its own product with a full gallery, then run RVI on top so that when a color has sub-options (say each color also comes in patterns), the gallery filters down to just the selected one. Combined listings handle the “separate products, unique URLs, collection swatches” layer. RVI handles the “show only these images on this page” layer. Clean split, no overlap.

RVI’s assignment is worth understanding because people mix it up. There’s manual drag-and-drop assign, there’s AI auto-assign (per product, one product at a time, it reads the product and variant names, image filenames, and alt text to match photos to variants), and there’s bulk assign (image-order based, it reads your Shopify gallery order and featured-image boundaries to group across hundreds of products in the background, no AI). If you’re curious how the automated route works, we detail it in the AI auto-assign writeup. For the “should these even be variants” question, our separate vs variants checker gives you a fast read.

Collection page swatches

Collection page swatches let shoppers switch color right on the product card, before they ever click through, and this is where combined listings really pull ahead. Because your colors are separate products grouped into one listing, RCL can render a swatch row under each card on collection, search, and home pages. Click a swatch and the card swaps to that color’s product. No detour to the product page just to see if navy exists.

This is the piece a single product with variants can’t really do across separate products, and it’s the reason the merchant quoted above went with grouping. We kept it fast on purpose: metafield-based, no external calls, so a collection page with dozens of swatch rows doesn’t crawl. Want to preview how a color pair reads before you commit? Try the two-color preview or the swatch simulator to test styles. And if you’re deciding which collections deserve swatches first, our collection swatch display guide covers layout and placement in depth.

One quick reminder on scope. Collection swatches across separate products are an RCL feature. Product-card swatches for a single product’s own variants can also come from RVI. Different starting points, both valid. If your store mixes grouped listings and standalone multi-variant products, you might run both, and that’s fine. For the general Shopify take on all of this, Craftshift’s multiple images per variant guide is a solid neutral reference.

Pricing, since people ask right here. RCL is flat, not tied to your Shopify plan: Free at $0/month for 5 groups, Starter at $10/month for 100, Advanced at $30/month for 500, Premium at $50/month for 5,000. Annual billing knocks off 17 percent. You can build a real store on the free tier and only pay once you scale past five groups.

See the live demo store, watch the tutorial video, or read the getting started guide.

FAQ

Can a Shopify combined listing show multiple images per variant?

Yes, and cleaner than a single product can. In a combined listing each color is a separate product with its own full gallery, so every color shows as many images as you want. There’s no one image per variant limit, because you’re grouping products rather than assigning photos to variants inside one product.

What is the difference between Rubik Combined Listings and Rubik Variant Images?

Rubik Combined Listings links separate products into one listing and adds swatches on collection and grouped product pages. Rubik Variant Images works inside a single product page to assign multiple images to each variant and filter the gallery so only the selected variant’s media shows. Many stores run both together.

Do I need Shopify Plus to use combined listings?

No. Rubik Combined Listings works on standard Shopify plans, not just Plus. You link separate products into a grouped listing and add swatches without any Plus-only feature. The free tier covers 5 groups, which is enough to test the pattern on a real store before you scale up.

How do I show only the selected color’s images on the product page?

That’s the job of Rubik Variant Images. It filters the product-page gallery so only the chosen variant’s photos, videos, and 3D models appear, and hides the rest. Combined listings already separate colors into their own pages, so RVI is for filtering media within a single product that still has options.

Will swatches slow down my collection pages?

They shouldn’t. Rubik Combined Listings is metafield-based with no external API calls, so swatch data loads with the page rather than fetching from a remote server. Rendering runs inside Shadow DOM, which isolates the CSS from your theme and avoids the layout conflicts that used to cause slow, janky swatch rows.

How do I group hundreds of products at once?

Use bulk grouping. Rubik Combined Listings can group products automatically by a title pattern, by product tags like RUBIK::Group, or by a metafield. AI Magic Fill then fills empty option values and swatch colors so you don’t hand-type each one. For a small catalog, manual grouping through the resource picker is faster.

Does each color keep its own URL and SEO?

Yes. Because a combined listing groups separate products, every color keeps its own product URL, title, meta description, and alt text. A shopper searching for a specific color can land directly on that color’s page, and each page can rank on its own instead of one shared page representing all colors.

So which route is right for you? If your colors deserve real galleries and their own search presence, build the combined listing and stop fighting the variant model. If you’re on one product and just need the gallery to filter, reach for RVI. Most stores that sell anything visual end up wanting both, and honestly, that’s the setup we’d build ourselves.