August 28, 2026

Shopify collection not showing all products

Shopify collection not showing all products

Your Shopify admin says the collection holds 2,821 products. Open it on your storefront and count what is on the screen: twelve.

Nothing is broken. You are looking at page 1, and that number — twelve — is your theme's page size, not your catalogue.

Rule that out first, because it costs ten seconds. Everything below is for when the products really are gone.

Key takeaways

  • Count the products on page 1 of your collection. That is your theme's page size. On the five storefronts where we could read this cleanly, it was 12, 16, 16, 16 and 24 — every one of them far below the 250 that Shopify's paginate tag allows.
  • Most collections don't fit on one page at those sizes. Across 2,518 collections on 41 live storefronts, 41.5% hold more than 12 products and 29.2% hold more than 24.
  • The one check that separates a display problem from a real absence: look for the missing product in the collection's public JSON. If it is there but not on the page, your theme is hiding it. If it is not there either, it is a membership or publishing problem.
  • Sold-out products are worth checking early. In the same 41 catalogues, 2,130 of 20,604 products (10.3%) had every variant unavailable while still published. Whether your theme keeps those on the collection page is a theme setting — the number above is how many such products exist, not how many get hidden.
  • A collection showing nothing at all is a conditions problem. 140 of the 2,518 collections we read hold zero products (5.6%).

Sample: 41 live stores drawn at random from a public list of storefronts whose owners posted them on the Shopify Community asking for feedback. Not a cross-section of Shopify. Method is at the end.

Step 1: is it a display problem or a real absence?

Two checks. The first takes ten seconds, the second takes about a minute, and together they tell you which half of this article to read.

Check 1 — count page 1. Open the collection on your storefront, count the products on the screen, and look at the bottom of the page for numbered page links or a "next" control. The count is your theme's page size. If there are page links, the rest of the collection is behind them, and you are done.

Check 2 — look for the specific product you are missing. Every Shopify storefront exposes its collections as public JSON. Open this in a browser tab, replacing the domain and the handle with your own:

https://your-store.com/collections/your-collection-handle/products.json?limit=250

You will get a wall of unformatted JSON. Use your browser's find (⌘F / Ctrl+F) and search for the missing product's handle or title. Firefox and Chrome both render .json in a collapsible viewer that makes this easier; if yours does not, the find still works.

Two things about that URL. It returns at most 250 products per request, so for a larger collection add &page=2, &page=3 and so on until a page comes back empty. And it only ever contains products that are published to the Online Store — which is what makes the result diagnostic:

What you find What it means Go to
Product is in the JSON, not on the page Display: pagination, or your theme is filtering it out Steps 1–2
Product is not in the JSON either Membership or publishing Steps 3–5

Where this check can mislead you. You are fetching that URL as an anonymous visitor. If your store serves different catalogues to different visitors — separate Markets or regions, a customer-specific catalogue, a storefront-filtering app — then what you see and what a given shopper sees can legitimately differ, and this comparison will not settle it. It is also a public endpoint: anything it returns is already readable by anyone, which is worth knowing whether or not you use it here.

If you want the sizes of every collection at once rather than one collection's members, https://your-store.com/collections.json?limit=250 lists them with a products_count each — same paging rule, &page=2 for the next 250.

What page size actually is

Shopify's Liquid documentation gives the ceiling: the paginate tag takes "the number of array items to include per page, between 1 and 250." That is the maximum a theme is allowed to set. What your theme sets is up to your theme, and in practice it is far lower.

We measured it rather than assuming. Taking the largest collection on each of the 41 stores that had one holding 50 products or more, we read page 1 and page 2 and counted the distinct product links on each:

Store Collection Products in collection Page 1 Page 2 Overlap
baby-boutique.uk all 2,821 12 12 0
beadsgonewildstore.com seed-beads 1,919 16 16 0
bowrivan.com all 85 16 16 0
emersonbyavery.com note-cards 53 16 16 0
desigentleman.com oversized-t-shirts 85 24 24 0

Zero overlap means page 2 holds a different set of products, not the same page served twice.

Five clean reads is what we got, not what we aimed for. Of the 26 stores with a collection large enough to test, 18 returned HTTP 429 — Shopify's edge rate-limits by IP, and we were reading many stores from one — and they are recorded as unread rather than as anything else. One returned 404. Two returned nothing at all on page 2 while page 1 held far less than the collection does — 20 products of 58 on one, 5 of 95 on the other — so our HTML-only read cannot see the rest of those two, and they are inconclusive rather than measurements. One returned partially overlapping links between the two pages, which means our link-counting was matching something other than product cards on that theme; it is excluded, not reported.

That last one is the honest limit on this table. Zero overlap proves two pages differ; it does not by itself prove that our count of a page is complete. Read these five numbers as five real theme page sizes, all an order of magnitude below the 250 ceiling — not as an estimate of what themes typically ship with.

Against that range, here is how the 2,518 collections are distributed. The second column drops the 38 collections that are really the whole catalogue under a name — all, and anything holding 95% or more of its store's products — because nobody browses those as a merchandised collection, and they sit entirely in the top tail:

Collection size All 2,518 Excluding catalogue-wide (2,480)
0 products 140 (5.6%) 140 (5.6%)
1–8 1,135 (45.1%) 1,135 (45.8%)
9–12 199 (7.9%) 199 (8.0%)
more than 12 1,044 (41.5%) 1,006 (40.6%)
more than 16 906 (36.0%) 868 (35.0%)
more than 24 735 (29.2%) 700 (28.2%)
more than 50 478 (19.0%) 448 (18.1%)
250 or more 126 (5.0%) 105 (4.2%)

The first four bands are exclusive and add up to the total; the last four are cumulative and overlap them. Counts are given because the percentages round to 100.1.

Median 8 either way; upper quartile 33 → 31, 90th percentile 115 → 106, 95th percentile 250 → 218. The exclusion changes nothing below 12 products — every catalogue-wide collection is in the top tail by definition — and takes about a point off each band above it. That is the useful thing to know about it: they inflate the upper end, but at 1.5% of the collections they are not what makes this distribution look the way it does.

Half of all collections are small enough that page size never comes up, which is why it takes you by surprise on the ones where it does.

Step 2: sold out, and whether your theme hides it

Some themes drop products with no available variants from collection pages; some keep them and mark them sold out; some make it a setting. Which one yours does is worth establishing before you go looking for a cause, because the two behaviours produce completely different symptoms.

The reason to check this early is how much of a live catalogue sits in that state. In the 41 catalogues we read — 20,604 products — 2,130 products (10.3%) had every variant unavailable while the product was still published, spread across 31 of the 41 stores. That is a count of sold-out products, not a count of hidden ones; we did not measure how many themes hide them.

You do not need to identify the setting to answer the question. Take a product you know is sold out, and run check 2 from step 1 on the collection it belongs to. If the product is in the JSON but not on the page, your theme is filtering it out, and the fix is in the theme editor: Online Store → Themes → Customize, then the collection page's product grid section, where the wording varies by theme.

Step 3: collection conditions

If the collection is automated, its conditions decide what is in it. Open Products → Collections → your collection: an automated collection shows a conditions panel, a manual one shows a product list you add to by hand.

Three things to check, in the order they go wrong:

  1. "All conditions" where you meant "any." With all, a product has to satisfy every condition. Two reasonable-looking conditions joined with all can exclude almost the entire catalogue. We have no way to measure how often this is the cause — collection conditions live in the admin and nothing we read can see them — but it is the cheapest of the three to check, and the fix is one click.
  2. A condition on a field that is blank. Product type and vendor are the usual suspects — a condition on product type matches nothing on products where that field was never filled in.
  3. A tag that is not spelled the way you think. Tag sets drift over time, and the same tag often exists in more than one spelling across a catalogue.

For all three, the same test works: edit the condition, and watch the product count Shopify shows you as you change it. If the count moves, you found it.

If the answer turns out to be that your tags no longer mean anything consistent, that is a catalogue problem rather than a collection problem — a rename across the catalogue, not a fix to this one collection.

Step 4: the collection that matches nothing

The extreme version of step 3 is a collection with no members at all. 140 of the 2,518 collections we read hold zero products (5.6%), and at least one existed in 19 of the 41 stores.

An automated collection whose conditions stopped matching is one way to get there — a renamed tag, a season that ended, a vendor you dropped. A manual collection nobody filled is another, and so is leftover scaffolding from a theme or an import. All three are worth resolving rather than leaving in place: an empty collection still linked from your navigation is a dead end for shoppers and a thin page for search engines.

Step 5: publishing and sales channel

Quickest of the lot, and the reason check 2 in step 1 is worth running before anything else. A product has to be published to the Online Store to appear on it. On the product page, the Publishing card lists the sales channels the product is available on.

A product that is not available to the Online Store will not show on a storefront collection page regardless of collection membership — and it will not appear in the public JSON either. That is exactly why a product missing from both is a publishing question and not a pagination one.

When to stop checking and start auditing

With three collections, work through the five steps by hand and stop reading.

The point where that stops working is lower than you would think. A store with twenty or thirty collections has a handful that were built for a campaign that ended, a couple whose conditions reference tags nobody has used in a year, and one or two that are empty and still in the navigation — and none of that announces itself. Nothing on the storefront tells you a collection is empty; you have to go looking.

The endpoints in step 1 answer that across the whole catalogue rather than one collection at a time, and the three questions worth asking are the same every time: which collections are empty, which hold products that are entirely sold out, and which have conditions pointing at fields that are blank.

Arvio runs that read against your live store and drafts the fixes, holding every change for your approval. Whether that is worth installing depends on how many collections you have stopped recognising — if the answer is none, the five steps above are the whole job.

FAQ

Why does my collection say 500 products but show 24?

24 is your theme's page size, and the other 476 are on pages 2 through 21.

Can I make the collection show everything on one page?

Up to 250 items, yes. Above 250, Shopify paginates no matter what the theme asks for — the paginate tag's range stops there. Below 250, it is a theme setting: Online Store → Themes → Customize, the collection page template, the product grid section. Themes label it differently — "products per page," "products per row" combined with a row count — and a handful do not expose it at all, in which case it is a theme code change. Whether you want a single page of 250 products is a separate question; it is a heavy page on mobile.

The product is in the collection in admin but not on the storefront.

Run check 2 from step 1. If the product is in the JSON, it is availability or pagination (steps 1–2). If it is not, check the Publishing card (step 5).

My automated collection is empty but products match the conditions.

Check whether the conditions are joined with "all" or "any," then check the exact spelling of any tag in the condition against the tags actually on the products. Then check that those products are published to the Online Store.

Method

Sample. 41 live Shopify storefronts. Catalogues read 2026-08-26; collection pages read 2026-08-28 UTC. (Times are UTC throughout — the collection-page read ran in the small hours of 29 August local time, which is why a working note may show that date.) Every figure comes from endpoints any browser can fetch — /products.json, /collections.json, and the rendered collection pages. Nothing authenticated, and nothing installed on those stores.

How the frame was built, and how the 41 came out of it. Owners had posted their own store URL on the Shopify Community's Store Feedback board asking for feedback: 720 topics read (dated 2025-01-15 to 2026-08-26), 474 candidate hostnames taken from first posts only, 230 verified as still serving a catalogue. From those 230 we drew 60 at randomrandom.Random(20260826).sample over the sorted host list, reproducible from the recorded draw. 59 of the 60 returned a readable catalogue. Two of those hit the 5,000-product read ceiling and 16 held fewer than 10 products; both groups were excluded before any figure was computed, leaving 41. None of the 41 hit a paging ceiling, so the collection counts are totals rather than floors.

The largest bias is survivorship, and it is worth stating as a finding rather than a footnote: more than half the stores on that public list are gone. Of the 474 candidate domains, 244 were no longer serving products — 118 no longer resolved, 56 returned 404, 31 returned HTTP 402 (Shopify's unpaid-account freeze), 18 were password-protected or no longer Shopify, and the remaining 21 returned some other error (9 × 401, 4 × 409, 3 × 403, 2 × 308, and one each of 500, 429 and a dropped connection). The 230 that survived are the pool everything here was drawn from. Stores that post asking for feedback also skew newer and smaller — the median collection in this sample holds 8 products — so treat every share here as a prompt to check your own catalogue rather than a platform rate.

What we counted. 2,518 collections across the 41 stores, from /collections.json; the size of a collection is Shopify's own products_count for it. Product-level figures come from /products.json: 20,604 products, of which 2,130 had no available variant on any of them.

Two things about the collection counts, because they change how you can use them. First, collections overlap — a product can sit in any number of them, so this is a distribution of collection sizes and not a partition of a catalogue; the sizes do not sum to the catalogue. Second, /collections.json returns catalogue-wide collections alongside merchandised ones: all, and in several stores a "best sellers" or "new in" that holds nearly everything. 38 of the 2,518 are catalogue-wide by our rule (handle all, or products_count at 95% or more of that store's catalogue), across 20 stores, and the table above reports the distribution both with and without them.

The pagination probe. One collection per store — the largest one holding 50 products or more, which is 26 of the 41 — read at ?page=1 and ?page=2, counting distinct href links to product URLs and discarding image filenames. Five returned disjoint sets and are reported above. Two returned an empty page 2 while page 1 held less than the collection's own count, which the probe records as inconclusive — an earlier version of the classifier called those "single page," which would have been wrong, and the self-test now has a case that fails on it. One returned partially overlapping sets and is excluded. 18 returned HTTP 429 and one returned 404; the 429s are recorded as unread, not as zero. The rate limit is applied by Shopify's edge against our IP for reading many stores in quick succession, so which stores it hit is a function of our request order, not of anything about those stores' themes — but we cannot rule out that a slower theme is likelier to be caught, and 18 of 26 is too much non-response to treat the five as a sample of anything. The probe records every attempt, including the ones that failed, so the 5 reported reads are 5 of 26 attempted rather than 5 selected from 26.

What this measurement cannot tell you. Disjoint page sets prove that page 2 is different from page 1; they do not prove our count of a page is complete, and the one theme where the counting visibly failed is why we say so. The five page sizes are five observations, not a distribution.


Written by Adot Technologies Inc, the team behind Arvio: AI Store Operatorwhat it does, and how we know.

Arvio: AI Store Operator

Other AI tools give you a to-do list.
Arvio's AI store agent does the work.

Arvio scans your Shopify store daily, finds what needs fixing — SEO, prices, stock, product content — and drafts the fix. You approve it, Arvio ships it. Every edit can be undone.

Install on the Shopify App Store
4.9★ rated on Shopify App StoreFree trial availableEvery edit reversible