The fastest, safest way to combine duplicate products in Shopify in 2026 is to consolidate them into a single native product with real variants, then 301 redirect the old URLs. That path works everywhere Shopify works: Online Store, POS, Shop app, analytics, Flow, ERPs, fulfilment apps and Google Shopping. Every other method (manual editing, CSV re-imports, Flow automations, storefront-only "grouping" apps, Shopify's own Combined Listings) trades off one or more of those surfaces.
Shopify has no built-in "Merge products" button. That gap has produced a cottage industry of workarounds, and most of them quietly break in POS or in analytics. Winter Editions 26 changed the calculus: Shopify now supports 2,048 variants per product (up from 100), so consolidating many duplicates onto one canonical product is finally practical at scale.
This guide ranks every method against a single question: does the resulting product behave like a normal Shopify product in every channel? If the answer is no, you have not merged, you have layered a display trick on top of the mess.
What "combining products" actually means in Shopify
Merchants use the word combine to describe four different jobs. Getting the job right is half the battle.
The first job is true consolidation: you have the same red and blue t-shirt sitting as two separate products, and you want one product with a colour option. The second is display grouping: you want to keep the two products as separate records but show them side by side on the product page as swatches. The third is bundling: you want to sell two genuinely different products together as a kit. The fourth is deduplication: you want to detect duplicates and delete the extras.
Only the first job fixes the data model. The rest either mask the problem (display grouping), solve a different problem (bundling) or remove information (deletion). The rest of this article focuses on true consolidation because that is the method with the longest half-life and the fewest hidden costs.
The six methods, ranked
1. Native variant consolidation with a purpose-built app (recommended)
A purpose-built merge app such as Merges reads your catalogue, groups duplicates using AI, and rewrites the result as one Shopify product with real variants. The outcome is a standard productSet write. There is no Liquid injection, no metafield hack, no parent-child shell. POS sees one product. Analytics sees one product. Business Central, NetSuite and Cin7 Core all resolve it by SKU without complaint.
This is the only category that produces a result indistinguishable from a product you built correctly on day one. The practical cost is the subscription (free tier plus paid plans from $19 per month) and the time it takes to review AI-suggested merges before accepting them. The benefit is that everything downstream of the product record, including Google Shopping feeds, Judge.me reviews on groups, Shopify Flow triggers and POS barcodes, inherits the consolidation for free.
Pick this method when you have more than a handful of duplicates, when you sell in-store via POS, or when an ERP or 3PL pulls from your Shopify catalogue.
2. Manual editing in the Shopify admin
The zero-cost option. Open the "winner" product, add the missing options (Size, Colour), create the variants by hand, reassign images, update inventory, then delete the duplicate and create a 301 redirect under Content → Menus → URL redirects.
This works for two or three duplicates. It breaks down fast. Each product you touch is ten to fifteen clicks: options, variants, SKUs, barcodes, prices, compare-at prices, images, alt text, weights, fulfilment services, metafields, redirects. Miss the redirect step and you burn the backlinks.
Pick this method when you have under ten duplicate groups and no POS. Skip it if you track inventory by barcode, because reassigning barcodes manually across hundreds of variants is where mistakes compound.
3. CSV export, edit, re-import
Export your products to CSV, hand-stitch rows under a single handle, set Option1/Option2/Option3 columns, re-import with "Overwrite products with matching handles" checked, then delete losers and create redirects.
The CSV route scales further than manual editing but carries sharp edges. Shopify matches rows by handle, not by SKU, so if the handle drifts by a single character you create a third duplicate rather than updating. Blank cells with overwrite enabled will wipe descriptions, tags and SEO fields. Images re-download into /files/ and /products/ simultaneously. Variant options silently drop if the Option1 Name column is missing on a subsequent row. Inventory counts can reset if you touch the product CSV instead of the separate inventory CSV.
Pick this method when you are a spreadsheet power user, your duplicates share perfectly consistent handles, and you have a staging store to test on first.
4. Shopify Flow
Flow is beautiful for automation and useless for merging. A Shopify community expert put it bluntly: "Flow is for automating processes that are already possible. Since there is no existing function for merging products, it isn't something you could set up."
What Flow can do is the plumbing around a merge: tag potential duplicates, archive losers, delete products after a manual consolidation, auto-create a redirect on product delete, or fire a productSet via the "Send Admin API request" action. The last option lets developers script true merges in Flow, but you are writing the merge logic yourself.
Pick Flow as a helper, not as the merge tool.
5. Storefront-only "display grouping" apps
This is the largest category of apps marketed as "merge" or "combined listings" on the App Store. LinkedOption, SA Variants, Grouptify, groupmate, Pasilobus, BrandUp, Productify Groups and others all take the same architectural approach: keep the products separate in the database, then inject swatches on the product and collection pages using Liquid or JavaScript.
The visual effect is convincing. A shopper sees one product page with colour swatches. A merchant sees a clean front end. The data, though, is unchanged. Which means:
- POS still shows every duplicate as an independent product. Staff at the till scan a barcode and pick one SKU out of many, at whatever price that specific product record happens to carry.
- Shopify analytics tracks each child separately. Bestseller reports fragment across two or five product IDs.
- Search & Discovery filters often fail to surface child products under the parent's options.
- Inventory, fulfilment and every third-party app see the underlying duplicate catalogue and sync accordingly.
- Ad platforms read the feed at the product record level, so Google Merchant Center still flags duplicate identifiers.
Pick storefront-only grouping only when you have no POS, no B2B, no ERP, no 3PL, and you genuinely just need a cosmetic fix.
6. Shopify's first-party Combined Listings app
Shopify's own solution, launched June 2024 and available only on Plus and enterprise plans, sits one step above third-party grouping apps. It creates a parent product that is not purchasable, then links child products through a shared option. Children keep their own URLs, images and descriptions, which is great for SEO.
The limitations are the reason the app sits at 3.3 stars across 29 reviews. From Shopify's own documentation: "Combined listings can't be sold through Shopify Point of Sale (POS), other third party sales channels, or with subscriptions." They cannot be bundles, cannot nest, and Search & Discovery filters drop child products when you filter by the parent option. Sales are tracked per child, not on the parent.
Pick Combined Listings when you are on Plus, sell only through the Online Store, and want dedicated landing pages per colour or model for SEO reasons.
The decision framework
If you sell through Shopify POS, you need native variants. Full stop. POS does not execute Liquid and does not resolve parent-child relationships, so anything short of a real product with real variants fragments at the till.
If you run an ERP or 3PL integration, you need native variants. Business Central, NetSuite, Cin7 Core, Brightpearl and Unleashed all resolve by SKU at the variant level and every single one of them has documented problems with duplicate SKUs across separate product records.
If you care about Google Shopping and Meta feeds, you need native variants. Duplicate identifiers get disapproved. Cumulative disapprovals cascade to account suspension.
If you are on Plus, sell only online, and want per-colour landing pages with unique SEO metadata, Combined Listings is a real option.
If you have three or four duplicates and no POS, manual editing works. CSV works for consistent handles with a power user at the keyboard. Flow is never the answer on its own.
For everything else, a native merge app is the right answer. That is what Merges exists for, and it remains the only app on the Shopify App Store that produces a real native product as output, end to end.
Edge cases that catch people out
The 2,048 variant limit vs the 250 media limit. Winter Editions 26 raised variants to 2,048 but left the media cap at 250. If you are merging sixty colours with four images each, you blow the cap. Plan image consolidation before you merge. Many merchants cut to one image per variant plus ten shared lifestyle shots.
The three-option ceiling. Shopify still caps at three variant options (size, colour, material). If your "duplicates" are actually four-dimensional (size, colour, material, print), you either collapse two dimensions into one composite option or split into two products. The 2,048 variant increase did not lift the option count.
Multi-location inventory. When you merge, inventory at every location must be set on the winning variant, not left on the dying product. The productSet mutation with ProductSetInventoryInput handles this, which is what Merges uses under the hood. CSV imports do not set inventory reliably (use the inventory CSV separately).
Shopify Markets. The good news: Markets no longer creates duplicate products. One product with catalogs and price lists serves every region. If your duplicates came from running separate country stores years ago, Markets is the target state, and merging is the migration path.
B2B. B2B catalogs reference the same product records as DTC. Merging duplicates on the DTC side cleans up B2B automatically, as long as company-location catalogs were assigned to products rather than hard-coded to product IDs.
Fulfilment apps. Apps like ShipStation, ShipHero and Shopify's own Fulfillment Service integrations pick by SKU. Merging consolidates the picking surface, which is the whole point. Storefront-only grouping does nothing for fulfilment.
SEO preservation. Shopify auto-creates a redirect when you change a handle (if you leave the checkbox ticked). It does not auto-create a redirect when you delete a product. Every merge workflow must include an explicit redirect step.
Reviews. Shopify Product Reviews was delisted in September 2023. Judge.me, Loox and Yotpo store reviews against the Shopify product ID. When you delete a duplicate, the reviews on that product ID orphan unless you migrate them. Judge.me and Loox now use Product Groups to share a review pool across related products. Merges pulls reviews into the merged product via the Judge.me API during the merge itself.
What changed in 2026
Winter Editions 26 (the "RenAIssance" edition) reframed the consolidation conversation. Shopify's own blog put it plainly: with 2,048 variants per product, merchants can now "consolidate all product variants onto a single page and concentrate SEO, ad spend and social marketing on one canonical URL." That is the official blessing of the consolidation pattern.
The new product APIs (productSet, productOptionsCreate, productVariantsBulkCreate, combinedListingUpdate) landed in the 2024-04 stable release and are now mature. REST /products.json is deprecated for high-variant workflows. Dawn theme 15.0.0 and Horizon render 2,048-variant products correctly; older themes cap at 250. If your theme is pre-15, plan a theme upgrade before you merge.
Shopify Flow gained workflow previews and the ability to cancel runs in Winter 26, but the Merge action still does not exist.
The recommendation
For stores with fewer than ten duplicate groups and no POS, manual editing is free and sufficient. For stores on Plus that want dedicated per-colour landing pages and do not use POS, Combined Listings is acceptable. For everyone else (roughly 95% of Shopify stores with duplicates) a native merge app is the honest answer.
Merges builds native variant products, preserves SKUs and barcodes, creates 301 redirects automatically, consolidates images, works with POS from the first merge, and carries the Built for Shopify badge with a 4.9 star rating.
Frequently asked questions
No. Shopify does not have a Merge products button anywhere in the admin. The closest native feature is Combined Listings, an app released in June 2024 for Plus and enterprise stores only, which groups separate products under a non-purchasable parent. Combined Listings does not consolidate data and is not sold through POS.
Yes, if you redirect every loser URL to the winner with a 301. Shopify supports 301 redirects natively under Content → Menus → URL redirects, including bulk CSV import. Google confirms 301 redirects pass full PageRank. Signals typically consolidate within two to four weeks. Keep redirects live for at least one year.
It depends on the review app. Judge.me and Loox use Product Groups to share a review pool across merged products. Yotpo offers a similar grouping feature. Shopify's deprecated Product Reviews app stored reviews against product ID, which means reviews on a deleted duplicate orphan unless migrated. Merges integrates with Judge.me to pull ratings and review content onto the merged product during the merge itself.
A native merge will not break POS. It actually fixes POS. What breaks POS is the opposite, leaving duplicates in place and masking them with a storefront-only grouping app. POS cannot see Liquid-level groupings and treats every underlying product as an independent SKU. Shopify's own Combined Listings app is explicitly incompatible with POS.
Not automatically. Once two products are merged into one, the database change is committed. Best practice is to back up your catalogue (Shopify's built-in bulk export, Matrixify, or Rewind) before any merge operation. If you merge with Merges and realise a grouping was wrong, you can re-split by creating new products from the original data, but there is no one-click rollback in any current tool.
Inventory must move from the dying products to the winning variant at every location. The Shopify API handles this via ProductSetInventoryInput in the productSet mutation. Manual and CSV methods require a separate inventory CSV import. Never try to set inventory through the product CSV alone, because it reliably resets counts on unrelated edits. Dedicated merge apps handle inventory transfer atomically.
Shopify Markets uses one product with per-market catalogs and price lists, not duplicate products. Merging helps if your duplicates came from the older expansion-store-per-country model. Once merged, assign the single product to the relevant markets with localised pricing. Markets does not create new duplicates in the current architecture.
A clean native merge does not require updating most apps. Apps that key off product ID (Judge.me, Loox, Yotpo, some ERPs) will see the new merged product ID and may need a re-sync or a one-time migration. Apps that key off SKU or barcode (Business Central, NetSuite, Cin7 Core, ShipStation, ShipHero) keep working as long as SKUs and barcodes are preserved on the merged variants, which every serious merge tool does by default.
You can consolidate via CSV by re-importing rows under a single handle with Option1/Option2/Option3 columns filled in, but it is not a merge operation, it is a rewrite. You will still need to manually create 301 redirects for the retired handles, manually reassign reviews, and carefully avoid blank-overwrite traps. For more than ten or twenty duplicates, an app is faster and safer.
Google typically consolidates most ranking signals within two to four weeks after a 301 redirect. Full reassessment of external backlinks can take months. Keep redirects live for at least one year, per John Mueller's guidance. Monitor Search Console's Pages report for Page with redirect status on the old URLs and normal Indexed status on the new one.
No. Flow's product actions include create, update, delete, archive, tag, and redirect creation, but no merge. The Send Admin API request action can call productSet or combinedListingUpdate directly, which lets developers build custom merge logic in Flow, but you are writing the consolidation rules yourself.
As of Winter Editions 26, Shopify supports 2,048 variants per product across up to three options. Media stays capped at 250 files per product, which is the real ceiling when merging many colour variants with multiple images each.
