企業のWebサイトにおいて、「よくある質問と答え(FAQ)」は事業形態が BtoB か、BtoC かを問わず、よく利用されるコンテンツのひとつですし、Webサイト上にそのようなコンテンツを掲載している企業も多いのではないでしょうか。

Googleの検索エンジンは、この「よくある質問と答え(FAQ)」をマークアップするのに使用される構造化データ(FAQPage)に対応しており、適切にマークアップすることで検索結果にリッチリザルトを表示させることができます。今回は、この「よくある質問と答え(FAQ)」用の FAQPage 構造化データについて、JSON-LDによる実際のマークアップ例を含め解説してみようと思います。

Googleによる公式ドキュメント

Google検索エンジンがサポートする FAQPage 構造化データの形式については下記に公式ドキュメントがありますのであわせてご参照ください。

前提条件

「よくある質問と答え(FAQ)」といっても、今回解説する FAQPage 構造化データを使用できるのは、下記のような場合です。

  • 質問も答えもWebサイト運営者が掲載していて、Webサイト利用者(ユーザー)が回答を自由に投稿したりはできない「よくある質問と答え」のページなど
  • 質問はユーザーが投稿できるが、答えはWebサイト運営者が返信していて、他のユーザーが運営者とは別の回答を自由に投稿したりはできない製品サポートのページなど

つまり、あくまでWebサイト運営者が答えを掲載しているもので、所謂「Q&Aサイト」のような、ユーザーが投稿した質問に対して不特定多数の他ユーザーが回答を投稿で返していくような形式のWebサイトでは使用できません(このようなWebサイトで使用する構造化データは QAPage として別途用意されています)。

企業がコーポレートサイトなどで掲載する「よくある質問と答え(FAQ)」は通常、利用者や顧客から寄せられた質問を選定し、回答とセットにして掲載することがほとんどだと思いますので、今回解説する FAQPage 構造化データの利用が適切でしょう。

よくある質問と答えの構造化データマークアップ

今回は、仮に下記のような「質問」と「答え」のセット(回答付き質問)があると仮定して、FAQPage 構造化データによるマークアップを行います。

質問と答え(1つめ)

  • 質問:
    商品は全国に発送して頂けますか?
  • 答え:
    全国発送が可能です。ただし、地域によって送料が異なりますので詳しくは「送料一覧」をご確認ください。

質問と答え(2つめ)

  • 質問:
    返品は可能ですか?
  • 答え:
    商品の受け取りから7日以内にご連絡いただき、未使用の場合にのみ可能です。
    返品ルールについて詳しくは「返品について」をご確認ください。

また、答えの中の「送料一覧」「返品について」の部分にはリンクが張られているという前提でマークアップしてみましょう。

マークアップ例

前述した「回答付き質問」を実際に FAQPage 構造化データでマークアップすると下記のようになります。

<script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [

      {
        "@type": "Question",
        "name": "商品は全国に発送して頂けますか?",
        "acceptedAnswer": {
          "@type": "Answer",
        "text": "<p>全国発送が可能です。ただし、地域によって送料が異なりますので詳しくは「<a href=\"page-name.html\">送料一覧</a>」をご確認ください。</p>"
        }
      },

      {
        "@type": "Question",
        "name": "返品は可能ですか?",
        "acceptedAnswer": {
          "@type": "Answer",
        "text": "<p>商品の受け取りから7日以内にご連絡いただき、未使用の場合にのみ可能です。</p><p>返品ルールについて詳しくは「<a href=\"page-name.html\">返品について</a>」をご確認ください。</p>"
        }
      }

    ]
  }
</script>
各部解説

まず、必須の記述になりますが、まず schema.orgFAQPage タイプを使用することを宣言し、必須プロパティの mainEntity を記述します。各「回答付き質問」は mainEntity 内に記述していきます。

<script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [

      ...ここに質問と答えのセットが記述されます... 

    ]
  }
</script>

下記が実際の「回答付き質問」の定義です。質問には必ず回答が1つ、セットにならなければなりません。

{
  "@type": "Question",
  "name": "商品は全国に発送して頂けますか?",
  "acceptedAnswer": {
    "@type": "Answer",
  "text": "<p>全国発送が可能です。ただし、地域によって送料が異なりますので詳しくは「<a href=\"page-name.html\">送料一覧</a>」をご確認ください。</p>"
  }
}

まず、Question タイプを宣言した上で、name プロパティ(必須)に記述します。内容はテキスト(文字列値)です。

答えは、acceptedAnswer プロパティ(必須)内で Answer タイプを宣言し、name プロパティ(必須)に記述します。こちらも内容はテキストです。

Google の公式ドキュメントでは、HTML タグとして、<h1><h6><br><ol><ul><li><a><p><div><b><strong><i><em> の使用が可能という説明があります。

なお、JSONにおいて文字列値に「ダブルクォーテーション(")」をそのまま記述することはできませんので、必要に応じてバックスラッシュ(\)によるエスケープが必要です。

上記の「回答付き質問」を「1セット」として、複数の「回答付き質問」がある場合は、この記述をカンマ(,)区切りでつなげていきます。

マークアップの完了後は、Googleが用意している「リッチリザルトテスト ツール」を使用して、マークアップにエラーがないかを確認するとよいでしょう。


冒頭にも書きましたが、「よくある質問と答え(FAQ)」コンテンツは、企業Webサイトで頻繁に使用されるコンテンツです。特に自社独自のプロダクトをお持ちで、顧客サポートのために公式なFAQコンテンツを掲載しているような場合、構造化データによるマークアップを行うことで利用者の検索性が高まったり、コンテンツに対するリーチ獲得につながる可能性がありますので、うまく利用したいものです。

なお、実際のマークアップ例は、弊社Webサイトの「よくある質問と答え」ページでもご確認いただけます(該当ページのリッチリザルトテスト結果はこちら)。