The SEO Problem with Pagination
Pagination creates a set of interrelated challenges that affect nearly every aspect of technical SEO: crawl budget, duplicate content, link equity distribution, and content discoverability. For large e-commerce sites with thousands of category pages, or news publishers with decades of archived content, pagination is frequently the single largest source of technical SEO debt.
Google’s John Mueller confirmed in a 2021 Search Central session that pagination remains “one of the trickier areas of technical SEO” — not because the concepts are complex, but because the correct implementation varies significantly based on content type, site architecture, and business goals.
This guide covers every major pagination pattern used in 2026 and the optimal technical SEO approach for each.
The Deprecation of rel=prev/next
For years, rel=prev/next link attributes were the canonical solution for communicating paginated series to Google. In March 2019, Google’s Gary Illyes announced that Google had stopped using rel=prev/next as a hint for consolidating paginated content. Bing still supports rel=prev/next, but it should not be your primary pagination SEO strategy.
What replaced rel=prev/next? Google now recommends treating each paginated page as a standalone page with its own canonical URL, optimizing for the content on that page rather than relying on consolidation signals.
Numbered Pagination: Implementation Best Practices
URL Structure
For numbered pagination (page 1, page 2, page 3…), use one of these URL patterns consistently:
- Path-based (preferred): /category/page/2/, /category/page/3/ — clean, readable, crawlable
- Query parameter: /category/?page=2 — acceptable, ensure Google isn’t blocked from crawling query parameters in robots.txt
- Avoid: Numeric IDs without context (/category/2/), session parameters in URLs, JavaScript-generated URLs that aren’t server-rendered
Page 1 should always be accessible at the base URL (/category/) without a pagination parameter. If /category/page/1/ exists, it should canonical to /category/.
Canonical Tags for Paginated Pages
Each paginated page should carry a self-referencing canonical tag (canonical pointing to itself, not to page 1). Pointing all paginated page canonicals to page 1 is a common mistake that causes Googlebot to ignore pages 2+ as duplicates, preventing product/article discovery on those pages.
Correct implementation:
- /category/ → canonical: /category/
- /category/page/2/ → canonical: /category/page/2/
- /category/page/3/ → canonical: /category/page/3/
Navigation Link Structure
Pagination navigation links pass PageRank between pages in a series. Implement pagination navigation as standard anchor tags (<a href=””>) rather than JavaScript-driven buttons. Search engines follow anchor tag pagination links but often cannot execute JavaScript-dependent navigation.
Include: Previous page link, Next page link, First and last page links (for deep pagination), and visible page numbers with clickable links. Avoid: onclick handlers without href attributes, AJAX pagination without URL changes, “load more” buttons that append content without updating the URL.
XML Sitemap Strategy for Pagination
Include paginated pages in XML sitemaps only when they contain unique content (products, articles) that you want indexed. For e-commerce category pages with hundreds of pages, include all pages — Googlebot will use the sitemap to prioritize crawling. For filtered/faceted pages (sort by price, filter by color), generally exclude these from sitemaps to focus crawl budget on canonical category pages.
Infinite Scroll: The JavaScript Trap
Infinite scroll is popular from a UX perspective but is one of the most SEO-damaging patterns when implemented incorrectly. The core problem: search engine crawlers cannot execute JavaScript to load additional content in an infinite scroll feed. If your product listings or articles are loaded via JavaScript scroll events, Googlebot sees only the initial page load — typically the first 10-20 items.
The Component URL Solution
Google’s official recommendation for infinite scroll SEO is the “component URL” pattern, documented in Google Search Central. The implementation:
- Each scroll increment updates the URL (using History API pushState) to reflect the current content position: /products/ → /products/?page=2 → /products/?page=3
- Each incremented URL loads its content server-side (SSR) — when Googlebot fetches /products/?page=2 directly, it receives the page 2 content in the HTML response without JavaScript execution
- The infinite scroll behavior remains intact for users (no visible page breaks), while crawlers can access all content via URL-based requests
This requires server-side rendering (Next.js, Nuxt.js, or similar frameworks) or server-rendered pagination endpoints. Pure client-side React/Vue/Angular implementations without SSR are incompatible with this approach.
Alternative: Paired Pages
Google also supports “paired pages” for infinite scroll: provide a paginated equivalent of the infinite scroll content accessible via a link (often in the footer or via a toggle). This allows crawlers to access paginated HTML pages while users see infinite scroll.
Load More Button: The Middle Ground
“Load more” pagination (a button that appends additional items to the page) is more SEO-friendly than pure infinite scroll but still problematic if implemented without URL updates. The SEO requirements are the same as infinite scroll: each “load more” click should update the URL to a canonical URL that serves the complete current content server-side.
A commonly overlooked issue with load-more patterns: Googlebot may crawl and index an intermediate state (e.g., after 2 load-more clicks) as a unique page, creating duplicate content. Ensure all loaded states canonical to a defined URL or use noindex on dynamically-generated intermediate states.
E-Commerce Pagination: Facets and Filters
Faceted navigation (filter by size, color, price, brand) generates the most complex pagination SEO challenges on e-commerce sites. Each filter combination creates a unique URL, and a large product catalog with multiple filter dimensions can generate millions of URLs — the vast majority with thin content and no search demand.
The Canonical/Noindex Matrix
Apply this decision framework to faceted URLs:
- Canonical to category + nofollow links: Filter combinations with no search demand (e.g., /shoes/?color=blue&size=9&brand=nike&price=50-100) — most facet combinations fall here
- Self-canonical + indexable: Filter combinations with documented search demand (e.g., /shoes/nike/ — if “nike shoes” has search volume) — create dedicated landing pages for these
- Noindex + follow: Technical filter parameters (sort order, display format) that create duplicate content without serving new search intent
- Block in robots.txt: Pagination parameters that search engines should not crawl at all (e.g., AJAX page-load parameters that duplicate canonical content)
Crawl Budget Management
Google allocates a crawl budget to each site based on crawl demand (link popularity) and crawl capacity (server response times). For large e-commerce sites, faceted navigation routinely consumes 60-80% of crawl budget on parameter combinations that have no indexing value.
Measure crawl budget consumption: Google Search Console → Settings → Crawl Stats. If you see high crawl rates on parameter URLs, implement Google Search Console parameter handling (Settings → URL Parameters) to reduce crawl of low-value facet combinations.
Publisher and Blog Pagination
News publishers and blog archives face different pagination challenges than e-commerce. Archive pages (category pages, tag pages, author pages, date archives) often contain partial excerpts rather than full articles — technically thin content by themselves, but serving an important discovery function.
For blog/publisher pagination:
- Category archive pages: self-referencing canonicals, include in sitemap, ensure full article titles and excerpt text are HTML-rendered (not JavaScript-rendered)
- Tag pages: often noindexed due to thin content, but consider indexing high-volume tags that serve genuine topical search intent
- Author archive pages: index for known authors (real bylines with Google-Knowledge-Panel-level authority), noindex for system/default authors
- Date archives (/2024/01/): generally noindex — search engines rarely surface date-based archive pages in results for meaningful queries
Testing and Auditing Pagination SEO
Audit your pagination SEO implementation with these tools:
- Google Search Console URL Inspection: Test specific paginated URLs to verify Googlebot can render and access the content
- Screaming Frog: Crawl your site to identify pagination URL patterns, check canonical implementation, flag JavaScript-only pagination
- Log file analysis (Cloudflare Logs, server logs): Verify which paginated URLs Googlebot is actually crawling and at what frequency
- Chrome DevTools Network tab: Disable JavaScript and load paginated URLs — if content doesn’t appear, it’s invisible to crawlers
- Rich Results Test: Verify schema markup on paginated pages
Ready to dominate search and AI-driven discovery? Work with our team to build a strategy that delivers real results.