Skip to main content
Beta: Front-End Checklist is currently in beta. Some issues are still being fixed. Thanks for your patience.
SEOMedium

Use canonicals on paginated pages

Checks that paginated pages have proper canonicals

Utilities
Quick take
Typical fix time 15 min
  • Each paginated page (/page/2, /page/3) should self-canonicalize to its own URL
  • Do NOT canonicalize all paginated pages to page 1 — this is a common mistake
  • Google dropped support for rel=prev/next in 2019 — don't rely on it
  • Use consistent URL patterns for pagination (?page=2 or /page/2, never both)
  • Infinite scroll and load-more UIs still need crawlable paginated URLs or links
Why it matters: Incorrect pagination canonicalization can prevent pages 2, 3, etc. from being indexed, removing valuable content from search results and breaking user journeys from search queries that match content on later pages.

Rule Details

Pagination splits long content (blog archives, product grids, search results) across multiple URLs. Getting canonical tags right ensures that each page can be individually indexed, which is why pagination should be reviewed together with canonical-url rather than treated as a generic duplicate-content problem.

Code Example

<!-- ❌ WRONG: Paginated pages all canonicalize to page 1 -->
<!-- On /products?page=2: -->
<link rel="canonical" href="https://example.com/products" />
 
<!-- On /products?page=3: -->
<link rel="canonical" href="https://example.com/products" />

This tells Google that pages 2 and 3 are duplicates of page 1. Google stops indexing them. Products only found on page 3 become unreachable from search.

Why It Matters

Incorrect pagination canonicalization can prevent pages 2, 3, and later pages from being indexed. Google's pagination guidance (opens in new tab) makes it clear that later pages are not automatically duplicates of page 1.

Correct Implementation

<!-- ✅ Good: Each paginated page self-canonicalizes -->
 
<!-- On /products (page 1): -->
<link rel="canonical" href="https://example.com/products" />
 
<!-- On /products?page=2: -->
<link rel="canonical" href="https://example.com/products?page=2" />
 
<!-- On /products?page=3: -->
<link rel="canonical" href="https://example.com/products?page=3" />

URL Pattern Consistency

Choose one pagination pattern and use it exclusively:

✅ /blog?page=2    (query parameter — consistent)
✅ /blog/page/2   (path segment — consistent)
 
❌ /blog?page=2   on some pages
❌ /blog/page/2   on other pages  (inconsistent — creates duplicates)

Next.js Implementation

// app/blog/page.tsx
interface Props {
  searchParams: { page?: string }
}
 
export async function generateMetadata({ searchParams }: Props): Promise<Metadata> {
  const page = parseInt(searchParams.page || '1')
  const canonicalUrl = page === 1
    ? 'https://example.com/blog'
    : `https://example.com/blog?page=${page}`
 
  return {
    alternates: {
      canonical: canonicalUrl,
    },
  }
}

What About rel=prev/next?

Google announced in March 2019 that they no longer use rel="prev" and rel="next" link tags as a hint for pagination. The deprecation note in Google's Search blog (opens in new tab) is still the clearest reference for that change.

<!-- Google ignores these since 2019, but other crawlers may still use them -->
<link rel="prev" href="https://example.com/blog?page=1" />
<link rel="next" href="https://example.com/blog?page=3" />

Indexing Strategy

Not all paginated pages need to be indexed. Consider:

PageStrategy
Page 1Always index
Pages 2–5Index if content is unique and valuable
Pages 6+Consider noindex for very deep pagination
Filtered variantsOften noindex + canonical-url to base category
Don't noindex paginated pages unless intentional

Some CMS themes automatically add noindex to all paginated pages. Check your page 2+ templates explicitly — this is a common cause of category pages being partially deindexed.

Infinite Scroll Still Needs Crawlable Pagination

Infinite scroll is a UX enhancement, not a replacement for discoverable URLs. Provide real links such as /blog?page=2 or /blog/page/2 so crawlers and no-JS users can still reach later content.

<!-- Visible or fallback pagination links -->
<nav aria-label="Pagination">
  <a href="/blog?page=1">1</a>
  <a href="/blog?page=2">2</a>
  <a href="/blog?page=3">3</a>
</nav>

Exceptions

  • Necessary utility or compliance pages can be intentionally brief and should not be judged by the same editorial-depth expectations as ranking-focused content.
  • AI-assisted drafting is not a failure by itself; flag unsupported claims, missing editorial review, or low-originality output instead.
  • When a page has both trust-signal issues and crawl/index problems, make the page eligible to rank first and then improve the content quality signals.

Standards

  • Use these references as the standard for the final search-facing HTML, metadata, and crawl behavior.
  • Check the implementation against Google Search Central: Pagination best practices before treating the rule as satisfied.
  • Check the implementation against Google Blog: rel=prev/next deprecation before treating the rule as satisfied.

Verification

Automated Checks

  • Inspect rendered HTML and HTTP headers to confirm the expected metadata or crawlability signal is present.
  • Test the affected URL with Google Search Console or equivalent tooling where relevant.
  • Re-crawl a representative page set after deployment.

Manual Checks

  • Confirm the change does not create conflicting canonical-url, robots, or structured-data signals.
  • Disable JavaScript and confirm page 2+ content is still reachable through crawlable links or paginated URLs.

Use with AI

Copy these prompts to use with your AI assistant, or install the MCP server to use directly from Claude, Cursor, or Windsurf.

Check

Verify implementation

Find paginated page sequences (URLs with ?page=, /page/, /p/, or numbered suffixes). For each page, check the canonical tag. Verify that each page self-canonicalizes (page 2 canonical-url = page 2 URL). Flag any paginated page that incorrectly points canonical-url to page 1. If the UI uses infinite scroll or "load more", verify equivalent crawlable pagination links exist.

Fix

Auto-fix issues

Update canonical tags so each paginated page self-references. For /category?page=2, set <link rel='canonical' href='https://example.com/category?page=2' />. Remove any canonical pointing paginated pages to the first page unless those pages genuinely have duplicate content. Add crawlable paginated URLs or fallback links for infinite-scroll interfaces.

Explain

Learn more

Pagination canonical tags tell Google which URL is the preferred version of each page. Setting all paginated pages to canonical-url to page 1 tells Google that pages 2, 3, etc. are duplicates of page 1 — so Google stops indexing them. Content that only appears on page 3 (for example) then becomes unreachable from search.

Review

Code review

Identify paginated URL patterns (URLs with page=, /page/, /p/ parameters). For each paginated page beyond page 1, check the canonical tag. Flag any page 2+ that has a canonical pointing to page 1 (the base URL). Verify that page 1 has a self-referencing canonical. Check that pagination URL format is consistent (no mixing of ?page= and /page/). For JS-driven infinite scroll, verify there is still a crawlable path to page 2+ via real links or paginated URLs.

Sources

References used to support the guidance in this rule.

Further Reading

Tools and supplementary material for exploring the topic in more depth.

Screaming Frog SEO Spider Website Crawler

The industry leading website crawler for Windows, macOS and Ubuntu, trusted by thousands of SEOs and agencies worldwide for technical SEO site audits.

Screaming FrogGuide
Google Search Console
search.google.comGuide

Rules that often go hand-in-hand with this one.

Set canonical URLs for all pages

A canonical URL tag is present to prevent duplicate content issues.

SEO
Noindex in Sitemap

Checks for noindexed pages listed in sitemap

SEO
Limit unnecessary URL parameters

Checks for excessive URL parameters

SEO
Include indexable pages in your sitemap

Checks for canonical-url, indexable pages that are missing from the XML sitemap.

SEO

Was this rule helpful?

Your feedback helps improve rule quality. This stays internal for now.

Loading feedback...
0 / 385