问答

问答页面是包含问答格式数据(先列出一个问题,后跟相应的答案)的网页。对于表示问题及相应答案的内容,您可以使用 schema.org QAPageQuestionAnswer 类型标记数据。

如果您正确标记了网页,Google 就会在搜索结果页上为其显示富媒体搜索结果。这种富媒体搜索结果处理方式有助于您的网站通过 Google 搜索覆盖合适的用户。下面以用户查询“如何取出卡在 USB 端口中的数据线?”为例进行了说明,如果已标记相应网页来回答该问题,那么您可能会看到如下结果:

搜索查询“如何取出卡在 USB 端口中的数据线?”的问答卡片搜索结果示例

除了能够使系统对您的内容采用上方所示的富媒体搜索结果处理方式之外,标记问答页面还有助于 Google 为该网页生成更好的摘要。在上面的示例中,如果未显示富媒体搜索结果,那么答案的内容可能会出现在基本搜索结果中。

如何添加结构化数据

结构化数据是一种提供网页相关信息并对网页内容进行分类的标准化格式。如果您不熟悉结构化数据,可以详细了解结构化数据的工作原理

下面概述了如何构建、测试和发布结构化数据。如需获得向网页添加结构化数据的分步指南,请查看结构化数据 Codelab

  1. 添加必要属性。如需了解如何在网页上放置结构化数据,请观看 JSON-LD 结构化数据:网页上的插入位置
  2. 遵循指南
  3. 使用富媒体搜索结果测试验证您的代码。
  4. 部署一些包含结构化数据的网页,然后使用网址检查工具测试 Google 看到的网页样貌。请确保您的网页可供 Google 访问,不会因 robots.txt 文件、noindex 标记或登录要求而被屏蔽。如果网页看起来没有问题,您可以请求 Google 重新抓取您的网址
  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,
        "dateCreated": "2016-07-23T21:11Z",
        "author": {
          "@type": "Person",
          "name": "New Baking User"
        },
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "1 pound (lb) is equal to 16 ounces (oz).",
          "dateCreated": "2016-11-02T21:11Z",
          "upvoteCount": 1337,
          "url": "https://example.com/question1#acceptedAnswer",
          "author": {
            "@type": "Person",
            "name": "SomeUser"
          }
        },
        "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.",
            "dateCreated": "2016-11-02T21:11Z",
            "upvoteCount": 42,
            "url": "https://example.com/question1#suggestedAnswer1",
            "author": {
              "@type": "Person",
              "name": "AnotherUser"
            }
          }, {
            "@type": "Answer",
            "text": " I can't remember exactly, but I think 18 ounces in a lb. You might want to double check that.",
            "dateCreated": "2016-11-06T21:11Z",
            "upvoteCount": 0,
            "url": "https://example.com/question1#suggestedAnswer2",
            "author": {
              "@type": "Person",
              "name": "ConfusedUser"
            }
          }
        ]
      }
    }
    </script>
  </head>
  <body>
  </body>
</html>
微数据

<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>asked <time itemprop="dateCreated" datetime="2010-11-04T20:07Z">Nov 11
'10 at 20:07</time></div>
<div itemprop="author" itemscope itemtype="https://schema.org/Person"><span
itemprop="name">New Baking User</span></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>answered <time itemprop="dateCreated" datetime="2010-12-01T22:01Z">Dec 1 '10 at 22:01</time></div>
      <div itemprop="author" itemscope itemtype="https://schema.org/Person"><span itemprop="name">SomeUser</span></div>
      </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>answered <time itemprop="dateCreated"datetime="2010-12-06T21:11Z">Dec 6 '10 at 21:11</time></div>
       <div itemprop="author" itemscope itemtype="https://schema.org/Person"><span
itemprop="name">AnotherUser</span></div>
     </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>answered <time itemprop="dateCreated"datetime="2010-12-06T21:11Z">Dec 6 '10 at 21:11</time></div>
       <div itemprop="author" itemscope itemtype="https://schema.org/Person"><span
itemprop="name">ConfusedUser</span></div>
    </div>
</div>
</div>
</body>
</html>

指南

要让 Google 对您的问答页面采用这种富媒体搜索结果处理方式,您必须遵循以下指南:

内容指南

  • 仅当网页包含的信息采用问答格式(即先列出一个问题,后跟相应的答案)时,才能使用 QAPage 标记。
  • 必须允许用户提交问题的答案。如果给定的问题只有 1 条答案,并且不支持用户提交备选答案,请不要对内容使用 QAPage 标记;在这种情况下应改用 FAQPage。以下是一些示例:

    有效用例

    • 一个论坛网页,用户可以在该网页上提交单个问题的答案
    • 一个产品支持网页,用户可以在该网页上提交单个问题的答案

    无效用例

    • 由网站本身编写的一个常见问题解答网页,用户无法在该网页上提交备选答案
    • 一个产品页面,用户可以在这个页面上提交多个问题和答案
    • 一份旨在回答问题的方法指南
    • 一篇旨在回答问题的博文
    • 一篇旨在回答问题的文章
  • 如果并非所有内容都符合条件,请不要将 QAPage 标记应用于网站或论坛上的所有网页。例如,某个论坛可能发布了许多问题,并且这些问题分别都符合该标记的条件,不过,如果该论坛也有一些网页中的内容不是问题,那么这些网页就不符合条件。
  • 不要对常见问题解答页或每页有多个问题的网页使用 QAPage 标记。QAPage 标记适用于重点论述单个问题以及相应答案的网页。
  • 不要将 QAPage 标记用于广告目的。
  • 确保每个 Question 包含完整的问题内容,并确保每个 Answer 包含完整的答案内容。
  • Answer 标记适用于问题的答案,而不适用于对问题的评论或对其他答案的评论。不要将非答案式评论标记为 Answer
  • 如果问题和答案包含以下任何类型的内容,那么它们可能不会显示为富媒体搜索结果:淫秽、亵渎、露骨色情、血腥暴力、宣传危险/违法活动,或仇恨性/骚扰性语言。

结构化数据类型定义

本部分介绍了与 QAPage 相关的结构化数据类型。

要使您的内容能够显示为富媒体搜索结果,您必须为其添加必需的属性。您还可添加建议的属性,以便向结构化数据添加更多信息,进而提供更好的用户体验。

您可以使用 Google 的富媒体搜索结果测试工具验证和预览结构化数据

QAPage

QAPage 类型表示网页重点论述了某个特定问题以及相应的答案。我们只会使用带有 QAPage 标记的网页中的 Question 结构化数据。每个网页应该只有 1 个 QAPage 类型定义。

如需了解 QAPage 的完整定义,请访问 https://schema.org/QAPage

下表介绍了 Google 搜索使用的 QAPage 类型的属性。

必需的属性

mainEntity

Question

相应网页的 Question 必须嵌套在 QAPage 项目的 mainEntity 属性下。

Question

Question 类型定义了相应网页回答的问题,并且包含该问题的答案(如果有)。网页上应只有 1 个 Question 类型,并且它应嵌套在 schema.org/QAPagemainEntity 属性下。每个网页应该只有 1 个 Question 类型定义。

如需了解 Question 的完整定义,请访问 https://schema.org/Question

必需的属性

answerCount

Integer

对问题的回答总数。例如,如果有 15 条回答,但由于分页而仅标记了前 10 条,此值将为 15。对于没有答案的问题,此值也可能为 0。

值为 acceptedAnswersuggestedAnswer Answer

要显示为富媒体搜索结果,问题必须有至少 1 条答案 - acceptedAnswersuggestedAnswer。不过,问题在刚发布时可能没有答案。对于没有答案的问题,请将 answerCount 属性设为 0。没有答案的问题无法显示为富媒体搜索结果。

acceptedAnswer

Answer

问题的最佳答案。每个问题可有零条或多条此类回答。这应代表在您的网站上以某种方式被接纳的回答。例如,被提问者、版主或投票系统接纳为最佳回答。不应通过其他排序形式(如按时间由近到远)确定最佳答案。

suggestedAnswer

Answer

1 条可能的答案,但未被接纳为最佳答案 (acceptedAnswer)。每个问题可有零条或多条此类答案。

name

Text

简短形式的问题的完整内容。例如,“一量杯是几茶匙的量?”。

建议的属性

author

PersonOrganization

问题的作者。

dateCreated

DateDateTime

将问题添加到网页的日期,采用 ISO-8601 格式。

text

Text

详细形式的问题的完整内容。例如,“我正在做饭,我需要知道杯子里放几茶匙的量。一个杯子里放几茶匙的量?”

upvoteCount

Integer

相应问题已得到的投票总数。如果网页支持顶和踩,则应将 upvoteCount 值设为一个表示顶和踩相加抵消后的总值。例如,如果有 5 个顶和 2 个踩,则 upvoteCount 的总值为 3。如果有 5 个顶,且不支持踩,则 upvoteCount 的值为 5。

Answer

Answer 类型定义了相应网页上的 Question 的建议答案和被接纳的答案。您可以在 Question 中将 Answers 定义为 suggestedAnsweracceptedAnswer 属性的值。

下表介绍了 Question 中使用的 Answer 类型的属性。

如需了解 Answer 的完整定义,请访问 https://schema.org/Answer

必需的属性

text

Text

回答的完整内容。如果只标记了一部分,则可能不会显示您的内容,因为 Google 无法确定显示哪些内容最为恰当。

建议的属性

author

PersonOrganization

答案的作者。

dateCreated

DateDateTime

将答案添加到网页的日期,采用 ISO-8601 格式。

upvoteCount

Integer

相应答案已得到的投票总数。如果网页支持顶和踩,则应将 upvoteCount 值设为一个表示顶和踩相加抵消后的总值。例如,如果有 5 个顶和 2 个踩,则 upvoteCount 的总值为 3。如果有 5 个顶,且不支持踩,则 upvoteCount 的值为 5。

url

URL

直接链接到相应答案的网址。例如:https://www.examplesite.com/question#answer1

使用 Search Console 监控富媒体搜索结果

Search Console 是一款工具,可帮助您监控网页在 Google 搜索结果中的显示效果。即使没有注册 Search Console,您的网页也可能会显示在 Google 搜索结果中,但注册 Search Console 能够帮助您了解 Google 如何查看您的网站并做出相应的改进。建议您在以下情况下查看 Search Console:

  1. 首次部署结构化数据后
  2. 发布新模板或更新代码后
  3. 定期分析流量时

首次部署结构化数据后

等 Google 将网页编入索引后,请在相关的富媒体搜索结果状态报告中查看是否存在问题。 理想情况下,您应该会看到有效网页数增加了,但错误数或警告数没有增加。如果您发现结构化数据存在问题,请执行以下操作:

  1. 修正错误
  2. 检查实际网址,核实问题是否仍然存在。
  3. 使用状态报告请求验证

发布新模板或更新代码后

对网站进行重大更改后,请监控结构化数据的错误数和警告数是否增加了。
  • 如果您发现错误增多了,可能是因为您推出的某个新模板无法正常工作,或者您的网站以一种新的错误方式与现有模板交互。
  • 如果您发现有效内容项减少了(但错误数的增加情况并不对应),可能是因为您的网页中未再嵌入结构化数据。请通过网址检查工具了解导致此问题的原因。

定期分析流量时

请使用效果报告分析您的 Google 搜索流量。数据将显示您的网页在 Google 搜索结果中显示为富媒体搜索结果的频率、用户点击该网页的频率以及网页在搜索结果中的平均排名。您还可以使用 Search Console API 自动提取这些结果。

问题排查

如果您在实施结构化数据时遇到问题,请查看下面列出的一些实用资源。