All posts
7 min read

Why does my Shopify collection only show 50 products?

Because a Liquid for loop on Shopify runs at most 50 times. Shopify's Liquid reference says it plainly: "You can do a maximum of 50 iterations with a for loop." A section that loops over collection.products without wrapping it in the paginate tag shows the first 50 products and silently drops the rest.

If your collection stops at a smaller number, such as 16, 24 or 25, that is not the 50 limit. It is a products per page setting in your theme, and the rest of your products are on page 2. The fix for each case is below, along with what Shopify actually returned when we tested the paginate tag on a development store on 21 October 2026.

Which limit am I hitting?

Count the products you can see, then match the number.

What you seeWhat is limiting itWhere to fix it
Exactly 50 products, and no page numbers below themThe section loops over the collection without paginate, so Shopify's 50 iteration cap appliesThe section's code: wrap the loop in paginate
A round number like 16 or 24, with page numbers belowThe collection page's products per page settingTheme editor, the collection template, the product grid section
A round number on the homepage, with a View all buttonThe featured collection section's product count settingTheme editor, the homepage, that section's settings
Fewer products than the collection has, at any countProducts that are drafts, unavailable on the Online Store sales channel, or excluded by the collection's conditionsShopify admin, Products and Collections, not the theme
An empty grid on a page like ?page=9The page number is past the last pageNothing is broken: go back to page 1

How do I show more products per page in my theme?

Most themes make it a slider. In Dawn 15.4.1, Shopify's free reference theme, it works like this:

  1. In the Shopify admin go to Online Store, then Themes, and click Customize.
  2. Use the page selector at the top to open Products, then Default collection (or the collection template you use).
  3. Click the Product grid section and move the Products per page slider. In Dawn it runs from 8 to 36 in steps of 4, and the default is 16.
  4. Save.

On the homepage, Dawn's Featured collection section has a Product count setting that runs from 2 to 25, default 4. That section is meant as a preview of the collection, which is why it stops at 25 and links to the full collection page instead.

Other themes name the setting differently, but it is almost always on the section that shows the grid, not under Theme settings. If the slider stops below the number you want, that maximum is the theme author's choice, written into the section's schema. A developer can raise it to anything up to 250.

What does the paginate tag actually do?

It splits a long list into pages and lets the loop inside it go past 50. You wrap the loop and give it a page size:

{% paginate collection.products by 24 %}
  {% for product in collection.products %}
    {% render 'product-card', product: product %}
  {% endfor %}
  {{ paginate | default_pagination }}
{% endpaginate %}

Inside the tag, collection.products holds only the current page's products, and a paginate object tells you where you are: paginate.pages, paginate.items, paginate.current_page, paginate.current_offset, plus paginate.previous and paginate.next, which carry the URLs for the arrows. The page number comes from ?page= in the address. default_pagination prints ready made page links.

Shopify's documented limits for the tag: the page size must be between 1 and 250, and it will only page up to the 25,000th item in the list and no further. So 250 per page is the most you can show at once, and very large collections need filtering or search past item 25,000.

What happened when we tested it?

We pushed a test theme with 15 collection templates to a Shopify development store with Shopify CLI 3.93.1 on 21 October 2026, loaded each one on the all collection (13 products), and deleted the theme afterwards.

What we wroteWhat Shopify rendered
paginate collection.products by 1212 products, paginate.pages 2, paginate.items 13, links "1 2 Next »"
by 5, opened with ?page=25 products, offset 5, page 2 of 3, previous and next URLs both filled in
by 5, opened with ?page=990 products, offset 490, next empty, previous pointing to page 3. No error
by 5, opened with ?page=0 or ?page=abcPage 1
by "4" (a string)Accepted: 4 per page, 4 pages
by 0 or by -3No error: 1 product per page (13 pages for -3)
by a setting that does not existNo error: all 13 products on one page
by 251No error: all 13 on one page
A loop over collection.products after endpaginate5 products, the current page only, not the whole collection
paginate on a list made with splitLiquid error (templates/collection.p5 line 3): Array 'arr' is not paginateable. The rest of the page still rendered

Two things in that table catch people out. First, a bad page size does not fail loudly: zero, a negative number and a missing setting all rendered something, so a typo in the setting ID shows up as the wrong number of products, not as an error. Second, once a paginate tag has run, collection.products stays cut down to the current page for the rest of the section, so a count or second loop placed after endpaginate sees 5 products, not 13.

What we could not test: the store has 13 products, so it cannot show the 50 cap or whether by 251 is quietly reduced to 250. For those two, the numbers above come from Shopify's Liquid reference, read the same day.

What does "Array is not paginateable" mean?

You passed paginate a list Shopify does not page. The error spells it "paginateable", so search for that spelling if you are hunting for it in a theme. Only specific lists can be paged. Shopify's reference names these:

  • collection.products and collections
  • blog.articles and article.comments
  • search.results and pages
  • product.variants
  • customer.orders and customer.addresses
  • metaobject_definition.values
  • the product_list, collection_list and article_list settings

A list you built yourself with split, where, sort or concat is a plain array, and plain arrays cannot be paged. Paginate the original list instead, then filter inside the loop. The error printed inline where the tag was, and the text after it still rendered, so on a live store it looks like one broken section rather than a broken page.

Why does my homepage section stop at a few products when the collection has more?

Because homepage sections are built as previews. Dawn's Featured collection wraps its loop in paginate with the Product count setting as the page size and also applies a limit, so it can never show more than that count, and the setting itself stops at 25. That is deliberate: a homepage grid of 200 products would push everything else down the page and slow it to load. Link to the collection page for the full list, which is what the section's View all button is for.

Where these numbers come from

The rendered values and the error message come from one test theme on a Shopify development store, 21 October 2026, Shopify CLI 3.93.1, deleted after. The Dawn settings come from the main-collection-product-grid and featured-collection section schemas in Dawn 15.4.1. The 50 iteration cap, the 1 to 250 page size, the 25,000 item ceiling and the list of pageable arrays are quoted from Shopify's Liquid reference pages for for and paginate, read on 21 October 2026.

If you are editing a section and the loop you need is over blocks rather than products, see how to loop through blocks in a Shopify section. If products are missing from a related products row rather than a collection, see why related products are not showing. And if a code change is the next step, what happens to your edits when the theme updates is worth reading first.

Frequently asked questions

Why does my Shopify collection only show 50 products?

Shopify's Liquid for loop runs at most 50 times. A section that loops over collection.products without the paginate tag shows the first 50 and drops the rest. Wrap the loop in paginate with a page size between 1 and 250 and add pagination links.

Why does my collection page only show 16 products?

That is the theme's products per page setting, and the rest are on page 2. In Dawn, open the collection template in the theme editor, click the Product grid section and move Products per page. It runs from 8 to 36, default 16.

What is the maximum number of products per page on Shopify?

250. Shopify's paginate tag accepts a page size between 1 and 250, and it pages up to the 25,000th item in a list and no further. A theme's own slider can stop lower than 250 because the theme author set its maximum.

What does "Array is not paginateable" mean in Shopify?

The paginate tag was given a list Shopify does not page, usually an array built with split, where, sort or concat. Paginate the original list, such as collection.products or blog.articles, and filter inside the loop. In our test the error printed inline and the rest of the page still rendered.

Can I show all products in a collection on one page?

Up to 250 at once, by setting the paginate page size to 250. Past that the collection has to be split into pages. For long collections, filters and sorting usually serve shoppers better than one very long page.

Why is page 2 of my collection empty?

The page number is past the last page. In our test a collection of 13 products paged by 5 rendered no products and no error on ?page=99, with the previous link pointing back to page 3. If page 2 should exist, check the products per page setting and how many products the collection holds.

Does a wrong page size break the collection page?

No, which is the problem. In our test a page size of 0, a negative number, and a setting ID that did not exist all rendered without an error. You see the wrong number of products instead, so check the setting ID when the count looks off.

Generate a theme that looks like your brand

A complete Shopify 2.0 theme with conversion features built in, ready in minutes. No credit card required.

Generate my theme free

No Shopify store yet? Start one here, then bring the theme. Themr may earn a commission if you start a paid plan; it does not change what you pay.