Canonical tags for parameters, languages and pagination
Canonical indicates the preferred version of duplicate or very similar content; it is a signal, not a command.
On this page
Direct answer
Canonical indicates the preferred version of duplicate or very similar content; it is a signal, not a command. Consolidate tracking variants, assess content-changing parameters separately, use language-appropriate canonicals, and do not point all pagination to page one.
When to use
The same content has multiple addresses or a template emits incorrect canonicals.
Step by step
Separate duplicates from distinct content
Inventory scheme, host, trailing slash, parameters, languages, and page numbers. Tracking often leaves content unchanged; sorting, filtering, and pagination need content-aware decisions.
Align page signals
Use a consistent absolute canonical and align links, redirects, hreflang, and sitemap. Avoid wrong languages, missing pages, unpublished content, or a site-wide homepage canonical.
Check pagination and selected canonicals
Use distinct canonicals and crawlable links for pagination with distinct content. Compare declared and selected versions in inspection, investigating duplicate content or conflicting signals.
Worked example
Hypothetical exercise, not a real performance claim.
/articles?page=2 shows different entries and generally needs its own canonical. /article?utm_campaign=test may canonicalize to the clean article URL if only tracking differs. These are different decisions.
Action checklist
Reusable templates
Canonical decision table
Candidate URL and content equivalence:
Parameter / language / pagination meaning:
Preferred URL and reason:
HTML, internal links, sitemap, redirects:
Declared and selected versions:
Conflict and verification:
Pitfalls
Canonical does not replace authorization, noindex, or redirects. Check the selected version and avoid disclosing private URLs in metadata.
Related guides
-
How should a multilingual site handle URLs, translation, and switching?
-
What are the different roles of robots.txt, noindex, and authorization?