Why it matters
Relative URLs in openGraph.images, alternates.canonical and file-based opengraph-image resolve against metadataBase. Without it Next falls back to localhost/VERCEL_URL, so previews and canonicals point to the wrong host.
How to fix it
Set metadataBase: new URL(site.url) in the root layout, with the production origin.
Example
export const metadata: Metadata = {
metadataBase: new URL('https://example.com'),
title: { default: 'Acme', template: '%s — Acme' },
}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.
will-change-static`will-change` applied statically to many elementsz-index-soupMany distinct z-index valueshardcoded-colorsHard-coded colors in components instead of tokensmissing-metadataPage has no `metadata` / `generateMetadata` and inherits only the root titlecanonical-in-root-layoutCanonical URL set in the root layoutog-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 sitemap