Pagination and SEO: Long Lists Done Right

Every site of any size eventually grows a long list. A blog with 300 posts, a shop with 800 products, a directory with 5,000 listings — sooner or later the content doesn't fit on one page, and you have to decide how to split it. Pagination looks like a solved problem because every theme and platform ships with it. It isn't. It's one of the most quietly botched areas of technical SEO, and the botching is invisible: the site works fine for humans while Google sees a maze of duplicate titles, orphaned pages, and canonical tags pointing everywhere except where they should.

The good news is that the correct setup is not complicated. It's a short list of rules, most of which involve not doing clever things. This post covers the rules, the reasoning, the traps (infinite scroll gets its own section, because it deserves it), and how to decide between pagination, load-more, and filtering in the first place.

First, know what paginated pages are for

The core confusion in pagination SEO is treating page 2, 3, and 4 as content that should rank. They almost never should, and they almost never will. Nobody searches for "blue running shoes page 3." Paginated pages have exactly two jobs:

  1. Discovery paths for crawlers. Page 3 of your category exists so Googlebot can follow links from it to the 40 products that live there. It's plumbing.
  2. Browsing paths for the minority of humans who dig. Most users never leave page 1, but the ones who paginate are often your most motivated visitors.

Once you accept that deep pages are plumbing rather than landing pages, most decisions resolve themselves. You want them crawlable, unambiguous, and unremarkable. You do not want them competing with page 1, and you do not want to hide them so thoroughly that the items they link to become undiscoverable.

The rules that matter in 2026

1. Every paginated page self-canonicals

The single most common pagination mistake is putting a canonical tag on page 2+ that points back to page 1. It feels logical — "page 2 is sort of a duplicate of the category, right?" — but it's wrong, and it's wrong in a way that damages the site. A canonical to page 1 tells Google: "page 2 is a copy of page 1; ignore it." If Google obeys, it may stop crawling page 2, which means it stops following links from page 2, which means products and posts on deeper pages can drop out of discovery entirely. On large catalogs this silently orphans a big share of the inventory.

The rule: /category/?page=2 canonicals to /category/?page=2. Each paginated URL is its own thin-but-legitimate page. Google's own guidance has been consistent on this point for years: paginated pages are not duplicates of page 1.

2. Links between pages must be real anchor tags

Googlebot follows <a href="..."> links. It does not reliably click buttons, fire JavaScript event handlers, or scroll. Your pagination controls — next, previous, and ideally numbered page links — need to be plain crawlable anchors in the rendered HTML. If your "Next" button is a <button onclick=...> or a div with a click handler, you've built a wall Googlebot can't pass, and everything past page 1 might as well not exist.

A quick self-test that catches most failures: open a listing page, view the page source (the raw source, not the DOM inspector), and search for the URL of page 2. If you can't find an href containing it, neither can a crawler that doesn't execute your JavaScript perfectly.

3. rel="next" and rel="prev" are dead — stop cargo-culting them

For years the standard advice was to add rel="next"/rel="prev" link tags so Google would treat a paginated series as one unit. Google's pagination documentation says it no longer uses those tags. Adding them today does nothing for Google. (They retain minor value for accessibility tooling and some browsers, so removing existing ones isn't urgent — but building a modern setup around them is solving a problem that no longer exists.)

4. Differentiate titles, don't optimize them

Give paginated pages a mechanical suffix: "Blue Running Shoes — Page 3". This isn't for ranking; it's to avoid hundreds of identical title tags, which make duplicate-content assessment harder and make your own Search Console reports unreadable. Don't write unique descriptions for deep pages or otherwise invest in them. A template suffix is the correct amount of effort.

5. Don't noindex deep pages — usually

Noindexing page 2+ seems tidy: they won't rank anyway, so why index them? The problem is that a page which stays noindexed for a long period tends to get crawled less and less, and Google has indicated that persistently noindexed pages can eventually be treated as effectively nofollow — meaning links from them stop passing discovery value. You've then rebuilt the canonical-to-page-1 orphaning problem with different syntax.

The exception: if every item on your site is also reachable through a comprehensive XML sitemap and strong internal links elsewhere (related-products modules, in-content links), noindexing paginated archives is survivable. Some large sites do it deliberately. But "survivable with compensating infrastructure" is not a default. The default is: indexable, self-canonical, boring.

6. Keep page 1 URL stable

The first page of a series should live at the clean URL — /category/, not /category/?page=1. If both URLs respond, canonical the ?page=1 variant to the clean URL (this is the one place a cross-URL canonical in pagination is correct, because those two really are the same page) or, better, redirect it. Internal links to "page 1" should always use the clean URL.

Infinite scroll: the elegant way to hide your content

Infinite scroll — content loading automatically as the user scrolls — is a legitimate UX choice for feeds. It is also, implemented naively, an SEO trapdoor. Googlebot does not scroll. It renders your page in a very tall viewport, takes what's in the initial render plus what loads without interaction, and leaves. Items that only appear after scroll event number three were never seen.

The symptoms are characteristic: page-1 items rank fine, everything deeper is thin air, and the site owner can't figure out why most of the catalog gets zero organic traffic. If that's your pattern, check how your listings load before checking anything else.

The fix is called paginated fallback, and every serious implementation of infinite scroll uses it:

  • Underneath the infinite scroll, real paginated URLs exist (?page=2, ?page=3...), each serving its slice of items as server-rendered HTML.
  • As the user scrolls and new items load, the browser URL updates (via the History API) to the corresponding page URL — so page states are shareable and crawlable.
  • Plain <a> links to the next page exist in the HTML (they can be visually styled as a "Load more" button or even hidden behind the auto-loading behavior, but the href must be there).

A "Load more" button is the pragmatic middle ground: better perceived control than infinite scroll, and if the button is an anchor tag pointing to the next page URL (with JavaScript intercepting the click to load inline), you get good UX and crawlability from one element. As a decision rule: feeds where individual items don't need to rank (social-style timelines) can use pure infinite scroll; any listing whose items are money pages needs paginated fallback or true pagination.

How big should a page be?

There's a genuine trade-off between page size and pagination depth. Bigger pages mean fewer clicks (and fewer crawl hops) to reach any item; smaller pages load faster and are less overwhelming. Rules of thumb that hold up in practice:

  • 24–48 items per page for e-commerce category pages. Below 20, you're creating depth for no reason; above 60ish, image-heavy pages get slow on mobile connections.
  • Keep every item within about 3 clicks of a category landing page. If your category has 40 pages of depth, items on page 35 are effectively unreachable — for crawlers and humans alike. Fix it with larger pages, subcategories, or both.
  • Subcategories beat depth. When a category regularly exceeds roughly 5–8 pages, that's the signal to split it. "Running Shoes" with 900 items should become road/trail/racing subcategories — which also gives you three keyword-targeted landing pages instead of one plus 30 pages of plumbing. This is the highest-ROI move in this entire article.

Faceted navigation: where pagination goes to die

Pagination alone is manageable. Pagination multiplied by filters is where sites actually get hurt. Add color, size, brand, and price filters to a paginated category, give each combination a URL, and you've generated a combinatorial explosion: one category with 5 filters can easily produce tens of thousands of crawlable URL permutations, nearly all worthless. Googlebot burns its crawl allocation on ?color=blue&size=9&sort=price_asc&page=7 while your new products wait days to be discovered.

The containment strategy, in order of preference:

  1. Decide which facets deserve indexable URLs. The test: would someone search for this combination? "blue running shoes" — yes, index it, treat it as a landing page. "running shoes sorted by price ascending" — no. "blue Nike running shoes under a price cap, size 44" — no.
  2. Canonical non-indexable filter combinations to their base category (unlike pure pagination, filtered views genuinely are variants of the category).
  3. Block the worst offenders in robots.txt — sort orders and view parameters (?sort=, ?view=, ?per_page=) have no business being crawled at all.
  4. Never combine indexable facets with pagination canonicals. A filtered page's paginated series follows the same rules as any other: page 2 of an indexable facet self-canonicals; page 2 of a non-indexable facet inherits the canonical to the base category.

If that last rule made your head hurt, simplify: keep filtered views out of the crawl entirely (canonical + robots rules for parameters), and hand-build the handful of filter combinations worth ranking as real subcategory pages with their own clean URLs. Fewer moving parts, same outcome.

A WordPress-specific checklist

WordPress generates paginated archives everywhere — blog home, categories, tags, author pages, date archives. Fifteen minutes of checking covers you:

  • View source on page 2 of your blog. Confirm the canonical points to page 2 itself (the major SEO plugins get this right by default — but themes and "optimization" plugins sometimes override it).
  • Confirm pagination links are anchors. Standard WordPress pagination is fine; page-builder "posts grids" with AJAX load-more frequently are not.
  • Noindex the archives nobody needs. Date archives and author archives on a single-author blog are pure duplication — noindexing those is the standard, safe move (they're not load-bearing for discovery the way category pagination is).
  • Tag pages: keep a few, kill the rest. A tag used on three posts is a thin page; a tag used on sixty posts about a coherent topic is a landing page. Prune accordingly.
  • Check your /page/999/ behavior. Out-of-range page numbers should return 404, not render an empty page-1 clone. Most themes handle this; some infinite-scroll plugins break it.

How to tell if pagination is hurting you right now

Three checks, all free:

  1. Search Console → Indexing → Pages. Large counts under "Duplicate without user-selected canonical" or "Crawled — currently not indexed" concentrated in parameterized URLs point at facet/pagination sprawl. A healthy site's excluded list is dominated by intentional redirects and canonicals.
  2. Site search for deep items. Take five products or posts that live on page 4+ of their listing and search Google for them by exact title. If none are indexed, your deep pages aren't being crawled — check for canonicals-to-page-1, noindex, or JavaScript-only pagination, in that order of likelihood.
  3. Crawl your own site with any desktop crawler, JavaScript rendering off. Compare the number of products/posts it finds against what your CMS says exists. A sizable gap means discovery is broken somewhere, and pagination is suspect number one.

The short version

Paginated pages are infrastructure. Make them self-canonical, link them with real anchors, differentiate their titles mechanically, and stop there — no rel=next, no noindex by default, no canonical funnels to page 1. Put your actual ambition into the things pagination sprawl tells you to build: subcategories for oversized categories, real landing pages for filter combinations people search for, and a paginated fallback under any infinite scroll. None of this ranks a single page by itself. What it does is guarantee that everything you publish can be found, crawled, and judged on its merits — which is all technical SEO ever promises, and more than most long lists currently get.

Photo: RDNE Stock project on Pexels