
On Shopify, giving each color its own image gallery is really a catalog-structure decision you make before uploading a single photo. Do all the colors live on one product with one shared gallery? Or does every color get its own product, its own clean set of photos, and its own URL, tied together by swatches so shoppers can jump between them? Those two answers lead to very different listings, very different SEO, and very different galleries.
Say you sell a hoodie in eight colors. Structure it one way and the product page turns into a wall of thirty-plus photos where black, olive, and burgundy shots all sit in the same strip. Structure it the other way and each color shows only its own images, while a neat row of swatches keeps everything shopping as one product.
This post walks through both architectures, then shows how to link separate color products into one combined listing so the split doesn’t cost you the shopping experience. We build Rubik Combined Listings for exactly this problem, so I’ll be honest about where each approach wins.
In this post
- The crowded-gallery problem
- Option A: variants on one product
- Option B: separate products, so each color gets its own image gallery
- How to link color products with swatches
- Do you also need product-page image filtering?
- FAQ
- Related reading
The crowded-gallery problem
Here is what a crowded gallery actually looks like. One product, eight colors, four photos each. That’s thirty-two images stacked into a single strip. A shopper who wants the burgundy hoodie has to scroll past black, navy, olive, and grey shots to find the ones that match the color they picked. Confusing, right?
Shopify’s native variant selector doesn’t filter the gallery on its own. Pick a color and, unless the theme (or an app) steps in, the full pile stays visible. Some themes swap only the featured image. The rest of the gallery? Still every color, all at once. And that’s the part that quietly hurts conversion: people lose confidence when the photos don’t obviously belong to the choice they just made.
There’s a second cost that’s easy to miss. One product means one URL. Your burgundy hoodie and your olive hoodie share the same page, the same title, the same meta description. If shoppers actually search for “burgundy hoodie” or “olive fleece,” you have no page built to rank for either. Everything funnels into a single generic listing. For a lot of catalogs that’s fine. For color-led products it’s a real miss.
Option A: variants on one product
The default Shopify build is one product with color as an option. Add “Color” with eight values, one product page, one gallery, one URL. Inventory is easy to read, the checkout logic is dead simple, and there’s nothing to link because it’s already a single product.
Where does it fall down? Two places. The gallery gets crowded unless something filters it per selected color, and you get exactly one URL for the whole color range. There’s also a hard ceiling: Shopify allows up to 250 media per product, so a high-variant product with several photos per color can bump into that limit faster than you’d expect. We wrote more about the practical side of that in our guide to the one image per variant limit.
| Factor | Option A: one product, color variants |
|---|---|
| Gallery | All colors in one strip unless you filter it |
| URLs | One shared URL for every color |
| Per-color SEO | None; one title and meta for all colors |
| Setup effort | Low; it’s the native default |
| Media ceiling | 250 media across all colors combined |
My honest opinion: Option A is the right call when color is a minor attribute nobody searches for by name. A phone case in five accent colors, a notebook in three cover shades. Nobody’s Googling “teal notebook cover” with intent to buy. Keep it one product, and if the gallery feels busy, filter it (more on that below). But when each color is a genuine product people hunt for, one shared URL leaves money on the table.
Option B: separate products, so each color gets its own image gallery
The second architecture flips the model. Every color becomes its own standalone product: “Burgundy Hoodie,” “Olive Hoodie,” “Navy Hoodie,” each with a clean gallery holding only that color’s photos, each with its own URL, title, and meta description. Then you link them into one combined listing so a swatch row appears on the product page and on collection cards, letting shoppers switch colors like they were variants all along.
Now every gallery is tidy. Open the burgundy product and you see burgundy, full stop. No scrolling past four other colors. Each product also carries real SEO weight: a page that can rank for “burgundy hoodie,” another for “olive hoodie,” each with its own indexable image gallery. That’s the whole argument for this structure, and it’s why we lean into it for color-led catalogs. We dug into the ranking side in our breakdown of separate products versus variants for SEO.
Does this create duplicate content? Not if you write each product like its own thing. Different titles, different first lines, different alt text, and images that genuinely differ because the color differs. Search engines see distinct pages with distinct media. For a fuller picture of how the grouped model behaves, our post on combined listings explained covers the mechanics end to end.
| Factor | Option B: separate products, one combined listing |
|---|---|
| Gallery | Clean; each color shows only its own photos |
| URLs | One dedicated URL per color |
| Per-color SEO | Strong; each color can rank on its own |
| Setup effort | Higher, but grouping automates most of it |
| Media ceiling | 250 media per color, not shared |
One more upside people forget: the 250-media ceiling now applies per color, not across the whole range. Eight colors means eight separate media budgets. For photography-heavy stores (think apparel with front, back, detail, and on-model shots per color), that headroom matters. Want to sketch which colors should group together before you build? Our grouping planner tool lays it out fast.
How to link color products with swatches
Separate products only work as a listing if shoppers can move between them without hitting the back button. That’s the job Rubik Combined Listings does: it links standalone color products into one group and renders swatches on the grouped product page and on collection-page product cards. Click a swatch, land on that color’s clean gallery. No custom theme code.

Group the products
Three grouping methods cover almost every catalog:
- Manual. Use the resource picker to hand-select the color products that belong to one item. Best for small ranges or one-off groups.
- Bulk grouping. Group at scale by title pattern, by product tags (like RUBIK::Group), or by a metafield. We added this after watching people try to group hundreds of products by hand, which is nobody’s idea of a good afternoon.
- AI Magic Fill. Fills empty option values and swatch colors for you, so you’re not typing hex codes one product at a time.
Prefer to think of the whole thing as variants? Our walkthrough on how to group products as variants covers the mental model, and if you’re on a smaller plan, combined listings without Shopify Plus shows it works fine there too.
Style the swatches
Four swatch types ship in the box: image (visual color chips), button, pill, and dropdown. There are 19 built-in style presets and 100+ CSS variables, with a live admin preview so you see changes before you save. Rather describe what you want in plain English? The AI Visual Assistant takes natural-language styling requests. When we tested swatch rendering across 350+ themes, keeping the styles isolated mattered, which is why swatches render inside a Shadow DOM so the theme’s CSS can’t fight them.
Want to preview a look without installing anything first? Our free swatch simulator lets you try styles in the browser, and the two-color preview tool is handy for checking a quick pairing.
Show swatches in both places
Swatches belong in two spots, and the app handles both. On collection, search, and home pages, product cards get a swatch row so shoppers switch color before they even click in. On the grouped product page, the swatch row sits with the buy button. Our collection page swatch display guide goes deeper on the card side, which is where a lot of the browsing actually happens.
Stock stays honest too. Real-time out-of-stock sync runs through metaobject references, so when a color sells out the swatch reflects it without a manual refresh. This is one of the most common support questions we get (“will the swatch know when a color is gone?”), and yes, it does. We wrote up the details in out-of-stock handling for combined listings. Selling in more than one language? Translate & Adapt integration carries labels across your storefronts.
“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
On speed: swatches are metafield-based with no external API calls, so they don’t drag the page. Pricing is flat, not tied to your Shopify plan. Free is $0/month for 5 groups, Starter is $10/month for 100 groups, Advanced is $30/month for 500 groups, and Premium is $50/month for 5,000 groups. Annual billing saves 17%. The app is “Built for Shopify” certified, rated 5.0, and works across 350+ themes plus seven page builders (Beae, EComposer, Foxify, GemPages, Instant, PageFly, and Replo). Not sure how many groups you’ll need? The collection analyzer and separate vs variants tools help you scope it.
Do you also need product-page image filtering?
Here’s the clean line between two jobs. Combined Listings links separate color products and puts swatches on cards and grouped pages. It does not filter multiple images inside a single product’s gallery. If you decide to keep Option A (one product, color as a variant), and you want that shared gallery to show only the selected color’s photos, that’s a different tool: Rubik Variant Images.
RVI assigns multiple images to each variant and filters the product-page gallery so only the picked variant’s media shows. You can assign by drag-and-drop, by AI auto-assign (per product, reading names, filenames, and alt text), or by bulk assign that reads the Shopify gallery order in the background. If that’s your route, the RVI FAQ answers the common setup questions.
And the two apps stack nicely. A common setup: each color is a separate product with its own gallery (grouped by RCL), while RVI filters images within a product that still has other options, like size or a print pattern. If you’re weighing which mix fits, the Craftshift write-up on showing multiple images per variant lays out the combinations. Neither app touches Shopify Markets, so plan translations through Translate & Adapt as noted above.
See the live demo store, watch the tutorial video, or read the getting started guide.
FAQ
Can each color have its own image gallery on Shopify?
Yes. Make each color a separate product with its own clean gallery and URL, then link those products into one combined listing with swatches. Shoppers click a swatch to switch colors, and every product page shows only that color’s photos instead of one crowded, mixed strip.
Should I use one product with color variants or separate products per color?
Use one product when color is minor and nobody searches for it by name. Use separate products when each color has real search value, because you get a dedicated URL, title, and clean gallery per color. Swatches keep the separate products shopping as one item.
How do swatches connect separate color products into one listing?
Rubik Combined Listings groups the products and renders a swatch row on the grouped product page and on collection-page product cards. Choose image, button, pill, or dropdown swatches. Clicking one loads that color’s own product, so buyers move between colors without ever leaving the listing experience.
Will separate color products hurt my SEO with duplicate content?
Not if each product is genuinely distinct. Give every color its own title, opening copy, alt text, and photos that differ because the color differs. Search engines then see unique pages with unique galleries, and each color can rank for its own terms instead of funneling into one shared listing.
Do combined listings slow down my store?
No. The swatches are metafield-based with no external API calls, so they load with the page rather than waiting on a third-party server. Rubik Combined Listings is “Built for Shopify” certified, and out-of-stock states sync in real time through metaobject references without a manual refresh.
What if I want to keep one product but filter images per variant?
Then you want Rubik Variant Images, not Combined Listings. RVI assigns multiple images to each variant and filters the product-page gallery so only the selected variant’s media shows. The two apps also work together: separate color products via RCL, per-option image filtering via RVI.
How many color products can I group for free?
The free plan covers 5 groups at $0/month. Paid plans are flat: Starter $10/month for 100 groups, Advanced $30/month for 500 groups, and Premium $50/month for 5,000 groups. Annual billing saves 17%. Pricing is not tied to your Shopify plan, so costs stay predictable as you grow.