The diagnostic order for Catalog eligibility failures
Eleven gates fail in a predictable order. Walk store-level gates first because one failure disqualifies every product. Then walk product-level gates per failing product. Then check hidden/Unlisted status separately, because the seo.hidden metafield silently disqualifies products in a way the eligibility flag doesn't expose. Most stores fail on one of three: private mode (the storefront password), account standing, or product status (Draft / Unlisted / Archived).
The eligibility list comes from Shopify's requirements page1; the hidden-status edge cases come from the hide-a-page doc3. Walking the diagnostic in store-then-product order saves time — one store-level fix can flip thousands of products into eligible.
§
01
Store
Store-level failures (one breaks everything)
Six store-level gates. Each one, if it fails, disqualifies every product in the store. Most common failures: private mode (the storefront password) left on, plan downgraded to free trial state, an account Shopify is still reviewing for standing and history, or store-level Acceptable Use Policy issue (typically affects regulated categories). Shopify's requirements page no longer has a shipping-country gate.
- Plan is below Starter (Shopify Lite, Pause, free trial, deactivated). Fix: upgrade plan.
- Private mode (the storefront password) is on (Online Store > Preferences > Store access). Fix: turn off.
- Account standing and history not yet established. Shopify says standing "is reviewed over time"1. Fix: verify your email, turn on two-step authentication, set up a passkey if available, complete identity and business verification when prompted, pay Shopify invoices on time, keep chargebacks low, and resolve open policy issues. Then wait; there is no switch.
- Acceptable Use Policy violation flagged by Shopify (categories with regulatory issues). Fix: contact Shopify support.
- Products are not published to Online Store / Hydrogen / Headless sales channel. Fix: publish to one of the three.
- Hydrogen / Headless without correct route format. Fix: confirm Storefront API route format matches Shopify spec.
§
02
Product
Product-level failures
Five product-level gates per product. Most common failures: a product imported via CSV with empty title or empty media library, a free product with $0.00 price (typically promo or sample SKUs), or a product whose status got bumped to Draft during a bulk edit and never reverted.
- Title is empty. Fix: set a non-empty product title.
- No image attached. Fix: add at least one media item.
- Price is $0.00. Fix: set price > $0 (use a sample/gift workflow for free items).
- Status is Draft or Archived. Fix: set Status to Active.
- Product status is Unlisted (the Status field on the product page). Fix: change the status to Active.
§
03
Hidden
Hidden / Unlisted edge cases
Shopify exposes three ways to hide a product from search engines: Unlisted status, the seo.hidden metafield, and a noindex meta tag added via theme.liquid. Unlisted is the one most likely to silently disqualify Catalog inclusion because it's a per-product status flag many merchants don't know exists.
Per Shopify3, Unlisted status 'hides the product from internet search, Shopify Catalog, and your store's sitemap.' The seo.hidden metafield set to 1 has the same effect. The third method (theme.liquid noindex on a template or handle) blocks search engines but doesn't necessarily disqualify Catalog — Catalog is an internal Shopify feed, not a search-engine crawl.
§
04
Checklist
The diagnostic checklist
Walk these in order. If any store-level gate fails, stop and fix it first — every product is disqualified until the store passes. After store-level gates pass, sample three products and walk the product-level gates per product.
- Confirm Settings > Plan shows Starter or higher.
- Confirm private mode is off (Online Store > Preferences > Store access).
- Confirm the account is verified: email confirmed, two-step authentication on, identity and business verification done if Shopify asked for it.
- Confirm the account is in good standing: no unpaid Shopify invoices, a low chargeback rate, no open policy or compliance issues.
- Open three random products. Confirm Status = Active, not Draft.
- Confirm each has a non-empty title.
- Confirm each has at least one image.
- Confirm price > $0.
- Confirm none of them has Unlisted status.
- Open Settings > Metafields and metaobjects > Products. If a seo.hidden definition exists, confirm no product you want in Catalog has it set to 1.
- If on the Agentic plan: confirm external product URL is set per product.