Crawl the site to identify pages where the self-canonical URL, the URL Googlebot follows after redirects, and the hreflang href values all differ from each other
Align all three signals: the canonical URL in rel=canonical, the destination URL after any 301/308 redirects, and the href in hreflang annotations must all point to the same single canonical form
Check for cross-domain canonical conflicts where a page on domain-b.com has a canonical pointing to domain-a.com but domain-a.com does not link back or reference domain-b.com as an alternate
Remove or consolidate duplicate canonical signals in HTTP headers versus HTML meta tags; when both are present, the HTTP header takes precedence but having conflicting values in both locations confuses crawlers
Verify resolution in Search Console's URL Inspection by checking the Google-selected canonical versus the user-declared canonical and investigating any mismatch
Known gotchas
If Google ignores a declared canonical and selects a different URL as canonical, adding more canonical signals rarely fixes the problem; investigate why Google prefers the other URL (more inbound links, more crawl frequency, better content signals) and address the root cause
A 301 redirect from URL A to URL B implies canonicalization of B; placing a rel=canonical on URL A pointing back to URL A while also redirecting to B creates a conflict that Google resolves by preferring the redirect destination
Pagination pages should not self-canonicalize to the first page of a series; each pagination page should carry its own self-referencing canonical unless you explicitly want to consolidate all pagination traffic to the first page
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp