Skip to content
SEO Madmanby Adam Hafez
Free tool

Pagination and canonical conflict checker

Check a paginated sequence's URLs and canonicals against Google's guidance, and catch the common mistake: consolidating every page to page 1.

Runs entirely in your browser. Nothing you enter is uploaded, logged or stored.

Key takeaways

  • Google's documentation states plainly not to use the first page of a paginated sequence as the canonical page for every other page in it.
  • Each page in a sequence needs its own unique URL, because Google treats paginated pages as separate URLs rather than one combined page.
  • Google ignores URL fragments, so a next-page link that only differs after a hash mark may look already-crawled and never get followed.
  • Google stopped using rel=next and rel=prev tags to understand pagination; they are harmless to leave in but do nothing for Google today.
  • This tool only evaluates the URLs and canonicals you type in; it cannot detect a page missing from the sequence entirely.

What it takes

  • Every page's URL in a paginated sequence
  • Each page's declared canonical URL

More tools

All of them free, all of them browser-only.

Browse the tools

How to use it

  1. 1List every page in the sequenceAdd a row for page 1, 2, 3 and so on, in order, using the exact URL Google would fetch for each.
  2. 2Enter each page's declared canonicalThis is whatever your template currently outputs in that page's rel=canonical tag, not what you intend it to say.
  3. 3Read the unique URL checkGoogle's documentation treats each paginated URL as a separate page; a repeated URL across rows means two pages are competing for the same address.
  4. 4Read the URL fragment checkGoogle ignores everything after a
  5. 5Read the page-1-consolidation checkThis is the check that catches the real, common template bug, every later page canonicalizing to page 1 instead of to itself.
  6. 6Note whether rel=next/prev still matters hereTick the box if your templates still emit these tags; the tool explains why Google no longer reads them, even though other engines still might.

List a paginated sequence, every page’s URL and the canonical it declares, and this tool checks the set against Google’s own pagination documentation rather than against general SEO advice. Everything runs against the URLs you type; nothing is sent anywhere.

The mistake this tool exists to catch

A surprisingly common template bug looks correct at first glance: every page in a paginated sequence declares a canonical, so nothing looks broken in a quick manual check. The bug is that every one of those canonicals points at page 1. Google’s documentation addresses this directly: “Don’t use the first page of a paginated sequence as the canonical page. Instead, give each page its own canonical URL.” Consolidating to page 1 tells Google that pages 2 and onward are duplicates of page 1 rather than distinct pages of distinct results, and Google’s indexing pipeline can drop them from the index accordingly. The fix is almost always simpler than the bug: each page’s canonical should point at itself.

What changed, and what did not

Google’s documentation also states it no longer uses rel=next and rel=prev tags to understand pagination relationships, a change from its older guidance. Leaving those tags in your templates is not an error; other search engines may still read them, and Google’s crawler simply ignores them now. What still matters to Google, per the same documentation, is that each page has a distinct URL Google can fetch on its own, that pages link to each other with real crawlable anchors rather than JavaScript-only controls, and that filtered or resorted variants of a listing are kept out of the index with noindex or robots.txt rather than left to accumulate as separate, near-duplicate paginated sequences of their own.

Sources

  1. 1.Pagination, incremental page loading, and their impact on Google Search - Google Search CentralPrimary
  2. 2.Redirects and Google Search - Google Search Central
Tools

Hreflang XML sitemap generator

Build a sitemap with xhtml:link hreflang annotations for localized pages, with every alternate listed on every URL as Google's documentation requires.