Why it matters
Without one, search engines and link unfurlers pick arbitrary page text for the snippet; agents also use it as the page summary.
How to fix it
Set a unique description per page via metadata/generateMetadata.
Example
export async function generateMetadata({ params }: Props): Promise<Metadata> {
const { slug } = await params
const post = await getPost(slug)
return { title: post.title, description: post.description }
}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.
viewportViewport meta missing, not device-width, or blocks zoomcharsetCharacter encoding not declared earlytitle-missingNo single non-empty <title> in <head>title-lengthTitle length outside 10–60 characters, or keyword-stuffedmeta-description-lengthMeta description length outside 50–160 charactersmetadata-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 fragment