Q&A

Q&A 페이지는 질문과 답변이 이어지는 형식의 데이터가 포함된 웹페이지입니다. 질문과 답변을 나타내는 콘텐츠의 경우 schema.org QAPage, Question, Answer 유형으로 데이터를 마크업할 수 있습니다.

마크업이 제대로 된 페이지는 검색결과 페이지에 리치 결과가 표시됩니다. 이러한 리치 결과 처리를 통해 적절한 사용자가 Google 검색에서 사이트를 발견하게 할 수 있습니다. 페이지가 'USB 포트에 케이블이 꼈는데 어떻게 빼나요?'라는 사용자 질문에 마크업되어 있는 경우 사용자 검색어에 표시될 수 있는 결과의 예는 다음과 같습니다.

검색어의 질문 및 답변 카드의 검색결과 예: '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 형식의 QAPage, Question, Answer 유형 정의가 포함되어 있습니다.

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>

가이드라인

Q&A 페이지를 리치 결과로 처리하려면 다음 가이드라인을 따라야 합니다.

콘텐츠 가이드라인

  • 질문 한 개에 답변이 이어지는 방식, 즉 질문과 답변 형식으로 페이지가 구성되어 있는 경우에만 QAPage 마크업을 사용하세요.
  • 사용자는 질문에 답변을 제출할 수 있어야 합니다. 주어진 질문에 한 개의 답변만 있으며 사용자가 대체 답변을 추가할 수 없는 콘텐츠에는 QAPage 마크업 대신 FAQPage를 사용하세요. 다음은 몇 가지 예입니다.

    올바른 사용 사례:

    • 사용자가 하나의 질문에 답변을 제출할 수 있는 포럼 페이지
    • 사용자가 하나의 질문에 답변을 제출할 수 있는 제품 지원 페이지

    잘못된 사용 사례:

    • 사용자가 대체 답변을 제출할 방법이 없는, 사이트 자체에서 작성한 FAQ 페이지
    • 사용자가 하나의 페이지에 여러 질문과 답변을 제출할 수 있는 제품 페이지
    • 질문에 답변하는 안내 가이드
    • 질문에 답변하는 블로그 게시물
    • 질문에 답변하는 에세이
  • 모든 콘텐츠가 해당될 때만 사이트나 포럼의 모든 페이지에 QAPage 마크업을 적용해야 합니다. 예를 들어, 포럼에 개별적으로 마크업할 수 있는 여러 질문이 게시되어 있지만 포럼에 질문이 아닌 페이지가 포함되어 있는 경우 해당 페이지에는 마크업을 사용할 수 없습니다.
  • FAQ 페이지 또는 페이지마다 질문이 여러 개 있는 페이지에는 QAPage 마크업을 사용하지 마세요. QAPage 마크업은 하나의 질문과 답변이 있는 페이지에만 사용해야 합니다.
  • 광고 목적으로는 QAPage 마크업을 사용하지 마세요.
  • Question에는 질문의 전체 텍스트가 포함되어 있어야 하고, 각 Answer에는 답변의 전체 텍스트가 포함되어 있어야 합니다.
  • Answer 마크업은 질문에 관한 댓글이나 다른 답변에 관한 댓글이 아닌 질문에 관한 답변에만 사용해야 합니다. 답변이 아닌 댓글을 Answer로 마크업하지 마세요.
  • 질문 및 답변 콘텐츠에 음란하거나, 모욕적이거나, 외설적이거나, 시각적으로 폭력적이거나, 위험 행위 또는 불법 행위를 홍보하거나, 증오성 또는 위협성 언어가 있는 콘텐츠가 포함되어 있는 경우 리치 결과로 표시되지 않을 수 있습니다.

구조화된 데이터 유형 정의

이 섹션은 QAPage와 관련된 구조화된 데이터 유형을 설명합니다.

콘텐츠를 리치 결과로 표시하려면 필수 속성이 있어야 합니다. 권장 속성을 통해 구조화된 데이터에 더 많은 정보를 추가하여 더욱 만족스러운 사용자 환경을 제공할 수도 있습니다.

Google의 리치 결과 테스트를 사용하여 구조화된 데이터를 검사하고 미리 볼 수 있습니다.

QAPage

QAPage 유형은 특정 질문과 답변에 중점을 둔 페이지를 나타냅니다. Google에서는 QAPage 마크업이 있는 페이지의 구조화된 Question 데이터만 사용합니다. 페이지당 하나의 QAPage 유형 정의만 있어야 합니다.

QAPage의 전체 정의는 https://schema.org/QAPage에서 확인할 수 있습니다.

다음 표는 Google 검색에서 사용하는 QAPage 유형의 속성을 설명합니다.

필수 속성

mainEntity

Question

이 페이지의 QuestionQAPage 항목의 mainEntity 속성 아래에 중첩되어 있어야 합니다.

Question

Question 유형은 이 페이지에서 답변하는 질문을 정의하고, 답변이 있는 경우 관련 질문의 답변을 포함합니다. 페이지에 정확히 하나의 Question 유형만 schema.org/QAPagemainEntity 속성에 중첩되어 있어야 합니다. 페이지당 하나의 Question 유형 정의만 있어야 합니다.

Question의 전체 정의는 https://schema.org/Question에서 확인할 수 있습니다.

필수 속성

answerCount

Integer

질문의 총 답변 수입니다. 예를 들어 답변이 15개인데 페이지 나누기로 인해 첫 10개만 마크업된 경우, 이 속성의 값은 15입니다. 답변이 없는 질문에는 0일 수 있습니다.

acceptedAnswer 또는 suggestedAnswer Answer

리치 결과를 사용하려면 질문에 acceptedAnswer 또는 suggestedAnswer 답변이 하나 이상 있어야 합니다. 하지만 질문이 처음 게시되었을 때는 답변이 없을 수 있습니다. 답변이 없는 질문은 answerCount 속성을 0으로 설정하세요. 답변이 없는 질문은 리치 결과를 사용할 수 없습니다.

acceptedAnswer

Answer

질문에 관한 최상위 답변입니다. 질문당 0개 이상이 있을 수 있습니다. 사이트에서 어떤 방식으로든 수락된 답변을 나타냅니다. 예를 들어 질문자, 중재자, 투표 시스템에서 최상위 답변으로 수락했을 수 있습니다. 최신순과 같은 다른 형식의 답변 정렬은 상위 답변을 식별하는 데 사용되어서는 안 됩니다.

suggestedAnswer

Answer

하나의 답변이 있긴 하지만 최상위 답변으로 수락되지 않은 경우입니다(acceptedAnswer). 질문당 0개 이상이 있을 수 있습니다.

name

Text

짧은 형식 질문의 전체 텍스트입니다. 예: '한 컵은 몇 티스푼인가요?'

권장 속성

author

Person 또는 Organization

질문 작성자입니다.

dateCreated

Date 또는 DateTime

질문이 페이지에 추가된 날짜이며, ISO-8601 형식으로 나타냅니다.

text

Text

긴 형식 질문의 전체 텍스트입니다. 예: '요리 중인데 한 컵은 몇 티스푼인지 궁금해요. 한 컵은 몇 티스푼인가요?'

upvoteCount

Integer

이 질문이 받은 총 투표수입니다. 페이지에서 찬성수와 반대수를 지원하는 경우, upvoteCount 값은 찬성수와 반대수를 모두 나타내는 하나의 집계값으로 설정하세요. 예를 들어 찬성수가 5이고 반대수가 2인 경우, upvoteCount에 사용되는 집계값은 3입니다. 찬성수가 5이고 반대수는 지원되지 않는 경우 upvoteCount 값은 5입니다.

Answer

Answer 유형은 이 페이지의 Question에 대해 제안된 답변과 수락된 답변을 정의합니다. Question 내에서 suggestedAnsweracceptedAnswer 속성 값으로 Answers를 정의합니다.

다음 표는 Question 내에서 사용되는 Answer 유형의 속성을 설명합니다.

Answer의 전체 정의는 https://schema.org/Answer에서 확인할 수 있습니다.

필수 속성

text

Text

답변의 전체 텍스트입니다. 일부만 마크업되어 있는 경우 콘텐츠가 표시되지 않을 수 있고, Google은 표시할 최적의 텍스트를 결정할 수 없게 됩니다.

권장 속성

author

Person 또는 Organization

답변 작성자입니다.

dateCreated

Date 또는 DateTime

답변이 페이지에 추가된 날짜이며, ISO-8601 형식으로 나타냅니다.

upvoteCount

Integer

이 답변이 받은 총 투표수입니다. 페이지에서 찬성수와 반대수를 지원하는 경우, upvoteCount 값은 찬성수와 반대수를 모두 나타내는 하나의 집계값으로 설정하세요. 예를 들어 찬성수가 5이고 반대수가 2인 경우, upvoteCount에 사용되는 집계값은 3입니다. 찬성수가 5이고 반대수는 지원되지 않는 경우 upvoteCount 값은 5입니다.

url

URL

이 답변에 직접 연결된 URL입니다. 예: https://www.examplesite.com/question#answer1

Search Console로 리치 결과 모니터링하기

Search Console은 Google 검색에서의 페이지 실적을 모니터링하는 데 도움이 되는 도구입니다. Search Console에 가입해야만 페이지가 Google 검색결과에 포함되는 것은 아니지만, 가입하면 Google에서 사이트를 인식하는 방식을 이해하고 개선하는 데 도움이 될 수 있습니다. 다음과 같은 경우 Search Console을 확인하는 것이 좋습니다.

  1. 구조화된 데이터를 처음 배포한 후
  2. 새 템플릿을 출시하거나 코드를 업데이트한 후
  3. 주기적으로 트래픽 분석

구조화된 데이터를 처음 배포한 후

Google에서 페이지의 색인을 생성하고 나면 관련 리치 결과 상태 보고서를 사용하여 문제를 확인합니다. 유효한 페이지가 증가하고 오류나 경고는 증가하지 않는 것이 가장 좋습니다. 구조화된 데이터에 문제가 있는 경우 다음과 같이 해결하세요.

  1. 오류를 수정합니다.
  2. 실제 URL을 검사하여 문제가 지속되는지 확인합니다.
  3. 상태 보고서를 사용하여 유효성 검사를 요청합니다.

새 템플릿을 출시하거나 코드를 업데이트한 후

웹사이트를 대폭 변경했다면 구조화된 데이터 오류 및 경고가 증가하는지 모니터링하세요.
  • 오류가 증가했다면 새로 출시한 템플릿이 제대로 작동하지 않거나 사이트가 기존의 템플릿과 좋지 않은 방식으로 상호작용하게 된 것일 수 있습니다.
  • 유효한 항목이 감소했다면(오류 증가와 일치하지 않음) 페이지에 구조화된 데이터를 더 이상 삽입하지 않는 것일 수 있습니다. URL 검사 도구를 사용하여 문제를 일으키는 원인을 알아보세요.

주기적으로 트래픽 분석

실적 보고서를 사용하여 Google 검색 트래픽을 분석합니다. 데이터에서 페이지가 Google 검색의 리치 결과로 표시되는 빈도, 사용자가 검색결과를 클릭하는 빈도, 검색결과에 표시되는 평균 게재순위를 확인할 수 있습니다. Search Console API를 사용하여 이러한 결과를 자동으로 가져오는 방법도 있습니다.

문제해결

구조화된 데이터를 구현하는 데 문제가 있다면 다음 리소스를 참고하세요.