訂閱和付費牆內容 (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 的注意事項

生成搜尋體驗 (SGE) 總覽是透過 AI 技術輔助生成。生成依據為網路上的資訊與 Google 知識圖譜;Google 知識圖譜是有關人物、地點和事物的資訊集合。透過程式碼片段控制項封鎖的內容不會顯示在總覽中。

SGE 旨在協助使用者發掘網路上的實用資訊,除了可以提供總覽頁面中的內容,還可提供探索的出發點,讓使用者進一步探索相關資訊。隨著 Google 搜尋功能持續擴展,SGE 總覽可能會提供付費牆內容的連結,讓使用者探索這些網頁。

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

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

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

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

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

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

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

Troubleshooting

If you're having trouble implementing or debugging structured data, here are some resources that may help you.

  • If you're using a content management system (CMS) or someone else is taking care of your site, ask them to help you. Make sure to forward any Search Console message that details the issue to them.
  • Google does not guarantee that features that consume structured data will show up in search results. For a list of common reasons why Google may not show your content in a rich result, see the General Structured Data Guidelines.
  • You might have an error in your structured data. Check the list of structured data errors and the Unparsable structured data report.
  • If you received a structured data manual action against your page, the structured data on the page will be ignored (although the page can still appear in Google Search results). To fix structured data issues, use the Manual Actions report.
  • Review the guidelines again to identify if your content isn't compliant with the guidelines. The problem can be caused by either spammy content or spammy markup usage. However, the issue may not be a syntax issue, and so the Rich Results Test won't be able to identify these issues.
  • Troubleshoot missing rich results / drop in total rich results.
  • Allow time for re-crawling and re-indexing. Remember that it may take several days after publishing a page for Google to find and crawl it. For general questions about crawling and indexing, check the Google Search crawling and indexing FAQ.
  • Post a question in the Google Search Central forum.