구조화된 구독 및 페이월 콘텐츠(CreativeWork) 데이터

이 페이지에서는 schema.org JSON-LD를 사용하여 CreativeWork 속성으로 사이트에 페이월 콘텐츠를 표시하는 방법을 설명합니다. 이 구조화된 데이터는 Google에서 스팸 정책을 위반하는 클로킹 행위와 페이월 콘텐츠를 구분하는 데 도움이 됩니다. 구독 및 페이월 콘텐츠에 관해 자세히 알아보세요.

다음은 페이월 콘텐츠가 포함된 구조화된 NewsArticle 데이터의 예입니다.

<html>
  <head>
    <title>Article headline</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "headline": "Article headline",
      "image": "https://example.org/thumbnail1.jpg",
      "datePublished": "2025-02-05T08:00:00+08:00",
      "dateModified": "2025-02-05T09:20:00+08:00",
      "author": {
        "@type": "Person",
        "name": "John Doe",
        "url": "https://example.com/profile/johndoe123"
      },
      "description": "A most wonderful article",
      "isAccessibleForFree": false,
      "hasPart":
        {
        "@type": "WebPageElement",
        "isAccessibleForFree": false,
        "cssSelector" : ".paywall"
        }
    }
    </script>
  </head>
  <body>
    <div class="non-paywall">
      Non-Paywalled Content
    </div>
    <div class="paywall">
      Paywalled Content
    </div>
  </body>
</html>

가이드라인

페이지가 검색결과에 표시되게 하려면 구조화된 데이터 일반 가이드라인기술 가이드라인을 따라야 합니다. 페이월 콘텐츠에는 다음의 가이드라인도 적용됩니다.

  • JSON-LD 및 마이크로데이터 형식은 페이월 콘텐츠의 구조화된 데이터를 지정하는 방법으로 허용됩니다.
  • 콘텐츠 섹션을 중첩하지 마세요.
  • cssSelector 속성에는 .class 선택기만 사용하세요.

페이월 콘텐츠에 마크업 추가

웹사이트를 구독해야만 액세스할 수 있는 콘텐츠를 제공하고 있거나 색인을 생성하려는 콘텐츠에 액세스하려면 사용자가 사이트에 등록해야 하는 경우 다음 단계를 따르세요. 다음의 예는 구조화된 NewsArticle 데이터에 적용됩니다. AMP 페이지 및 AMP가 아닌 페이지를 포함한 모든 버전의 페이지에서 다음 단계를 따르세요.

  1. 페이지에 있는 모든 페이월 섹션에 클래스 이름을 추가합니다. 예를 들면 다음과 같습니다.
    <body>
    <p>This content is outside a paywall and is visible to all.</p>
    <div class="paywall">This content is inside a paywall, and requires a subscription or registration.</div>
    </body>
  2. 구조화된 NewsArticle 데이터를 추가합니다.
  3. 강조표시되고 구조화된 JSON-LD 데이터를 구조화된 NewsArticle 데이터에 추가합니다.
    {
    "@context": "https://schema.org",
    "@type": "NewsArticle",
    "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.org/article"
    },
    (...)
    "isAccessibleForFree": false,
    "hasPart": {
    "@type": "WebPageElement",
    "isAccessibleForFree": false,
    "cssSelector": ".paywall"
    }
    }
  4. 리치 결과 테스트를 사용하여 코드의 유효성을 검사하고 심각한 오류를 해결하세요.

여러 개의 페이월 섹션

페이지에 페이월 섹션이 여러 개 있는 경우, 클래스 이름을 배열로 추가하세요.

다음은 페이지에 있는 페이월 섹션의 예입니다.

<body>
<div class="section1">This content is inside a paywall, and requires a subscription or registration.</div>
<p>This content is outside a paywall and is visible to all.</p>
<div class="section2">This is another section that's inside a paywall, or requires a subscription or registration.</div>
</body>

다음은 여러 개의 페이월 섹션이 있는 구조화된 NewsArticle 데이터의 예입니다.

{
  "@context": "https://schema.org",
  "@type": "NewsArticle",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.org/article"
    },
  (...)
  "isAccessibleForFree": false,
  "hasPart": [
    {
      "@type": "WebPageElement",
      "isAccessibleForFree": false,
      "cssSelector": ".section1"
    }, {
      "@type": "WebPageElement",
      "isAccessibleForFree": false,
      "cssSelector": ".section2"
    }
  ]
}

지원되는 유형

이 마크업은 CreativeWork 유형 또는 다음의 더욱 구체적인 CreativeWork 유형 중 하나에서 지원됩니다.

다음과 같은 여러 schema.org 유형을 사용할 수 있습니다.

"@type": ["Article", "LearningResource"]

Google에서 기사에 페이월 콘텐츠가 있다는 것을 이해할 수 있도록 필수 속성을 포함해야 합니다. 권장 속성을 추가하면 페이지에서 페이월이 적용되는 섹션 또는 구독이나 등록이 필요한 섹션을 더 세분화할 수 있습니다.

필수 속성
isAccessibleForFree

Boolean

모든 사용자가 기사에 액세스할 수 있는지 또는 페이월이 적용되는지(또는 구독 또는 등록이 필요한지) 여부 이 섹션에 페이월이 적용되도록 지정하려면 isAccessibleForFree 속성을 false로 설정합니다.

권장 속성
hasPart.cssSelector

CssSelectorType

페이월 섹션을 지정하기 위해 HTML에서 설정한 클래스 이름을 참조하는 CSS 선택자입니다.

hasPart.@type

Text

@typeWebPageElement로 설정합니다.

hasPart.isAccessibleForFree

Boolean

이 기사 섹션에 페이월이 적용되는지(또는 구독 또는 등록이 필요한지) 여부 이 섹션에 페이월이 적용되도록 지정하려면 isAccessibleForFree 속성을 False로 설정합니다.

AMP 고려사항

AMP 페이지를 사용할 때 고려해야 할 사항은 다음과 같습니다.

  • 페이월 콘텐츠가 포함된 AMP 페이지가 있으면 적절한 경우 amp-subscriptions를 사용합니다.
  • Google 등의 관련 크롤러가 콘텐츠에 액세스하도록 승인 엔드포인트가 허용해야 합니다. 이는 게시자마다 다릅니다.
  • AMP 페이지와 AMP가 아닌 페이지에 적용되는 크롤러 액세스 정책이 동일해야 합니다. 그렇지 않으면 Search Console에 콘텐츠 불일치 오류가 표시될 수 있습니다.

Google 검색의 생성형 AI 고려사항

생성형 AI 검색(SGE) 개요는 AI를 통해 생성됩니다. 웹 전반의 정보와 사람, 장소, 사물에 관한 정보를 모은 Google 지식 그래프를 통해 지원됩니다. 스니펫 컨트롤을 사용하여 차단된 콘텐츠는 개요에 표시되지 않습니다.

SGE는 사용자가 개요에 포함된 정보를 뒷받침하고 더 자세히 탐색할 수 있는 출발점을 제공하는 웹에서 유용한 정보를 찾을 수 있도록 설계되었습니다. Google 검색과 마찬가지로 SGE 개요에는 사용자가 해당 페이지를 찾을 수 있도록 페이월 콘텐츠 링크가 포함될 수 있습니다.

Google 검색의 SGE와는 별개의 기능인 검색 중 SGE구조화된 페이월 데이터가 페이지에 있는 경우 페이월 도움말의 핵심 사항을 표시하지 않습니다.

Google에서 페이지를 크롤링하고 색인을 생성할 수 있는지 확인

Google에서 페이월 섹션을 포함한 콘텐츠를 크롤링하고 색인을 생성하기를 원하는 경우 Googlebot(그리고 해당하는 경우 Googlebot-News)이 페이지에 액세스할 수 있도록 해야 합니다.

URL 검사 도구를 사용하여 Google 사이트에서 URL을 크롤링하고 렌더링하는 방식을 테스트합니다.

검색결과에 표시되는 정보 관리

Google에서 페이지의 저장된 페이지 링크를 표시하지 않도록 하려면 noarchive robots meta 태그를 사용합니다.

콘텐츠의 특정 섹션이 검색결과 스니펫에 표시되지 않도록 하려면 data-nosnippet HTML 속성을 사용하세요. max-snippet robots meta 태그를 사용하여 검색결과 스니펫에서 사용할 수 있는 문자 수를 제한할 수도 있습니다.

문제 해결

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

  • 콘텐츠 관리 시스템(CMS)을 사용하거나 다른 사람이 내 사이트를 관리한다면 도움을 요청하세요. 문제를 자세히 설명하는 모든 Search Console 메시지를 CMS나 관리자에게 전달해야 합니다.
  • Google은 구조화된 데이터를 사용하는 기능이라고 해서 검색결과에 표시된다고 보장하지 않습니다. Google에서 콘텐츠를 리치 결과로 표시할 수 없는 일반적인 이유 목록은 구조화된 데이터 일반 가이드라인을 참고하세요.
  • 구조화된 데이터에 오류가 있을 수 있습니다. 구조화된 데이터의 오류 목록을 확인하세요.
  • 페이지에 구조화된 데이터 직접 조치를 취하는 경우 페이지에 있는 구조화된 데이터는 무시됩니다. 하지만 페이지는 계속 Google 검색결과에 표시될 수 있습니다. 구조화된 데이터 문제를 해결하려면 직접 조치 보고서를 사용하세요.
  • 가이드라인을 다시 검토하여 콘텐츠가 가이드라인을 준수하지 않는지 확인합니다. 스팸성 콘텐츠 또는 스팸성 마크업의 사용으로 인해 문제가 발생할 수 있습니다. 하지만 해당 문제가 구문 문제가 아닐 수도 있고, 이 경우 리치 결과 테스트에서는 이 문제를 식별할 수 없습니다.
  • 누락된 리치 결과/총 리치 결과 수 감소 문제를 해결하세요.
  • 다시 크롤링이 이루어지고 색인이 생성될 때까지 기다리세요. 페이지가 게시된 후 Google에서 페이지를 찾고 크롤링하기까지 며칠 정도 걸릴 수 있습니다. 크롤링 및 색인 생성에 관한 일반적인 질문은 Google 검색 크롤링 및 색인 생성 FAQ를 참고하세요.
  • Google 검색 센터 포럼에 질문을 올려보세요.