Why it matters
Links shared in Slack, X, LinkedIn and iMessage render as a bare URL without an image, which sharply lowers click-through.
How to fix it
Add app/opengraph-image.tsx (generated 1200×630 with ImageResponse) or a static opengraph-image.png, and per-section images for key routes.
Example
import { ImageResponse } from 'next/og'
export const size = { width: 1200, height: 630 }
export default function OG() { return new ImageResponse(<div style={{ fontSize: 72 }}>Acme</div>, size) }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.
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.txtmissing-iconNo favicon / app iconmissing-llms-txtNo `/llms.txt`dynamic-metadata-streamingRequest-time `generateMetadata` without `htmlLimitedBots`missing-langRoot `<html>` without `lang`