Shopify said "Import Successful" — but your products never showed up
You uploaded your CSV, Shopify flashed a green success message, and then you went to your products page and found nothing there. Your product count is exactly the same as before. This is one of the most disorienting Shopify import behaviors because the platform is technically telling you the truth — the process completed — while hiding the fact that it rejected everything.
How to check your file and get it working
The quickest way to find the problem without manually auditing the Comma-Separated Values (CSV) file is to upload your file to the free Shopify product import converter. It checks the Handle column, the column names, the delimiter, and the required fields for every row. Instead of a silent rejection, you get a plain-language report: which rows have blank Handles, which column names it recognized and which it didn't, and what it fixed automatically. The converter hands you back a file you can upload straight to Shopify.
If you want to check it yourself first: open the raw file in a plain text editor and look at the first row. You should see column names separated by commas, and "Handle" should be one of them. If the separator isn't a comma, or "Handle" isn't there, you've found the problem.
First: confirm this is what actually happened
Before troubleshooting, make sure you're looking in the right place. In Shopify admin, go to Products and note the total count. If it's the same as before your import, your products weren't added. It's also worth checking Products → Drafts — sometimes products are added but hidden from customers because of how the Published column was set. If they're in Drafts, that's a different problem (see: products imported as drafts).
If the count didn't move at all and there's nothing in Drafts either, then yes — Shopify processed the file and silently discarded every row.
Why this happens: what Shopify actually checks
Shopify's import reads each row and tries to match it to a product. For a row to result in a product being created, it needs to pass several checks. When one fails, the row is silently dropped — no error, no count — and the success message fires at the end anyway. Here are the most common reasons every row gets dropped:
1. The Handle column is blank. The Handle is Shopify's internal ID for a product — a short slug like blue-canvas-tote. If the Handle is blank, Shopify doesn't know where to put the row, so it skips it. This happens a lot when someone copies their product data into a blank spreadsheet without realizing the Handle column needs to be filled in, not just the visible product information.
2. The column names are wrong. Shopify matches columns by their exact name, including capitalization. If your spreadsheet calls a column product name instead of Title, Shopify doesn't map it — it treats the Title as blank and then rejects the row because Title can't be blank. The same goes for any required column. Your data might all be there, just under the wrong heading.
3. The file isn't formatted as Shopify expects. If you exported from a tool that uses tabs or semicolons to separate columns, Shopify reads each row as a single blob of text with no columns at all — and rejects it. The success message still fires.
Did Shopify add some products but not others? Check variants or sizes missing after import — partial drops often come from variant row issues rather than the file format.