定期購入とペイウォール コンテンツ(CreativeWork)の構造化データ

ここでは、JSON-LD で schema.org の 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 形式と microdata 形式が認められています。
  • コンテンツ セクションをネストしないでください。
  • cssSelector プロパティでは .class セレクタのみを使用してください。

ペイウォール コンテンツにマークアップを追加する

ウェブサイトのコンテンツを定期購入制で提供している場合や、コンテンツへのアクセスに登録が必要となっている場合、そうしたコンテンツをインデックスに登録するにはこの手順を行います。この例は、NewsArticle 構造化データに適用できます。この手順は、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 や他社の適切な bot にコンテンツへのアクセス権が付与されていることを確認します。これは、パブリッシャーごとに異なります。
  • bot のアクセス ポリシーが AMP ページと非 AMP ページで同じであることを確認します。同じでない場合、Search Console にコンテンツの不一致エラーが表示されることがあります。

検索における生成 AI の考慮事項

SGE(生成 AI による検索体験)の概要は、AI の助けを借りて生成されています。これらは、ウェブ全体からの情報と、人、場所、物に関する情報が蓄積された Google のナレッジグラフによってサポートされています。スニペットの管理ツールを使用してブロックされたコンテンツは、SGE の概要には表示されません。

SGE は、概要の情報を補完し、ユーザーがさらに探索する出発点となる有益な情報をウェブ上で発見できるように設計されています。より広範な検索と同様に、SGE の概要には、人々が有益な情報のページを発見する方法として、ペイウォール コンテンツへのリンクが含まれる場合があります。

SGE while browsing(日本語未対応)は SGE とは別の機能であり、ペイウォール構造化データがページ上にある場合、ペイウォールで保護された記事のキーポイントは表示されません。

Google がページをクロールしてインデックスに登録できるようにする

ペイウォール セクションを含むコンテンツを Google がクロールしてインデックスに登録できるようにする場合は、GooglebotGooglebot-News(該当する場合)がページにアクセスできるようにします。

URL 検査ツールでサイト上の URL を Google がどのようにクロールしてレンダリングするかをテストします。

検索結果に表示される情報を制御する

ページへのキャッシュ リンクが Google に表示されないようにするには、noarchive robots meta タグを使用します。

コンテンツの特定のセクションが検索結果のスニペットに表示されないようにするには、data-nosnippet HTML 属性を使用します。max-snippet robots meta タグを使用して、検索結果のスニペットに表示される文字数を制限することもできます。

トラブルシューティング

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