How do I tell if a product from an old import is already in my store before I add it again?
Before you re-run an import or manually re-key a product, here's how to actually confirm whether it already exists in your catalog, and how Shopify's own CSV importer decides to update versus duplicate.
What's going on
You ran an import a while back, maybe through a migration app, a CSV upload, or a supplier feed, and now you're staring at a product you're not sure you already added. Do you create it again and risk a duplicate listing, or skip it and risk a gap in your catalog? Multiplied across dozens or hundreds of SKUs, this becomes a real time sink, especially when product titles get reformatted slightly during import (extra whitespace, different capitalization, a supplier prefix added or dropped), so a simple visual scan of the product list doesn't reliably catch matches.
This is especially common right after a bulk migration from another platform, when an import ran partially, failed midway, or was re-run after being fixed and nobody kept a clear record of exactly what made it in. Without a definitive answer, merchants either end up with duplicate product listings (which hurts SEO, confuses customers, and pollutes inventory reports) or, more cautiously, skip re-adding items that were never actually there in the first place, leaving quiet gaps in the catalog.
Why it happens
Shopify doesn't surface an explicit already-imported flag anywhere in the admin; there's no field on a product that records which import run created it or when. The only durable, unique identifiers you have to check against are the product handle (the URL slug) and each variant's SKU, and neither is displayed prominently in the product list view, so confirming a match means actively searching or exporting rather than just looking.
It's made worse by the fact that import behavior isn't uniform. Shopify's own native CSV importer matches rows to existing products by the Handle column and updates in place on a match, but third-party import and migration apps often use their own matching logic, frequently keyed on SKU instead, and that logic, along with whether a given run fully completed, usually isn't visible to the merchant unless they specifically go looking at the app's run history or logs.
4 ways to fix it
Search the products list by SKU or handle before you do anything else
Open Products in the Shopify admin and search using the exact SKU or the product title rather than scrolling and eyeballing the list. The product search matches variant SKUs as well as titles, including Shopify's sku: search operator, so a specific SKU will surface an existing product even if the title was reformatted slightly during import. This takes well under a minute and is the fastest way to rule out a duplicate before you create anything new.
If you're not sure the import ran, it's usually safe to just re-run the same file
Shopify's native product CSV importer matches incoming rows to existing products using the Handle column: when a row's handle matches a product already in the store, that product gets updated in place rather than duplicated. Only rows with no matching handle create new products. So if you suspect an import already happened but can't confirm it, re-importing the identical file is usually safe rather than destructive. This doesn't apply to every third-party import or migration app, though - many use their own matching logic, often keyed on SKU instead of handle - so check that app's documentation for how it decides between updating and creating before relying on this.
Export your current catalog and compare it against the import file offline
From Products, use Export to download a CSV of everything currently in the store, including handles and variant SKUs. Open it next to the file you're about to import and match rows by SKU, which is more reliable than matching by handle since handles can collide and get auto-suffixed. This is slower than a single admin search, but it's the only practical way to check hundreds of rows at once instead of one product at a time.
Check your import app's run history before you audit anything manually
If you used a bulk-import or migration app rather than Shopify's built-in CSV import, check that app's run history first. Most of these apps log each run and show how many products were created, updated, or skipped as duplicates, and some let you search that log by SKU or handle directly. Confirming there against a past run is usually faster than manually searching or exporting the catalog yourself.
Bottom line
There's no single button in Shopify that tells you whether a product was already imported, but searching the admin by SKU or handle, exporting the catalog for an offline comparison, and checking your import tool's own run log will answer the question in a few minutes for most catalogs. If you're importing regularly from multiple sources and keep hitting this same uncertainty, a lightweight duplicate-detection or catalog-reconciliation habit (or app) can save the recurring manual comparison - but for a one-off import, the free options above are enough on their own.
Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.