HomeFix guides → Pagination uses self-canonical, no rel=next/prev

tech

How to fix: Pagination uses self-canonical, no rel=next/prev

Why this matters

Pagination handled badly is one of the biggest causes of index bloat. The classic mistakes: deprecated rel=next/prev tags (Google retired them in 2019), or paginated pages canonicalising back to page 1. Each paginated page should self-canonical, or the series should consolidate to one long page.

Background

Pagination handled badly is one of the biggest causes of index bloat. The classic mistakes: deprecated rel=next/prev tags (Google retired them 2019), or paginated pages canonicalising back to page 1. Each paginated page should self-canonical.

References

Google Search Central · Pagination guidance (post rel=next/prev deprecation)

How to fix

Code snippet for each stack we cover. Pick the one matching your server / framework.

nginx
No server config — application-layer fix.
apache
Same.
cloudflare
No edge config.
wordpress
Yoast / RankMath: ensure paginated pages get self-referencing canonical (default behaviour). Remove any rel=next/prev meta from theme functions.php.
flask
Render <link rel="canonical" href="..."> per paginated page pointing at itself, not page 1.
express
Same.
rails
Same — use will_paginate or kaminari with self-canonical helper.

Verify it's working

View source on page 2 of a paginated series. Canonical should point at page 2, not page 1. No rel=next or rel=prev links should exist.

Want to know if your site has this issue?

Run a free 53-check audit — security, GDPR, NIS2, and technical SEO.

Audit my site →