Advanced 18 min readModule: Module 9: Metadata, OpenGraph & Dynamic SEO
Dynamic Metadata & Dynamic Sitemaps (sitemap.ts)
Generate dynamic SEO titles, descriptions, OpenGraph social cards, and XML sitemaps programmatically.
What You Will Learn in This Lesson
- Exporting static metadata objects in layout.tsx and page.tsx
- Generating dynamic metadata based on URL parameters with generateMetadata()
- Creating programmatic sitemap.ts and robots.ts for search indexing
Introduction & Core Concept
Next.js App Router features a unified Metadata API that replaces legacy Head tags with type-safe metadata definitions.
WHY DOES THIS MATTER IN THE REAL WORLD?
generateMetadata allows each course and lesson page to dynamically render customized titles and social share cards.
Dynamic generateMetadata API
typescripttypescript
12345678910export async function generateMetadata({ params }: { params: { slug: string } }) {const course = await getCourse(params.slug);return {title: `${course.title} | KWAS Academy`,description: course.tagline,openGraph: {images: [`https://kwas.dev/api/og?title=${course.title}`],},};}
Line-by-Line Technical Breakdown
1sitemap.ts exports an array of URL entries that Next.js automatically formats into XML.
Try It Yourself (Interactive Editor)
Modify the code in real-time and click Run to test live browser output and console logs.
Intelligent Code Runner & Live Sandbox[TYPESCRIPT]
TYPESCRIPT SOURCE EDITOR
Interactive Live CodeIndustry Best Practices & Professional Standards
- Always define a metadataBase in root layout.tsx to resolve absolute OpenGraph image URLs.
Lesson Summary & Core Takeaways
- The Metadata API delivers full search engine optimization and social preview integration.