Open Graph Tags i Next.js: The 2026 Developer Guide
Er du i tvivl om dine Next.js OG-tags er korrekte?
Tjek dine Open Graph-tags gratis med Proovd — indsæt en URL og se præcis, hvordan den ser ud på X, LinkedIn, Slack, Discord, WhatsApp og Reddit.
Hurtigt svar
- Next.js 13+ bruger Metadata API til OG-tags
- Statiske sider: eksporter
metadataobjekt - Dynamiske sider: brug
generateMetadata() - Dynamiske OG-billeder: brug
@vercel/og
Next.js App Router — Statiske metadata
I Next.js 13+ (App Router) er den enkleste måde at indstille OG-tags på metadata-eksporten i dit layout eller sidefil:
export const metadata = {
title: 'My Next.js App',
description: 'A Next.js app with OG tags',
openGraph: {
title: 'My Next.js App',
description: 'A Next.js app with OG tags',
images: ['https://yoursite.com/og-image.jpg'],
type: 'website',
},
twitter: {
card: 'summary_large_image',
title: 'My Next.js App',
description: 'A Next.js app with OG tags',
images: ['https://yoursite.com/og-image.jpg'],
},
};
Dette genererer automatisk de korrekte tags på din side . Next.js klarer resten.
Next.js App-router — Dynamiske metadata
For dynamiske sider (blogindlæg, produktsider), brug generateMetadata():
import { notFound } from 'next/navigation';
import { getPost } from '@/lib/posts';
export async function generateMetadata({ params }) {
const post = await getPost(params.slug);
if (!post) notFound();
return {
title: post.title,
description: post.excerpt,
openGraph: {
title: post.title,
description: post.excerpt,
images: [post.coverImage],
type: 'article',
publishedTime: post.date,
authors: [post.author],
},
twitter: {
card: 'summary_large_image',
title: post.title,
description: post.excerpt,
images: [post.coverImage],
},
};
}
Dynamiske OG-billeder med @vercel/og
Brug @vercel/og til brugerdefinerede OG-billeder (med dine mærkefarver, indlægstitler osv.):
// app/api/og/route.ts
import { ImageResponse } from '@vercel/og';
export function GET(request: Request) {
const { searchParams } = new URL(request.url);
const title = searchParams.get('title') || 'Default Title';
return new ImageResponse(
(
{title}
),
{
width: 1200,
height: 630,
}
);
}
Henvis derefter til denne API-rute i dine metadata:
export async function generateMetadata({ params }) {
const post = await getPost(params.slug);
return {
openGraph: {
images: [`https://yoursite.com/api/og?title=${encodeURIComponent(post.title)}`],
},
twitter: {
images: [`https://yoursite.com/api/og?title=${encodeURIComponent(post.title)}`],
},
};
}
Next.js Pages Router
Hvis du bruger den ældre Pages Router, skal du bruge next/head eller next-seo-pakken:
import Head from 'next/head';
export default function PostPage() {
return (
<Head>
<meta property="og:title" content={post.title} />
<meta property="og:description" content={post.excerpt} />
<meta property="og:image" content={post.coverImage} />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={post.title} />
<meta name="twitter:image" content={post.coverImage} />
</Head>
);
}
Eller brug next-seo til en renere API:
import { NextSeo } from 'next-seo';
<NextSeo
title={post.title}
description={post.excerpt}
openGraph={{
title: post.title,
description: post.excerpt,
images: [{ url: post.coverImage }],
type: 'article',
}}
twitter={{
type: 'summary_large_image',
}}
/>
Tjekliste til hurtig rettelse
- Brug Metadata API til statiske sider
- Brug
generateMetadata()til dynamiske sider - Indstil både
openGraphogtwitteregenskaber - Brug
@vercel/ogtil dynamiske OG-billeder - Test med Proovd for at verificere på alle platforme
Ofte stillede spørgsmål
Gengiver Next.js automatisk OG-tags i HTML?
Ja. Next.js injicerer metadataene som -tags i den server-renderede HTML, så crawlere kan se dem uden JavaScript.
Kan jeg bruge dynamiske OG-billeder med Vercel Edge-funktioner?
Ja. @vercel/og runs on Vercel Edge and generates images on-the-fly. The image URL is referenced in your metadata, and platforms fetch it when they crawl your page.
Relaterede artikler
Tjek dine Open Graph-tags gratis med Proovd — indsæt en URL og se forhåndsvisningen på X, LinkedIn, Slack, Discord, WhatsApp og Reddit.