ezomfy
All posts
June 28, 20264 min read

400 products, 24 indexed: the pagination problem

Infinite scroll and load-more buttons can hide most of your catalogue from Google. How to check yours in two minutes, and the canonical mistake that follows.

A

Ashraful

Shopify Select Partner

A close-up view of a laptop displaying a search engine page. — Photo by cottonbro studio on Pexels

If you have a collection with 400 products and only the first 24 are ranking, this is usually why.

Pagination sounds like a design detail. It is actually the mechanism that decides whether Google ever sees most of your catalogue, and it goes wrong in a specific, common way that nobody notices because the store looks fine to a human.

What is going wrong

Your collection page shows 24 products, then a "load more" button or an infinite scroll that fetches the next batch as you scroll.

That is pleasant for a customer. For a search engine it can mean that products 25 through 400 do not exist, because Google's crawler does not scroll and does not click. If the only route to product 300 is a JavaScript interaction, that product may never be crawled, never indexed, and never appear in search.

You have 400 products and a catalogue that behaves, from Google's point of view, like it has 24.

How to check yours in two minutes

No code required.

Look for real links. Open your collection page and scroll to the bottom. If you see numbered page links, or a "next" link, hover one and check the address bar shows something like ?page=2. That is a real URL and Google can follow it.

If you only see a "Load more" button with no address, or the page just keeps extending as you scroll, that is the problem shape.

Ask Google directly. Search site:yourstore.com/collections/your-collection and see roughly how many pages come back. If you have 400 products and Google shows a handful of pages, something is stopping it.

Check Search Console. Pages report, look at Discovered but not indexed and Crawled but not indexed. A pile of product URLs sitting there is a crawling problem, not a content problem.

What correct looks like

The pattern that works keeps real, crawlable links even when the visible experience is a button.

{%- paginate collection.products by 24 -%}

  {%- for product in collection.products -%}
    {%- render 'product-card', product: product -%}
  {%- endfor -%}

  {%- if paginate.pages > 1 -%}
    <nav class="pagination" aria-label="Pagination">
      {%- if paginate.previous -%}
        <a href="{{ paginate.previous.url }}" rel="prev">Previous</a>
      {%- endif -%}

      {%- for part in paginate.parts -%}
        {%- if part.is_link -%}
          <a href="{{ part.url }}">{{ part.title }}</a>
        {%- else -%}
          <span aria-current="page">{{ part.title }}</span>
        {%- endif -%}
      {%- endfor -%}

      {%- if paginate.next -%}
        <a href="{{ paginate.next.url }}" rel="next">Next</a>
      {%- endif -%}
    </nav>
  {%- endif -%}

{%- endpaginate -%}

Those are real anchors with real URLs. Google follows them and reaches every product.

You can still have your load-more button. Build it as an enhancement over these links: the links exist in the HTML, and JavaScript intercepts the click to load in place. Customers get the smooth experience, crawlers get the paths. If the JavaScript fails, the links still work, which is a bonus.

The canonical mistake that follows

The second common error, and it is the one that quietly deletes pages 2 onwards from the index.

Someone sets the canonical tag on every paginated page to point at page one:

<!-- wrong -->
<link rel="canonical" href="{{ collection.url }}">

That tells Google "pages 2 through 17 are duplicates of page 1, ignore them." Google obliges. You built the crawlable links and then instructed Google to disregard where they lead.

Each page should be canonical to itself:

<link rel="canonical" href="{{ canonical_url }}">

Shopify's canonical_url already includes the page parameter and handles this correctly. Themes break it by overriding with something hand-written.

While you are there, page 2 onwards should not carry the same title tag and meta description as page 1. Appending the page number is enough and stops them competing:

<title>
  {{ collection.title }}
  {%- if paginate.current_page > 1 %}, page {{ paginate.current_page }}{% endif -%}
</title>

How many products per page

There is a trade-off and no universally right answer.

Fewer per page means faster loading and more pages for Google to crawl through, which on a large catalogue can mean the deepest products are several clicks from anywhere.

More per page means fewer clicks to depth but a heavier page, and 100 product images on one page is its own performance problem.

Practical range: 24 to 48 for most stores. Shopify's maximum is 50.

What matters more than the number is click depth. Every product should be reachable within about three clicks of the homepage. If your deepest product is on page 17, it is effectively invisible regardless of how correct your pagination markup is. That is a navigation and collection-structure problem, and the answer is usually more, tighter collections rather than fewer huge ones.

The things worth checking today

  1. Do your collection pages have real, hoverable page links, or only a button?
  2. Does each paginated page canonical to itself, or to page one?
  3. Is your deepest product within three clicks of the homepage?
  4. Does Search Console show product URLs stuck in Discovered but not indexed?

Any one of those going the wrong way is worth a developer's afternoon, and it affects your whole catalogue rather than a single page.


We fix collection crawlability as part of Shopify SEO and theme work, and it is one of the first things our audit checks, because a store with 400 products and 24 indexed is losing more traffic than any amount of blog writing will replace.

The free store audit checks your collection pagination, canonicals, and indexation, and reports back by email. Or book a 30 minute call and we will look at your collections together.

A

About the author

Ashraful

Shopify Select Partner, Top Rated Plus on Upwork. 700+ Shopify projects shipped over 7+ years: themes, apps, migrations, speed, Hydrogen. Solo shop, no agency middlemen.

Read the full story

Working on a Shopify project?

That's what I do every day. Pick whichever feels lower-friction.