Products imported as drafts — hidden from store after upload
The import said it worked, and technically it did — the products exist in your Shopify admin. They just aren't visible anywhere on your actual storefront. That's almost always the Published or Status column in your CSV, not a real import failure. Drop your file in below and the free checker will flag every row that's set to land as a hidden draft before you upload it.
What you'll see
The import finishes with no error. The products show up in your Shopify admin product list, and if you open one it looks basically fine. But your storefront doesn't show it, it's excluded from collections and search, and customers can't find it by browsing. Open the product in the admin and look near the top: it'll say Draft instead of Active.
The root cause: the Published and Status columns
Shopify's products CSV controls storefront visibility through one of two columns depending on the export format. Older-style exports use a Published column holding TRUE or FALSE. Newer exports use a Status column holding active, draft, or archived. If that column is blank, explicitly set to FALSE or draft, or — importantly — simply left out of your CSV entirely, Shopify treats new products as unpublished by default. The import doesn't fail or warn you; it just creates a correctly-formed product that happens to be a draft.
A spreadsheet wrinkle worth checking
Boolean-looking columns don't always survive a spreadsheet round-trip cleanly. A column with a mix of TRUE, True, true, or blank cells across different rows — common after copying data from multiple sources or exports — doesn't reliably get read as the same value by Shopify's importer every time. If some rows published correctly and others didn't, inconsistent capitalization or stray blanks in that column is a likely culprit worth checking before you blame anything else.
A second wrinkle: sales channels
Even after a product's Status is correctly set to Active, Shopify tracks availability separately per sales channel — Online Store, POS, and any others you have connected. A bulk product import does not automatically add newly created products to every sales channel; a product can be fully "Active" and still be missing from the Online Store channel specifically, which produces the exact same symptom of an active-looking product that customers can't find.
How to check and fix it
Before importing, confirm every row has the Published or Status column set the way you intend — use the checker above to catch blank or draft-valued rows across the whole file at once. After any import, go to Admin → Products and filter by Draft to see everything that landed there, whether from this cause or something else. Bulk-select and publish the ones that should be live, then double-check the Online Store channel is enabled for that batch of products.