訂閱和付費牆內容 (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

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 資訊摘要會依據網頁等各種來源提供主題或查詢的預覽,因此適用 Google 搜尋的預覽控制項

與 AI 資訊摘不同,瀏覽時的 AI 工具是獨立功能,如果網頁上有付費牆結構化資料,則不會顯示付費牆文章的重點內容。

確認 Google 能夠檢索您的網頁並為其建立索引

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

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

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

如果不希望 Google 顯示網頁的快取連結,請使用 noarchive robots meta 標記

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

疑難排解

如果無法順利導入結構化資料,或是偵錯時遇到困難,請參考下列資源。

  • 如果您使用內容管理系統 (CMS) 或者有他人代您處理網站事務,請向對方尋求協助。請務必將所有與問題相關的 Search Console 訊息都轉寄給對方,這些訊息會針對問題提供詳細說明。
  • Google 不保證採用結構化資料的功能一定會顯示在搜尋結果中。如要瞭解為何 Google 無法將您的內容顯示為複合式搜尋結果,請參閱結構化資料通用指南裡的常見原因清單。
  • 結構化資料可能含有錯誤。請查看結構化資料錯誤清單
  • 如果您的網頁遭到結構化資料專人介入處理處置,系統會忽略網頁上的結構化資料,但該網頁仍然會出現在 Google 搜尋結果中。請使用專人介入處理報告來修正結構化資料問題
  • 再次查看指南規範,確認您的內容是否符合規定。問題可能是因為垃圾內容或不當使用的標記所引起。不過,因為問題可能與語法無關,所以複合式搜尋結果測試無法找出問題所在。
  • 疑難排解:未出現複合式搜尋結果/複合式搜尋結果總數減少
  • 請等待一段時間,讓系統執行重新檢索和重新建立索引作業。在發布網頁後,Google 可能需要幾天時間才會找到網頁並進行檢索。如有關於檢索和索引建立作業的一般問題,請參閱 Google 搜尋檢索和索引常見問題
  • 前往 Google 搜尋中心論壇發文提問。