# Paginated content uses rel=next/prev or canonicalizes to page 1

- **Pattern:** `ab-002471` (`seo-advanced.crawlability.pagination`)
- **Severity:** high
- **Lifecycle:** active
- **Last modified:** 2026-04-18
- **Canonical URL:** https://auditbuffet.com/patterns/ab-002471
- **License:** CC-BY-4.0 — attribute to AuditBuffet Pattern Catalog (https://auditbuffet.com/patterns/ab-002471)

## Why it matters

Paginated routes without `rel=next`/`rel=prev` or canonical consolidation get indexed as disconnected, competing URLs — page 2 of `/products` ranks against page 1 for the same keywords, splitting link equity and diluting ranking signals. Googlebot treats each paginated URL as a standalone thin page, which suppresses the whole listing's authority and can trigger soft-404 classification on sparse pages.

## Severity rationale

High because pagination errors split PageRank across competing URLs and suppress category-level rankings.

## Remediation

Emit pagination metadata on every listing route. In `app/products/page.tsx`, compute the canonical strategy based on the current page:

```tsx
export async function generateMetadata({ searchParams }) {
  const page = Number(searchParams.page) || 1
  return { alternates: { canonical: `/products?page=${page}` } }
}
```

Prefer a single canonicalized view-all page when the listing fits under 100 items.

## Detection

- **ID:** `pagination`
- **Severity:** `high`
- **What to look for:** Count all paginated routes (pages with `?page=2`, `?page=3`, etc. or `/page/2`, `/page/3` patterns). For each paginated route, check for `<link rel="next">` and `<link rel="prev">` tags, or canonical URLs pointing to page 1 for consolidation. Enumerate which strategy is used on each route.
- **Pass criteria:** At least 90% of paginated routes use a consistent pagination strategy (either rel=next/prev links or canonical to page 1). Users can navigate through all pages and crawlers understand the pagination structure. Report: "X of Y paginated routes have pagination markup."
- **Fail criteria:** Fewer than 90% of paginated routes have rel=next/prev or canonical strategy, or paginated pages are treated as separate indexable content without consolidation.
- **Skip (N/A) when:** The project has no paginated content (no routes with page parameters or pagination UI).
- **Detail on fail:** `"3 of 5 paginated routes lack rel=next/prev — /products?page=2, /products?page=3, /blog?page=2 are canonicalized separately"`.
- **Remediation:** Use pagination markup in `app/products/page.tsx` or whichever route handles pagination:

  ```tsx
  export const metadata = {
    other: {
      'rel-next': page < totalPages ? `https://yoursite.com/products?page=${page + 1}` : undefined,
      'rel-prev': page > 1 ? `https://yoursite.com/products?page=${page - 1}` : undefined,
    },
  }
  ```

Taxons: findability

HTML version: https://auditbuffet.com/patterns/ab-002471
