Skip to main content

Pagination is handled with proper SEO signals

ab-001685 · marketing-advanced-seo.technical-seo.pagination-handling
Severity: mediumactive

Why it matters

Canonicalizing every paginated page to page 1 instructs Google to drop pages 2+ from its index entirely, so deep archive content, older blog posts, and paginated product listings become invisible to search. Base URL and ?page=1 variants serving identical content without disambiguation split the signal between two URLs, and neither ranks as well as a single consolidated URL would.

Severity rationale

Medium because the defect deindexes deeper paginated content but does not affect the first page's rankings.

Remediation

Give every paginated page a self-referencing canonical — page 2 canonicals to its own URL, not page 1 — so each page is independently indexable. Redirect the ?page=1 variant to the base URL, or canonical both to the same form, so you never serve identical content from two URLs.

// app/blog/page.tsx
export const metadata = { alternates: { canonical: `https://yoursite.com/blog?page=${page}` } }

Detection

  • ID: marketing-advanced-seo.technical-seo.pagination-handling

  • Severity: medium

  • What to look for: Count all paginated routes. Enumerate which use rel=next/prev, canonical to page 1, or no pagination signals. Detect paginated routes by looking for route patterns with page parameters (/blog/page/[page], ?page=N), or components that render pagination UI (prev/next links, page number navigation). For detected pagination, check: (1) each paginated page has a canonical pointing to itself (not to page 1), (2) the first page (/blog) has a canonical pointing to itself (not /blog/page/1), (3) if using query string pagination, canonical tags handle the parameter consistently. Note: Google deprecated rel=prev/next in 2019; self-referencing canonicals are the current best practice.

  • Pass criteria: Paginated pages have self-referencing canonical tags. The base page URL and the first page variant either redirect to a canonical form or have canonical tags that align. At least 90% of paginated routes should have proper pagination signals.

  • Fail criteria: All paginated pages share the same canonical as the first page (pointing to page 1). OR the base URL and ?page=1 variant both serve identical content with no canonical disambiguation.

  • Skip (N/A) when: No paginated routes detected in the project.

  • Cross-reference: For crawl budget efficiency with pagination, see crawl-budget-efficiency.

  • Detail on fail: "Pagination detected but all paginated pages (/blog?page=2, ?page=3) have canonical pointing to /blog (page 1). This instructs search engines to ignore all paginated content beyond the first page."

  • Remediation: Each paginated page contains unique content and should be independently indexable. Use self-referencing canonicals: each page at /blog/page/2 should canonical to https://yoursite.com/blog/page/2, not to the first page. Ensure the base URL (/blog) and the first-page variant (/blog/page/1) resolve to the same canonical URL — either redirect one to the other, or give both a canonical pointing to the same URL form.

    // app/blog/page.tsx — pagination metadata
    export const metadata = { other: { 'rel-next': '/blog?page=2', 'rel-prev': page > 1 ? '/blog?page=' + (page-1) : undefined } }
    

Taxons

History