Next.js Implementation
Open Graph & Metadata in Next.js (App Router Guide)
Next.js (v13+ App Router) provides a built-in Metadata API that automatically renders Open Graph, Twitter Cards, and canonical tags server-side.
Implementation Best Practices
- ✓Use export const metadata for static pages.
- ✓Use generateMetadata for dynamic routes with async data fetching.
- ✓Leverage @vercel/og inside app/api/og/route.tsx for edge dynamic image generation.
Next.js Code Example
// app/blog/[slug]/page.tsx
import type { Metadata } from 'next';
export async function generateMetadata({ params }): Promise<Metadata> {
const post = await getPost(params.slug);
return {
title: post.title,
description: post.excerpt,
openGraph: {
title: post.title,
description: post.excerpt,
url: `https://example.com/blog/${params.slug}`,
siteName: 'My Next.js App',
images: [{ url: post.ogImageUrl, width: 1200, height: 630 }],
type: 'article',
},
twitter: {
card: 'summary_large_image',
title: post.title,
description: post.excerpt,
images: [post.ogImageUrl],
},
};
}