Uporządkowane dane dotyczące treści płatnych i dostępnych w ramach subskrypcji (CreativeWork
)
Z tego artykułu dowiesz się, jak używać formatu JSON-LD schema.org, aby oznaczać w witrynie treści płatne za pomocą właściwości CreativeWork
. Uporządkowane dane pomagają Google odróżnić treści płatne od maskowania, które jest niezgodne z zasadami dotyczącymi spamu.
Dowiedz się więcej o treściach płatnych i dostępnych w ramach subskrypcji.
Przykład
Oto przykład uporządkowanych danych NewsArticle
z treściami płatnymi.
<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>
Wytyczne
Aby umożliwić wyświetlanie strony w wynikach wyszukiwania, musisz zapewnić jej zgodność z ogólnymi wytycznymi dotyczącymi uporządkowanych danych oraz ze wskazówkami technicznymi. W przypadku treści płatnych obowiązują też te wytyczne:
- Użycie formatu JSON-LD i mikrodanych to akceptowane metody definiowania uporządkowanych danych w przypadku treści płatnych.
- Nie zagnieżdżaj sekcji z treścią.
-
Dla właściwości
cssSelector
używaj tylko selektorów.class
.
Dodawanie znaczników do treści płatnych
Jeśli korzystanie z Twojej witryny jest oparte na subskrypcji lub jeśli dostęp do treści, które mają być indeksowane, wymaga rejestracji użytkownika, wykonaj te czynności. Podany tu przykład dotyczy uporządkowanych danych NewsArticle
. Pamiętaj, żeby wykonać te czynności w przypadku wszystkich wersji Twojej strony (w tym AMP i innych niż AMP).
-
Dodaj nazwę klasy do każdej sekcji z treściami płatnymi na stronie. Na przykład:
<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>
-
Dodaj uporządkowane dane
NewsArticle
. -
Dodaj zaznaczone uporządkowane dane JSON-LD do uporządkowanych danych obiektu
NewsArticle
.{ "@context": "https://schema.org", "@type": "NewsArticle", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://example.org/article" }, (...) "isAccessibleForFree": false, "hasPart": { "@type": "WebPageElement", "isAccessibleForFree": false, "cssSelector": ".paywall" } }
- Zweryfikuj kod za pomocą testu wyników z elementami rozszerzonymi i napraw błędy krytyczne.
Wiele sekcji z treściami płatnymi
Jeśli na stronie masz wiele sekcji z treściami płatnymi, dodaj nazwy klas w postaci tablicy.
Oto przykład sekcji z treściami płatnymi na stronie:
<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>
Oto przykład uporządkowanych danych obiektu NewsArticle
z wieloma sekcjami zawierającymi treści płatne.
{ "@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" } ] }
Typy obsługiwane
Te znaczniki są obsługiwane w przypadku typu CreativeWork
lub jednego z bardziej określonych typów CreativeWork
:
Można używać wielu typów schema.org, np. tych:
"@type": ["Article", "LearningResource"]
Aby robot Google rozpoznał, że Twój artykuł zawiera treści płatne, musisz w nim określić wymagane właściwości. Możesz dodać właściwości zalecane, aby dokładniej określić, które sekcje strony są dostępne za paywallem (albo wymagają subskrypcji bądź rejestracji).
Właściwości wymagane | |
---|---|
isAccessibleForFree
|
Określa, czy artykuł jest ogólnodostępny czy ukryty za paywallem (albo wymaga subskrypcji lub rejestracji). Ustaw właściwość |
Właściwości zalecane | |
---|---|
hasPart.cssSelector
|
Selektor CSS, który odwołuje się do nazwy klasy ustawionej w kodzie HTML, aby określić sekcję płatną. |
hasPart.@type
|
Ustaw wartość |
hasPart.isAccessibleForFree
|
Określa, czy ta sekcja artykułu jest dostępna za paywallem (albo wymaga subskrypcji lub rejestracji). Ustaw właściwość |
Uwaga dotycząca AMP
Oto lista uwag, o których musisz pamiętać, jeśli używasz stron AMP:
-
Jeśli masz stronę AMP z treściami płatnymi, użyj w odpowiednich przypadkach komponentu
amp-subscriptions
. - Upewnij się, że punkt końcowy autoryzacji zapewnia dostęp do treści odpowiednim robotom Google i innych firm – zależy to od wydawcy.
- Upewnij się, że zasady dostępu dla botów są takie same w przypadku stron AMP i stron w innych formatach. W przeciwnym razie w Search Console mogą zostać zgłoszone błędy niezgodności treści.
Uwagi na temat generatywnej AI w wyszukiwarce
Streszczenia są podglądem informacji związanych z danym tematem lub zapytaniem, wygenerowanym przez AI na podstawie różnych źródeł, w tym stron internetowych. W związku z tym podlegają ustawieniom podglądu treści w wyszukiwarce.
Narzędzia oparte na AI podczas przeglądania, funkcja oddzielna od streszczeń wygenerowanych przez AI, nie będzie zawierać najważniejszych punktów z płatnych artykułów, jeśli uporządkowane dane paywalla znajdują się na stronie.
Jak sprawdzić, czy Google może indeksować i skanować Twoje strony
Jeśli chcesz, żeby roboty Google indeksowały i skanowały całą stronę (w tym sekcje płatne), sprawdź, czy Googlebot (a w odpowiednich przypadkach także Googlebot-News
) ma dostęp do strony.
Użyj narzędzia do sprawdzania adresów URL, by zobaczyć, jak Google indeksuje i renderuje adres URL w Twojej witrynie.
Określanie, jakie informacje mają być widoczne w wynikach wyszukiwania
Aby w Google nie wyświetlał się link do Twojej strony zapisany w pamięci podręcznej, użyj tagu noarchive
robots meta
.
Jeśli chcesz wykluczyć niektóre fragmenty treści z wyników wyszukiwania, użyj atrybutu HTML data-nosnippet
.
Możesz też ograniczyć liczbę znaków we fragmencie w wyniku wyszukiwania, używając tagu 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.