all insights
7 min read

Pagination and Infinite Scroll Without Losing Rankings

Pagination and infinite scroll quietly hide content from crawlers. A practitioner's playbook for listing and archive UX that machines can fully reach.

Technical SEOSEO
Pagination and Infinite Scroll Without Losing Rankings — cover illustration

The content you cannot see is the content you cannot rank

Pagination is one of those problems that looks solved until you check the logs. On the surface, your category pages, your blog archive, and your product listings all work fine. A human clicks "next," the page loads, life goes on. But a crawler is not a human. It does not scroll, it does not click a button that runs a script, and it does not wait around for content to appear. If your pagination or your infinite scroll depends on behavior a machine will not perform, then large slices of your catalog exist only in theory. They are on the site, and they are invisible to search.

I have spent fifteen years moving numbers in large programs, and pagination failures are some of the quietest revenue leaks I find. Nobody notices, because the pages render perfectly for the person doing the QA. The damage shows up two clicks deep, on page four of a series, where a crawler simply never arrives. Here is how I think about building listing and archive experiences that both people and machines can fully reach.

Why infinite scroll is a crawler trap

Infinite scroll is a fantastic pattern for engagement and a terrible one for discovery, unless you build it deliberately. The classic implementation loads the first batch of items in the HTML, then fetches the rest as the user scrolls, appending them with a script. A person sees an endless river of content. A crawler sees the first batch and nothing else, because it never fires the scroll event that would load item twenty-five onward.

This is really a rendering problem in disguise, and it lives in the same family as the issues I cover in making sure machines see what users see. If the content only exists after a client-side fetch that the crawler does not trigger, then the content does not exist for ranking purposes. The fix is not to abandon infinite scroll for users. The fix is to give machines a parallel path.

The rule I hold teams to: every item reachable by scrolling must also be reachable by a real, crawlable URL. Infinite scroll can be the experience. It cannot be the only route to the content.

Paginated series still need clean, indexable URLs

The older pattern, numbered pages, has its own failure modes. For years there was a directive that told search engines how pages in a sequence related to each other. That signal was retired, and a lot of sites never adjusted. They kept treating page two through page forty as afterthoughts: thin, near-duplicate, and often quietly canonicalized back to page one, which tells the crawler to ignore everything past the first screen of results.

That is exactly backward. Here is what a healthy paginated series looks like.

  • Each page in the sequence gets its own real URL that returns content in the HTML, ideally a clean path like /category/page/2 rather than a tangle of query strings. Commit to a durable URL pattern before you build, because changing it later is expensive and the old paths will haunt your logs for months.
  • Each page self-canonicalizes. Page three points its canonical at page three, not at page one. Canonicalizing a series back to the first page is one of the more common own goals I find, and it belongs in the same conversation as the other duplicate content problems you did not know you had.
  • The deeper pages are not noindexed by reflex. They hold real products and real posts. If they are thin, fix the thinness. Do not hide the inventory.
  • A first-party link path exists to every page, whether through visible numbered links, a "view all" variant, or a supporting sitemap. The crawler should never depend on guessing ?page= values to find your catalog.

The FETCH framework for pagination that machines can reach

When I audit a listing experience, I run it through a five-point check I call FETCH. It is deliberately simple, because pagination problems are almost never exotic. They are basic things nobody verified.

  • F is for Found. Can a crawler discover every page in the series through a real link or a sitemap, without executing a script? Pull a crawl and confirm page four and page fourteen both show up.
  • E is for Existing in HTML. View the raw source, not the rendered DOM. If the listed items are not in the HTML the server returns, a crawler may never see them. This is where most infinite scroll setups fail.
  • T is for Titled and unique. Each page in the sequence should have a distinct, honest title and meta, so it is not competing with its siblings. Otherwise you invite pages that compete with each other instead of stacking, and the series cannibalizes its own strength.
  • C is for Canonical honesty. Every page points its canonical at itself, never blanket-canonicalized to page one. Confirm this per page, not on a sample.
  • H is for Handled crawl budget. On a large site, an unbounded set of filter-and-page combinations will drain crawl budget fast, and the same discipline I apply to crawl budget on large sites applies here. Decide which paginated states deserve fetches and which do not.

Run any listing experience through FETCH and the failures announce themselves. It is rarely more than one or two letters that break.

Load more, view all, and the pattern I usually recommend

The most robust pattern I have shipped is a hybrid. Serve a reasonable batch of items in the initial HTML. Offer a "load more" button for users who want to keep going in place. And critically, back the whole thing with real, numbered, crawlable pagination underneath, so the button is a convenience layered on top of a solid URL structure, not a replacement for it.

If your catalog is small enough, a single "view all" page can outperform pagination outright, because it consolidates ranking signals onto one strong URL instead of scattering them. The tradeoff is page weight and speed. A view-all page with thousands of items will be slow, and slow pages get crawled less and convert worse. Somewhere in the low hundreds of items, the math usually flips back toward paginated pages. There is no universal number. Test it against your own load times.

This is the same tension I describe in taming faceted navigation: every additional way to slice a listing multiplies the URL space a crawler has to work through. Pagination and faceting are two halves of the same discipline. Treat them together, because a filter applied to a paginated series is where the combinatorial explosion actually happens.

The takeaway

Pagination and infinite scroll are not UX details you can hand off and forget. They decide whether the depth of your catalog is discoverable at all. The failures are boring and fixable: content that lives only in a script, canonicals that erase everything past page one, deep pages nobody links to. Give machines a real URL for every item, keep the series honest, and run the whole thing through FETCH before you ship.

Keep reading: Redirects Without Regret: A Field Guide to 301s.

If you are staring at a large listing or archive where the deep pages never seem to rank, the channel is open by introduction. Bring a crawl and your logs, and we will find exactly where the catalog goes dark.

Written by Joseph Carroll, Carroll Consulting Services. Connect on LinkedIn

// contact

Open a channel

Not taking on new clients right now, focused on the work in front of me. The best way to connect is LinkedIn, or a warm introduction from someone I already work with.

connect on linkedin NOT ACCEPTING NEW CLIENTS