Why it matters
Metadata is inherited, so a canonical in the root layout makes every page that doesn't override it declare itself a duplicate of that URL. Google then drops those pages from the index.
How to fix it
Remove alternates.canonical from the root layout and set it per page (alternates: { canonical: '/pricing' }).
Example
// app/pricing/page.tsx
export const metadata = { alternates: { canonical: '/pricing' } }References
More lint rules
void lint reports 67 rules in this category. Static source checks with no browser: Tailwind v4 silent failures, Next.js 16 API traps, React render-body bugs, accessibility markup, SEO files and motion hygiene.
z-index-soupMany distinct z-index valueshardcoded-colorsHard-coded colors in components instead of tokensmissing-metadataPage has no `metadata` / `generateMetadata` and inherits only the root titlemissing-metadata-baseRoot layout metadata has no `metadataBase`og-merge-drops-parentPage `openGraph` replaces the layout's (shallow merge drops images/siteName)not-found-in-suspense`notFound()`/`redirect()` inside a component rendered under `<Suspense>`missing-sitemapNo sitemapmissing-robotsNo robots.txt