訂閱和付費牆內容 (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 選取器。
  • 如果不想在提供內容時讓瀏覽器存取內容,請選擇不會向瀏覽器提供付費牆內容的付費牆實作方式。如果您使用用戶端 JavaScript 解決方案,請參閱這篇文章,瞭解如何使用 JavaScript 導入付費牆內容。

為付費牆內容新增標記

如果您提供了任何需要訂閱才能存取的網站內容,或是使用者需要先行註冊,才能存取您想要編入索引的內容,則請按照這些步驟進行。以下示例適用於 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

CSS 選取器,會參照您在 HTML 中設定的類別名稱,以指定付費牆部分。

hasPart.@type

Text

@type 設為 WebPageElement

hasPart.isAccessibleForFree

Boolean

這篇文章的這個部分是否位於付費牆後方 (或需要訂閱或註冊)。將 isAccessibleForFree 屬性設為 False,即可指定這個部分位於付費牆後方。

AMP 須知

以下是使用 AMP 網頁時要考量的事項:

  • 如果您有含付費牆內容的 AMP 網頁,請視情況使用 amp-subscriptions
  • 請確保您的授權端點會將內容存取權授予 Google 和其他服務供應商的對應漫遊器 (因發布者而異)。
  • 請確保 AMP 和非 AMP 網頁都採用相同的漫遊器存取權政策,否則可能會導致 Search Console 中出現內容不一致錯誤。

Google 搜尋中生成式 AI 的注意事項

AI 摘要和 AI 模式會依據網頁等各種來源提供主題或查詢的預覽,因此適用 Google 搜尋的預覽控制項

確認 Google 能夠檢索您的網頁並將其編入索引

如果想讓 Google 檢索含付費牆的內容並建立索引,請務必讓 GooglebotGooglebot-News (如果適用) 能夠存取您的網頁。

使用網址檢查工具測試 Google 檢索及轉譯您網站上網址的情形。

控管搜尋結果中顯示的資訊

如果不想讓特定部分的內容出現在搜尋結果摘要中,請使用 data-nosnippet HTML 屬性。您也可以使用 max-snippet robots meta 標記來限制搜尋結果摘要顯示的字元數。

问题排查

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

  • 如果您使用了内容管理系统 (CMS) 或其他人负责管理您的网站,请向其寻求帮助。请务必向其转发列明问题细节的任何 Search Console 消息。
  • Google 不能保证使用结构化数据的功能一定会显示在搜索结果中。如需查看导致 Google 无法将您的内容显示为富媒体搜索结果的各种常见原因,请参阅结构化数据常规指南
  • 您的结构化数据可能存在错误。请参阅结构化数据错误列表
  • 如果您的网页受到结构化数据手动操作的影响,其中的结构化数据将会被忽略(但该网页仍可能会出现在 Google 搜索结果中)。如需修正结构化数据问题,请使用“人工处置措施”报告
  • 再次查看相关指南,确认您的内容是否未遵循指南。问题可能是因为出现垃圾内容或使用垃圾标记导致的。不过,问题可能不是语法问题,因此富媒体搜索结果测试无法识别这些问题。
  • 针对富媒体搜索结果缺失/富媒体搜索结果总数下降进行问题排查
  • 请等待一段时间,以便 Google 重新抓取您的网页并重新将其编入索引。请注意,网页发布后,Google 可能需要几天时间才会找到和抓取该网页。有关抓取和索引编制的常见问题,请参阅 Google 搜索抓取和索引编制常见问题解答
  • Google 搜索中心论坛中发帖提问。