Q&A(QAPage)の構造化データ

質問と回答のリッチリザルトのイラスト

Q&A ページとは、1 つの質問の後にその質問に対する回答が続く、質問と回答の形式のデータを含むウェブページです。質問とその回答から構成されるコンテンツでは、schema.orgQAPageQuestionAnswer の各タイプでデータをマークアップできます。

適切にマークアップされたページは、検索結果ページにリッチリザルトを表示できるようになります。リッチリザルトを表示できるということは、そのページにとって、検索結果ページから適切なユーザーにリーチできることを意味します。 たとえば、「USB ポートから抜けなくなったケーブルを外す方法」というユーザーのクエリがあったとします。この質問に対する答えがページにマークアップされていれば、リッチリザルトが表示される場合があります。

Q&A ページをマークアップすることで、コンテンツをリッチリザルトで表示できるだけでなく、このページに対して Google が生成するスニペットの質が向上するという利点もあります。リッチリザルトが表示されない場合、回答のコンテンツが基本的な検索結果の形式で表示されることがあります。

構造化データを追加する方法

構造化データは、ページに関する情報を提供し、ページ コンテンツを分類するための標準化されたデータ形式です。構造化データを初めて使用する場合は、構造化データの仕組みについてをご覧ください。

構造化データの作成、テスト、リリースの概要は次のとおりです。ウェブページに構造化データを追加するための手順ガイドについては、構造化データの Codelab をご覧ください。

  1. 必須プロパティを追加します。使用している形式に基づいて、ページ上の構造化データを挿入する場所をご確認ください。
  2. ガイドラインに従います。
  3. リッチリザルト テストでコードを検証し、重大なエラーを修正します。ツールで報告される重大ではない問題の修正も検討してください。構造化データの品質向上に役立ちます(ただし、リッチリザルトの対象となるために必ずしも必要というわけではありません)。
  4. 構造化データが含まれているページを数ページ導入し、URL 検査ツールを使用して、Google でページがどのように表示されるかをテストします。Google がページにアクセスでき、robots.txt ファイル、noindex タグ、ログイン要件によってページがブロックされていないことを確認します。ページが正常に表示されたら、Google に URL の再クロールを依頼できます。
  5. 今後の変更について Google に継続して情報を提供するために、サイトマップを送信することをおすすめします。これは、Search Console Sitemap API で自動化できます。

次のマークアップの例には、JSON-LD 形式の QAPageQuestionAnswer の各タイプの定義が含まれています。

JSON-LD

<html>
  <head>
    <title>How many ounces are there in a pound?</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "QAPage",
      "mainEntity": {
        "@type": "Question",
        "name": "How many ounces are there in a pound?",
        "text": "I have taken up a new interest in baking and keep running across directions in ounces and pounds. I have to translate between them and was wondering how many ounces are in a pound?",
        "answerCount": 3,
        "upvoteCount": 26,
        "datePublished": "2024-02-14T15:34-05:00",
        "author": {
          "@type": "Person",
          "name": "Mary Stone",
          "url": "https://example.com/profiles/mary-stone"
        },
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "1 pound (lb) is equal to 16 ounces (oz).",
          "image": "https://example.com/images/conversion-chart.jpg",
          "upvoteCount": 1337,
          "url": "https://example.com/question1#acceptedAnswer",
          "datePublished": "2024-02-14T16:34-05:00",
          "author": {
            "@type": "Person",
            "name": "Julius Fernandez",
            "url": "https://example.com/profiles/julius-fernandez"
          }
        },
        "suggestedAnswer": [
          {
            "@type": "Answer",
            "text": "Are you looking for ounces or fluid ounces? If you are looking for fluid ounces there are 15.34 fluid ounces in a pound of water.",
            "upvoteCount": 42,
            "url": "https://example.com/question1#suggestedAnswer1",
            "datePublished": "2024-02-14T15:39-05:00",
            "author": {
              "@type": "Person",
              "name": "Kara Weber",
              "url": "https://example.com/profiles/kara-weber"
            },
            "comment": {
              "@type": "Comment",
              "text": "I'm looking for ounces, not fluid ounces.",
              "datePublished": "2024-02-14T15:40-05:00",
              "author": {
                "@type": "Person",
                "name": "Mary Stone",
                "url": "https://example.com/profiles/mary-stone"
              }
            }
          }, {
            "@type": "Answer",
            "text": " I can't remember exactly, but I think 18 ounces in a lb. You might want to double check that.",
            "upvoteCount": 0,
            "url": "https://example.com/question1#suggestedAnswer2",
            "datePublished": "2024-02-14T16:02-05:00",
            "author": {
              "@type": "Person",
              "name": "Joe Cobb",
              "url": "https://example.com/profiles/joe-cobb"
            }
          }
        ]
      }
    }
    </script>
  </head>
  <body>
  </body>
</html>
microdata

<html>
<body itemscope itemtype="https://schema.org/QAPage">
<div itemprop="mainEntity" itemscope itemtype="https://schema.org/Question">
   <h2 itemprop="name">How many ounces are there in a pound?</h2>
   <div itemprop="upvoteCount">52</div>
   <div itemprop="text">I have taken up a new interest in baking and keep running across directions in ounces and pounds. I have to translate between them and was wondering how many ounces are in a pound?</div>
<div>
    <div><span itemprop="answerCount">3</span> answers</div>
    <div><span itemprop="upvoteCount">26</span> votes</div>
    <div itemprop="acceptedAnswer" itemscope itemtype="https://schema.org/Answer">
       <div itemprop="upvoteCount">1337</div>
       <div itemprop="text">
       1 pound (lb) is equal to 16 ounces (oz).
       </div>
      <a itemprop="url" href="https://example.com/question1#acceptedAnswer">Answer Link</a>
      </div>
    <div itemprop="suggestedAnswer" itemscope itemtype="https://schema.org/Answer">
       <div itemprop="upvoteCount">42</div>
       <div itemprop="text">
       Are you looking for ounces or fluid ounces? If you are looking for fluid ounces there are 15.34 fluid ounces in a pound of water.
       </div>
       <a itemprop="url" href="https://example.com/question1#suggestedAnswer1">Answer Link</a>
     </div>
     <div itemprop="suggestedAnswer" itemscope itemtype="https://schema.org/Answer">
       <div itemprop="upvoteCount">0</div>
       <div itemprop="text">
       I can't remember exactly, but I think 18 ounces in a lb. You might want to double check that.
       </div>
       <a itemprop="url" href="https://example.com/question1#suggestedAnswer2">Answer Link</a>
    </div>
</div>
</div>
</body>
</html>

ガイドライン

Q&A ページがリッチリザルトで表示されるようにするには、以下のガイドラインを遵守する必要があります。

コンテンツ ガイドライン

  • 1 つの質問の後にその質問に対する回答が続く、質問と回答の形式の情報が含まれているページの場合は、QAPage マークアップのみを使用します。
  • ユーザーは質問に対する回答を送信できなければなりません。質問に対する回答が 1 つしかなく、ユーザーが他の回答を追加できないコンテンツの場合は、QAPage マークアップの代わりに FAQPage を使用します。次に例を示します。

    使用できる場合の例:

    • 1 つの質問に対してユーザーが複数の回答を送信できるフォーラム ページ
    • 1 つの質問に対して複数のユーザーが回答を送信できる製品サポートページ

    使用できない場合の例:

    • サイト運営者が作成し、ユーザーが他の回答を送信できない FAQ ページ
    • 1 つのページに複数のユーザーが質問と回答を送信できる製品サポートページ
    • 質問と回答で構成される利用ガイド
    • 質問と回答で構成されるブログ記事
    • 質問と回答で構成されるエッセイ
  • すべてのコンテンツが対象でない限り、サイトやフォーラムのすべてのページに QAPage マークアップを適用しないでください。たとえば、あるフォーラムに多くの質問が投稿されている場合、そのページはマークアップの対象になりますが、そのフォーラムに質問以外のページもある場合、そのページはマークアップの対象になりません。
  • FAQ ページなど、1 つのページに複数の質問が含まれるページに QAPage マークアップを使用しないでください。QAPage マークアップは、1 つの質問とその回答に焦点を当てたページに使用します。
  • QAPage マークアップを宣伝目的で使用しないでください。
  • Question に質問のテキスト全体が含まれるようにし、各 Answer に回答のテキスト全体が含まれるようにします。
  • Answer マークアップは、質問に対するコメントや他の回答に対するコメントに使用するのではなく、質問に対する回答に使用します。そういったタイプのコンテンツには、代わりに comment プロパティや Comment タイプを使用します。
  • 質問と回答のコンテンツに、猥褻または冒とく的なコンテンツ、露骨な性表現を含むコンテンツ、暴力的な描写を含むコンテンツ、危険または違法な行為を助長するコンテンツ、差別や中傷にあたるコンテンツが含まれる場合、リッチリザルトとして表示されない可能性があります。
  • 教育関連の Q&A ページは、ユーザーが提出した課題の正解を掲載することを主な目的としており、Q&A カルーセル エクスペリエンスの対象となる場合があります。これらのページには、ユーザーに代わって課題に精通している社内の専門家が提供または選択した回答が 1 つだけ表示される場合があります。
    : ユーザーが質問を 1 つ投稿し、上位の回答が専門家によって選択された教育ページ。

構造化データタイプの定義

このセクションでは、QAPage に関連する構造化データタイプについて説明します。

コンテンツがリッチリザルトとして表示されるようにするには、必須プロパティを含める必要があります。また、推奨プロパティを使用することで構造化データにより多くの情報を追加でき、ユーザー エクスペリエンスを向上させることができます。

Google のリッチリザルト テストを使用すると、構造化データの検証とプレビューが行えます。

QAPage

QAPage タイプは、ページの焦点が特定の質問とその回答に当てられていることを示します。Google では、QAPage でマークアップされたページでのみ、Question 構造化データを使用します。QAPage タイプの定義は各ページで 1 回だけ行う必要があります。

QAPage の完全な定義は https://schema.org/QAPage で確認できます。

次の表で、Google 検索で使用される QAPage タイプのプロパティについて説明します。

必須プロパティ

mainEntity

Question

QAPage 項目の mainEntity プロパティに Q&A ページの Question をネストする必要があります。

Question

Question タイプでは、Q&A ページで回答する質問を定義し、その質問に対する回答(ある場合)を含めます。Q&A ページには 1 つの Question タイプが必要で、schema.org/QAPagemainEntity プロパティにネストします。Question タイプの定義は各ページで 1 回だけ行う必要があります。

Question の完全な定義は https://schema.org/Question で確認できます。Google がサポートするプロパティは、次のとおりです。

必須プロパティ

answerCount

Integer

質問に対する回答の総数。たとえば、ページ分けにより 15 個の回答のうち最初の 10 個のみがマークアップされている場合でも、この値は 15 になります。質問に回答がない場合は 0 になります。

acceptedAnswer または suggestedAnswer Answer

リッチリザルトの対象となるには、質問に対する回答が少なくとも 1 つ(acceptedAnswer または suggestedAnswer)存在する必要があります。しかし、質問が投稿された当初は回答が存在しない可能性があります。回答がない質問については、answerCount プロパティを 0 に設定します。回答がない質問はリッチリザルトの対象になりません。

acceptedAnswer

Answer

質問に対するベストアンサー。各質問に対する回答のうち 0 個以上を指定できます。このプロパティは、サイトにおいてなんらかの方法で承認された回答を表します(質問者、モデレーター、投票システムなどによってベストアンサーとして承認された回答など)。ベストアンサーの決定に他の方法(最新の回答順など)を使用しないでください。

suggestedAnswer

Answer

考えられる 1 つの回答ではあるものの、ベストアンサー(acceptedAnswer)として承認されていない回答。各質問に対する回答のうち 0 個以上を指定できます。

name

Text

短い形式の質問の全文。例: "How many teaspoons in a cup?"(「ティースプーン何杯分で 1 カップ分になりますか」)

推奨プロパティ

author

Person または Organization

質問の作成者に関する情報。さまざまな記事の作成者を Google が正確に認識できるように、作成者のマークアップのベスト プラクティスを実践することをおすすめします。

記事プロフィール ページの構造化データでサポートされているプロパティを参考にして、作成者に適したプロパティをできるだけ多く含めます。

author.url

URL

質問の作成者を一意に識別するウェブページへのリンク。通常 Q&A ウェブサイトのプロフィール ページが該当します。プロフィール ページの構造化データを使用してそのページをマークアップすることをおすすめします。

comment

Comment

質問に関するコメント(該当する場合)。回答以外のコンテンツであることが理想です。通常は質問に関する詳しい情報やディスカッションになります。

dateModified

DateTime

回答が編集された日時(該当する場合、ISO 8601 形式)。

datePublished

DateTime

質問が投稿された日時(ISO 8601 形式)。

image

ImageObject または URL

質問内のインライン画像(該当する場合)。

text

Text

長い形式の質問の全文。例: "I’m cooking, and I need to know how many teaspoons are in a cup. How many teaspoons are in 1 cup?"(「今料理をしていて、ティースプーン何杯分で 1 カップ分になるか知りたいのですが、何杯分で 1 カップになりますか」)

upvoteCount

Integer

質問に対する投票の総数。ページが賛成票と反対票をサポートしている場合は、upvoteCount の値を、賛成票と反対票を足した単一の集計値に設定します。たとえば、賛成票が 5 票、反対票が 2 票の場合、upvoteCount に使用される集計値は 3 になります。賛成票が 5 票で、反対票がサポートされていない場合、upvoteCount の値は 5 になります。

video

VideoObject

質問内のインライン動画(該当する場合)。

Answer

Answer タイプでは、Q&A ページの Question に対して提案された回答と承認された回答を定義します。suggestedAnswer プロパティと acceptedAnswer プロパティの値として、Question 内に Answers を定義します。

次の表で、Question 内で使用される Answer タイプのプロパティについて説明します。

Answer の完全な定義は https://schema.org/Answer で確認できます。

必須プロパティ

text

Text

回答の全文。コンテンツの一部のみがマークアップされている場合、表示できないことがあります。表示に最適なテキストを Google が決定できないためです。

推奨プロパティ

author

Person または Organization

回答の作成者に関する情報。さまざまな記事の作成者を Google が正確に認識できるように、作成者のマークアップのベスト プラクティスを実践することをおすすめします。

記事プロフィール ページの構造化データでサポートされているプロパティを参考にして、作成者に適したプロパティをできるだけ多く含めます。

author.url

URL

回答の作成者を一意に識別するウェブページへのリンク。通常 Q&A ウェブサイトのプロフィール ページが該当します。プロフィール ページの構造化データを使用してそのページをマークアップすることをおすすめします。

comment

Comment

回答に関するコメント(該当する場合)。通常は回答に関する詳しい情報やディスカッションが該当します。

dateModified

DateTime

回答が編集された日時(ISO 8601 形式、該当する場合)。

datePublished

DateTime

質問に対する回答が行われた日時(ISO 8601 形式)。

image

ImageObject または URL

質問内のインライン画像(該当する場合)。

upvoteCount

Integer

回答に対する投票の総数(該当する場合)。ページが賛成票と反対票をサポートしている場合は、upvoteCount の値を、賛成票と反対票を足した単一の集計値に設定します。たとえば、賛成票が 5 票、反対票が 2 票の場合、upvoteCount に使用される集計値は 3 になります。賛成票が 5 票で、反対票がサポートされていない場合、upvoteCount の値は 5 になります。

url

URL

回答に直接リンクしている URL。例: https://www.examplesite.com/question#answer1

video

VideoObject または URL

回答内のインライン動画(該当する場合)。

Comment

必要に応じて Comment タイプを使用し、質問でも回答でもない、質問や回答に関する詳しい情報やディスカッションを記述できます。comment プロパティの値として、Question または Answer 内に Comments を定義します。

Comment の完全な定義は https://schema.org/Comment で確認できます。

必須プロパティ

text

Text

コメントの全文。マークアップされているのが一部のみの場合、表示に最適なテキストを Google が決定できないことがあります。

推奨プロパティ

author

Person または Organization

コメントの作成者に関する情報。さまざまな記事の作成者を Google が正確に認識できるように、作成者のマークアップのベスト プラクティスを実践することをおすすめします。

記事プロフィール ページの構造化データでサポートされているプロパティを参考にして、作成者に適したプロパティをできるだけ多く含めます。

author.url

URL

コメントの作成者を一意に識別するウェブページへのリンク。通常 Q&A ウェブサイトのプロフィール ページが該当します。プロフィール ページの構造化データを使用してそのページをマークアップすることをおすすめします。

comment

Comment

コメントに対するネストされたスレッド形式のコメント(該当する場合)。

dateModified

DateTime

コメントが編集された日時(ISO 8601 形式、該当する場合)。

datePublished

DateTime

コメントが作成された日時(ISO 8601 形式)。

image

ImageObject または URL

コメント内のインライン画像(該当する場合)。

video

VideoObject または URL

コメント内のインライン動画(該当する場合)。

Search Console でリッチリザルトを監視する

Search Console は、Google 検索におけるページのパフォーマンスを監視できるツールです。Search Console に登録していなくても Google 検索結果に表示されますが、登録することにより、Google がサイトをどのように認識しているかを把握して改善できるようになります。次の場合は Search Console を確認することをおすすめします。

  1. 構造化データを初めてデプロイした後
  2. 新しいテンプレートをリリースした後やコードを更新した後
  3. トラフィックを定期的に分析する場合

構造化データを初めてデプロイした後

ページがインデックスに登録されたら、関連するリッチリザルトのステータス レポートを使用して、問題がないかどうかを確認します。有効な項目が増え、無効な項目が増えていない状態が理想的です。構造化データに問題が見つかった場合の手順は次のとおりです。

  1. 無効な項目を修正します
  2. 一般公開 URL の検査を行い、問題が解決したかどうかを確認します。
  3. ステータス レポートを使用して検証をリクエストします。

新しいテンプレートをリリースした後やコードを更新した後

ウェブサイトに大幅な変更を加えた場合は、構造化データの無効な項目が増加しないかどうか監視します。
  • 無効な項目が増加した場合は、新しく公開したテンプレートが正常に機能していないか、既存のテンプレートの新しい操作方法に問題があると考えられます。
  • 有効な項目が減少している(無効な項目の増加と一致しない)場合は、ページに構造化データが埋め込まれていない可能性があります。URL 検査ツールを使用して問題の原因を特定します。

トラフィックを定期的に分析する場合

パフォーマンス レポートを使用して Google 検索のトラフィックを分析します。このデータから、検索でページがリッチリザルトとして表示される頻度、ユーザーがページをクリックする頻度、検索結果におけるページの平均掲載順位がわかります。この結果は、Search Console API を使用して自動的に取得することもできます。

トラブルシューティング

構造化データの実装またはデバッグで問題が発生した場合は、以下のリソースが参考になります。