Open Graph Tag in Next.js: Guida per sviluppatori 2026
Non sei sicuro che i tuoi tag OG Next.js siano corretti?
Controlla gratuitamente i tuoi tag Open Graph con Proovd: incolla un URL e vedi esattamente come appare su X, LinkedIn, Slack, Discord, WhatsApp e Reddit.
Risposta rapida
- Next.js 13+ utilizza l'API dei metadati per i tag OG
- Pagine statiche: esporta
metadataoggetto - Pagine dinamiche: usa
generateMetadata() - Immagini OG dinamiche: usa
@vercel/og
Next.js Router app: metadati statici
In Next.js 13+ (App Router), il modo più semplice per impostare i tag OG è l'esportazione metadata nel layout o nel file di pagina:
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'],
},
};
Questo genera automaticamente i tag corretti nella tua pagina . Next.js fa il resto.
Next.js Router app: metadati dinamici
Per le pagine dinamiche (post di blog, pagine di prodotti), utilizza 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],
},
};
}
Immagini OG dinamiche con @vercel/og
Per le immagini OG personalizzate (con i colori del marchio, i titoli dei post, ecc.), utilizza @vercel/og:
// 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,
}
);
}
Quindi fai riferimento a questo percorso API nei tuoi metadati:
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 Router di pagine
Se stai utilizzando il vecchio Pages Router, usa next/head o il pacchetto next-seo:
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>
);
}
Oppure usa next-seo per un'API più pulita:
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',
}}
/>
Elenco di controllo per la correzione rapida
- Utilizza l'API dei metadati per le pagine statiche
- Utilizza
generateMetadata()per le pagine dinamiche - Imposta entrambe le proprietà
openGraphetwitter - Utilizza
@vercel/ogper immagini OG dinamiche - Prova con Proovd per verificare su tutte le piattaforme
Domande frequenti
Next.js esegue automaticamente il rendering dei tag OG nell'HTML?
SÌ. Next.js inserisce i metadati come tag nell'HTML renderizzato dal server, in modo che i crawler li vedano senza JavaScript.
Posso utilizzare immagini OG dinamiche con Vercel Edge Functions?
SÌ. @vercel/og funziona su Vercel Edge e genera immagini al volo. L'URL dell'immagine viene fatto riferimento nei tuoi metadati e le piattaforme lo recuperano quando eseguono la scansione della tua pagina.
Articoli correlati
Verifica i tuoi Next.js tag OG su tutte le piattaforme
Controlla gratuitamente i tuoi tag Open Graph con Proovd: incolla un URL e visualizza l'anteprima su X, LinkedIn, Slack, Discord, WhatsApp e Reddit.