Dữ liệu có cấu trúc cho gói thuê bao và nội dung có tường phí (CreativeWork)

Trang này mô tả cách dùng JSON-LD của schema.org để biểu thị nội dung có tường phí trên trang web của bạn bằng các thuộc tính CreativeWork. Dữ liệu có cấu trúc này giúp Google phân biệt nội dung có tường phí với nội dung sử dụng kỹ thuật che giấu (một kỹ thuật vi phạm các chính sách về nội dung rác). Hãy tìm hiểu thêm về gói thuê bao và nội dung có tường phí.

Ví dụ

Sau đây là một ví dụ về dữ liệu có cấu trúc NewsArticle chứa nội dung có tường phí.

<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"
      },
      "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>

Nguyên tắc

Bạn phải tuân thủ nguyên tắc chung về dữ liệu có cấu trúcnguyên tắc kỹ thuật để trang của bạn đủ điều kiện xuất hiện trong kết quả tìm kiếm. Ngoài ra, những nguyên tắc sau đây sẽ áp dụng cho nội dung có tường phí:

  • Định dạng JSON-LD và vi dữ liệu là những phương thức được chấp nhận để chỉ định dữ liệu có cấu trúc cho nội dung có tường phí.
  • Đừng lồng các mục nội dung.
  • Chỉ sử dụng các bộ chọn .class cho thuộc tính cssSelector.

Thêm mã đánh dấu vào nội dung có tường phí

Nếu bạn cung cấp cho người dùng quyền truy cập theo gói thuê bao để xem nội dung trên trang web hoặc nếu người dùng phải đăng ký để truy cập vào nội dung mà bạn muốn lập chỉ mục, hãy làm theo những bước dưới đây. Ví dụ sau áp dụng cho dữ liệu có cấu trúc NewsArticle. Hãy nhớ làm theo những bước này cho mọi phiên bản của trang (gồm cả phiên bản AMP và không phải AMP).

  1. Thêm tên loại (class) xung quanh mỗi mục có tường phí của trang. Ví dụ:
    <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. Thêm dữ liệu có cấu trúc NewsArticle.
  3. Thêm dữ liệu có cấu trúc JSON-LD được làm nổi bật vào dữ liệu có cấu trúc NewsArticle của bạn.
    {
      "@context": "https://schema.org",
      "@type": "NewsArticle",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://example.org/article"
      },
      (...)
      "isAccessibleForFree": "False",
      "hasPart": {
        "@type": "WebPageElement",
        "isAccessibleForFree": "False",
        "cssSelector": ".paywall"
      }
    }

Nhiều mục có tường phí

Nếu trang của bạn chứa nhiều mục có tường phí, hãy thêm tên loại dưới dạng một mảng dữ liệu.

Dưới đây là ví dụ về các mục có tường phí trên trang:

<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, and requires a subscription or registration.</div>
</body>

Dưới đây là ví dụ về dữ liệu có cấu trúc NewsArticle chứa nhiều mục có tường phí.

{
  "@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"
    }
  ]
}

Các loại dữ liệu được hỗ trợ

Mã đánh dấu này được hỗ trợ cho loại CreativeWork hoặc một trong những loại cụ thể hơn của CreativeWork như sau:

Bạn có thể dùng nhiều loại dữ liệu trên schema.org, chẳng hạn như sau:

"@type": ["Article", "LearningResource"]

Những điều cần cân nhắc khi sử dụng AMP

Sau đây là danh sách những điều cần cân nhắc nếu bạn dùng trang AMP:

  • Nếu bạn có một trang AMP chứa nội dung có tường phí, hãy dùng amp-subscription nếu thích hợp.
  • Đảm bảo rằng điểm cuối ủy quyền của bạn cấp quyền truy cập nội dung cho các bot thích hợp của Google và các bên khác. Điều này tùy thuộc vào mỗi nhà xuất bản.
  • Đảm bảo rằng các trang AMP và không phải AMP của bạn đều có chính sách giống nhau về quyền truy cập của bot. Nếu không, trong Search Console có thể xuất hiện các lỗi nội dung không khớp.

Đảm bảo Google có thể thu thập dữ liệu và lập chỉ mục các trang của bạn

Nếu bạn muốn Google thu thập dữ liệu và lập chỉ mục nội dung của mình (gồm cả các mục có tường phí), hãy đảm bảo rằng Googlebot (và Googlebot-News nếu có) có thể truy cập vào trang của bạn.

Hãy dùng Công cụ kiểm tra URL để kiểm tra cách Google thu thập dữ liệu và hiển thị một URL trên trang web của bạn.

Kiểm soát thông tin xuất hiện trên kết quả tìm kiếm

Để ngăn Google hiển thị một đường liên kết lưu trong bộ nhớ đệm cho trang của bạn, hãy sử dụng thẻ meta robots noarchive.

Để loại một số mục nội dung của bạn khỏi đoạn trích trong kết quả tìm kiếm, hãy dùng thuộc tính HTML data-nosnippet. Bạn cũng có thể giới hạn số lượng ký tự của đoạn trích trong kết quả tìm kiếm bằng cách dùng thẻ meta robots max-snippet.

Khắc phục sự cố

Nếu gặp sự cố khi triển khai hoặc gỡ lỗi dữ liệu có cấu trúc, thì bạn có thể tham khảo một số tài nguyên trợ giúp sau đây.