monaka

Next.jsで記事のリッチリザルト対応をする(JSON-LD)

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サイト制作入門 高速で、安全で、運用しやすいサイトのつくりかた
Next.js+ヘッドレスCMSではじめる! かんたんモダンWebサイト制作入門 高速で、安全で、運用しやすいサイトのつくりかた
Amazon楽天市場Yahoo!ショッピング

関連記事