Separate the declared and selected URL
Google combines signals including redirects, annotations and sitemaps. The site’s declared canonical can differ from the engine’s selection. Choose a representative, accessible destination matching the content, without a URL fragment.
| Signal | Role | Limitation |
|---|---|---|
| Permanent redirect | Identify a destination and take the visit there. | Use for an appropriate move or retirement. |
| rel="canonical" | Declare the preferred version. | Does not force selection or move the visit. |
| Sitemap | List preferred URLs. | Weaker signal than redirects or annotations. |
| URL Inspection | Compare declaration and observed selection. | An observed state can change. |
Remove contradictory signals
- Check rendered HTML and any HTTP headers. Avoid competing destinations; use an absolute URL and a self-reference on the preferred page.
- Point internal links and the sitemap to the same version. Do not use robots.txt or noindex as a canonical-selection mechanism.
- For translations, retain a same-language canonical where that version exists. Check hreflang mappings and redirect paths too.
Observe after a change
Check a representative sample in URL Inspection and indexing reports after recrawling. Chains, removed destinations or different content can contradict the intent. Canonicalization replaces neither access control nor a removal decision.
Primary references
Align signals around a preferred URL
A canonical expresses consolidation preference; it is not access control. Check that target, sitemap and internal links agree and that versions are sufficiently equivalent. A filter producing distinct content is not necessarily a simple duplicate.
- Check that the target is reachable and relevant.
- Avoid conflicting canonical targets across templates.
- Inspect parameter variants and language editions.
Does canonical markup force the displayed version?
It is a signal, not a guarantee. The engine may select another version; inspect its choice and contradictory signals before changing markup again.
Primary reference: Google Search Central — Canonical URLs. Related method: read the practical guide.
Canonicalize genuinely distinct pages appropriately
Page two showing different records is not a copy of page one merely because the template matches. Examine content and URL purpose before consolidating states; global canonicalization can hide deeper items.
- Compare the items displayed on each page in the series.
- Use self-canonical URLs for distinct paginated pages following Google guidance.
- Handle ordering, filters and actual content duplicates separately.
Acceptance case to reproduce
Fictional example: these inputs describe no customer or observed result.
View case inputs
{
"page_2": "/catalog?page=2",
"canonical": "/catalog",
"next_link": "<button>More</button>"
}Expected decision
Page 2 needs its own canonical and crawlable href links to subsequent pages.
Verification procedure
- Record each page’s URL, canonical and links.
- Reach subsequent content without a JavaScript button.
- Keep crawlable href links and the self-canonical. Open each URL directly and compare displayed items; a different address repeating the first page does not validate continuation.
Google Search Central — Pagination and incremental page loading
Primary reference: Google Search Central — Pagination and incremental page loading. Related method: read the practical guide.
