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.
Medium because the defect deindexes deeper paginated content but does not affect the first page's rankings.
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}` } }
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 } }