foundation

Metadata

Generate titles, descriptions, Open Graph data, canonical links, and route-specific metadata safely.

The Metadata API in App Router generates `<title>`, descriptions, Open Graph, Twitter cards, robots, and canonical links from static exports or `generateMetadata` async functions per route.

					export async function generateMetadata({ params }: { params: { slug: string } }) {
  const post = await getPost(params.slug);
  return { title: post.title, description: post.summary, alternates: { canonical: post.url } };
}
				

Dynamic metadata must not leak private data into HTML for unauthorized viewers.

On interviews: static versus dynamic metadata, canonical URLs, and social preview debugging.

Common pitfalls: duplicate titles across routes, missing OG images, and client-only title updates for SEO-critical pages.

The trade-off is build-time simplicity versus per-request metadata cost.

Checklist:

  • Unique title and description per route.
  • Canonical for duplicate paths.
  • OG image with stable absolute URL.
  • generateMetadata respects auth scope.