Next.jsで記事のリッチリザルト対応をする(JSON-LD)
2024/10/17このページはPRを含みます
Next.jsで構築したサイトでリッチリザルト対応した際の備忘録。本サイトは「記事」と「パンくずリスト」の2つを導入している。本ページでは「記事」についてまとめる。「パンくずリスト」のリッチリザルト対応についてはこちらを参照してほしい。
articleコンポーネントを改修する
今回、「記事」を表示しているページにリッチリザルト対応したいと思うので、articleコンポーネントに手を入れる。まずは以下を追加した。それぞれmicroCMSからデータを取得して、ページごとのdataが入るようにしている
// JSON-LDデータを構築
const jsonLd = {
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": data.title,
"image": data.thumbnail?.url,
"datePublished": data.publishedAt ?? data.createdAt,
"dateModified": data.updatedAt,
"author": {
"@type": "Person",
"name": "著者名" // 適宜変更してください
},
"publisher": {
"@type": "Organization",
"name": "サイト名", // 適宜変更してください
"logo": {
"@type": "ImageObject",
"url": "ロゴのURL" // 適宜変更してください
}
},
"description": data.description, // 記事の説明
"articleBody": mainContent, // 記事の本文
"mainEntityOfPage": {
"@type": "WebPage",
"@id": `https://yoursite.com/blog/${data.id}` // 記事のURL
}
};
ここで取得した情報をあとは埋め込むだけ。自分の場合は以下のようにした。(body内にいれている)
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>
あとはpush、デプロイをするだけ。
リッチリザルトテストをする
問題なく動作するかをテストしてみた。リッチリザルトテストというものがある。ページのURL、またはコードを入力するとチェックしてもらえる。実際にやってみたところ、以下のように作り込んだ通りになった。
まとめ
リッチリザルト対応をすれば、検索エンジン側で理解しやすくなるようだ。これからサイトやブログを作るにあたって、設定しておいて損はないだろう。
参考にしたページ
Next.js+ヘッドレスCMSではじめる! かんたんモダンWebサイト制作入門 高速で、安全で、運用しやすいサイトのつくりかた