Gói thuê bao và nội dung có tường phí

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 nguyên tắc của chúng tôi). 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",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://example.org/article"
      },
      "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"
      },
      "publisher": {
         "name": "The Exemplary Times",
         "@type": "Organization",
         "logo": {
            "@type": "ImageObject",
            "url": "https://example.org/logo.jpg"
         }
      },
      "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 quyền truy cập dựa trên gói thuê bao vào nội dung trên trang web của mình hoặc nếu người dùng phải đăng ký để truy cập được vào nội dung bất kỳ 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 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 đượ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 có 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 các 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 cho các bot thích hợp của Google và các bên khác quyền truy cập vào nội dung của bạn. Đ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 trong 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 dùng thẻ meta robots noarchive.

Để loại trừ một số mục nội dung của bạn xuất hiện trong đoạn trích của 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 xuất hiện trong kết quả tìm kiếm bằ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.