Why it matters
Contradictory signals (canonical → redirect, canonical → noindex page, canonical chains, noindex + cross canonical) make Google ignore the canonical and choose its own.
How to fix it
Make the canonical target a 200, indexable, self-canonical URL, and don't combine noindex with a cross-page canonical.
References
More seo rules
void seo reports 60 rules in this category. What search engines need from the raw response: status codes, titles and descriptions in <head>, self-referencing canonicals, one h1, crawlable links, Open Graph, icons, robots.txt and a sitemap with real dates.
metadata-in-bodyCrawler receives <title>/canonical/description inside <body> (Next.js streaming metadata)canonical-missingNo single rel=canonical in <head>canonical-invalidCanonical URL is relative or contains a fragmentcanonical-brokenCanonical points to a URL that returns 4xx/5xxcanonical-not-selfCanonical points to a different URLhead-js-mutationJavaScript changes canonical, robots, title or description after loadh1-countPage doesn't have exactly one visible <h1> in the server HTMLh1-title-mismatch<h1> and <title> share little wording