定期購入とペイウォール コンテンツ(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 かどうかに関係なくすべてのバージョンのページに適用してください。
-
クラス名を追加し、ページの各ペイウォール セクションを囲みます。次に例を示します。
<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>
-
NewsArticle
構造化データを追加します。 -
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" } }
- リッチリザルト テストでコードを検証し、重大なエラーを修正します。
複数のペイウォール セクションがある場合
ページに複数のペイウォール セクションがある場合は、クラス名を配列として追加します。
ページにペイウォール セクションがある場合の例を次に示します。
<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
|
記事が誰でもアクセスできるのか、それともペイウォールの背後にあるのか(または購読や登録が必要か)。このセクションがペイウォールの背後にあることを指定する場合は、 |
推奨プロパティ | |
---|---|
hasPart.cssSelector
|
ペイウォール セクションを指定するために HTML で設定したクラス名を参照する CSS セレクター。 |
hasPart.@type
|
|
hasPart.isAccessibleForFree
|
記事の当該セクションがペイウォールの背後にあるかどうか(または購読や登録が必要かどうか)。このセクションがペイウォールの背後にあることを指定する場合は、 |
AMP に関する考慮事項
AMP ページを使用する場合の考慮事項は以下のとおりです。
-
AMP ページにペイウォール コンテンツが含まれている場合は、必要に応じて
amp-subscriptions
を使用します。 - 承認エンドポイントから Google や他社の適切な bot にコンテンツへのアクセス権が付与されていることを確認します。これは、パブリッシャーごとに異なります。
- bot のアクセス ポリシーが AMP ページと非 AMP ページで同じであることを確認します。同じでない場合、Search Console にコンテンツの不一致エラーが表示されることがあります。
検索における生成 AI の考慮事項
AI による概要は、ウェブのソースを含むさまざまなソースに基づいて、トピックやクエリのプレビューを提供します。そのため、検索のプレビュー コントロールの対象となります。
ブラウジング中の AI ツールは AI による概要とは別の機能であり、ペイウォール構造化データがページ上にある場合、ペイウォールで保護された記事のキーポイントは表示されません。
Google がページをクロールしてインデックスに登録できるようにする
ペイウォール セクションを含むコンテンツを Google がクロールしてインデックスに登録できるようにする場合は、Googlebot と Googlebot-News
(該当する場合)がページにアクセスできるようにします。
URL 検査ツールでサイト上の URL を Google がどのようにクロールしてレンダリングするかをテストします。
検索結果に表示される情報を制御する
コンテンツの特定のセクションが検索結果のスニペットに表示されないようにするには、data-nosnippet
HTML 属性を使用します。max-snippet
robots meta
タグを使用して、検索結果のスニペットに表示される文字数を制限することもできます。
トラブルシューティング
構造化データの実装またはデバッグで問題が発生した場合は、以下のリソースが参考になります。
- コンテンツ管理システム(CMS)を使用している場合や、サイトが他者によって管理されている場合は、それに応じて支援を依頼してください。その際は、問題の詳細を含む Search Console のメッセージを必ず転送してください。
- 構造化データを使用するコンテンツが必ず検索結果に表示されるとは限りません。コンテンツがリッチリザルトに表示されないときのよくある原因については、構造化データに関する一般的なガイドラインをご覧ください。
- 構造化データにエラーがある可能性があります。構造化データエラーの一覧を確認してください。
- 構造化データへの手動による対策をページに対して実施すると、ページ上の構造化データが無視されるようになります(ただし、Google 検索結果にはページは引き続き表示されます)。構造化データの問題を修正するには、手動による対策レポートを使用します。
- ガイドラインを再度確認し、コンテンツがガイドラインを遵守していないことを確認します。スパム コンテンツまたはスパム マークアップの使用が原因で、問題が発生する場合がありますが、これは構文の問題ではない可能性があり、リッチリザルト テストでは特定できません。
- リッチリザルトが見つからない場合またはリッチリザルトの合計数が不足している場合のトラブルシューティングをご覧ください。
- 再クロールとインデックスの再登録に要する時間を考慮してください。ページを公開した後、Google が対象のページを検出してクロールするまでに数日を要する場合があることに留意してください。クロールとインデックス登録に関する一般的な質問については、Google 検索のクロールとインデックス登録に関するよくある質問をご覧ください。
- Google 検索セントラル フォーラムでもご質問をお受けしています。