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 を使って設定することで簡単に設定することが可能だ。