OGP(OpenGraphProtocol)を設定した
カードUIで表示されるようにOGPを設定する
はじめに
Twitter や他ウェブサイトで共有してもらった際にカードUIで表示されるように OGP を設定したので作業メモを残しておく。
OGPとは
OGP(OpenGraphProtocol)とは、ウェブページの共有時に表示される情報を設定するためのプロトコル。 <meta> タグを使って設定する。
設定方法
<head> タグ内に以下のように設定する。
<meta property="og:title" content="ページタイトル">
<meta property="og:description" content="ページの説明">
<meta property="og:type" content="website">
<meta property="og:url" content="ページURL">
<meta property="og:image" content="画像URL">
Metadata API を使って実装する
Next.js v13.2以降では SEO 改善として Metadata API が追加された。
Metadata API は head タグ内の meta タグや link タグを設定するものとして設計されている。
静的に設定する場合は metadata 変数を設定すれば良い。
export const metadata = {
title: 'ページタイトル',
...
...
}
動的に設定する場合は generateMetadata 関数を使う。
export async function generateMetadata({ params, searchParams }: PostProps): Promise<Metadata> {
return {
title: 'ページタイトル',
...
...
}
}
動的なパラメータは params から、GETパラメータが必要であれば searchParams から取得できる。
その他、基本的なAPIは Metadat API のドキュメントを参照するとだいたいわかる。
まとめ
OGP を設定することで、Twitter や他ウェブサイトで共有した際にカードUIで表示されるようになる。 Next.js v13.2 以降で提供されるようになった Metadata API を使って設定することで簡単に設定することが可能だ。