Les balises OG n'influent pas sur le classement, mais elles façonnent l'aspect d'un lien sur LinkedIn, Slack, Telegram ou X et peuvent influer sur les clics. La Metadata API s'en charge :
export const metadata: Metadata = {
openGraph: {
title: "Checklist SEO pour Next.js",
description: "Chaque couche du SEO dans l'App Router.",
type: "article",
images: [{ url: "/og/next-seo-checklist.png", width: 1200, height: 630 }],
},
twitter: {
card: "summary_large_image",
},
};
Une fonction sous-estimée : les images OG générées. Placez un fichier opengraph-image.tsx à côté de n'importe quelle route et Next.js rendra une image 1200×630 en edge, sans graphiste pour chaque article :
// app/blog/[slug]/opengraph-image.tsx
import { ImageResponse } from "next/og";
export const size = { width: 1200, height: 630 };
export const contentType = "image/png";
export default async function OgImage({ params }) {
const post = await getPost(params.slug);
return new ImageResponse(
(
<div
style={{
display: "flex",
flexDirection: "column",
width: "100%",
height: "100%",
justifyContent: "center",
padding: 80,
background: "#0a0a0a",
color: "#fff",
}}
>
<div style={{ fontSize: 64, fontWeight: 700 }}>{post.title}</div>
<div style={{ fontSize: 28, marginTop: 24, color: "#a1a1aa" }}>
example.com/blog
</div>
</div>
),
size,
);
}
Checklist :
- OG title/description/image sur chaque page qui mérite d'être partagée
- Image 1200×630 ; texte lisible à la taille d'une miniature
-
twitter.cardréglé sursummary_large_image - Aperçu vérifié sur opengraph.xyz ou LinkedIn Post Inspector
