Uporządkowane dane forum dyskusyjnego (DiscussionForumPosting
)
Znaczniki forum dyskusyjnego są przeznaczone dla witryn w stylu forum, na których użytkownicy wspólnie dzielą się swoimi komentarzami. Gdy strony forum dodają te znaczniki, wyszukiwarka Google może lepiej rozpoznawać dyskusje online w internecie i używać tych znaczników w funkcjach takich jak Dyskusje i fora oraz Komentarze.
Jak korzystać z danych DiscussionForumPosting
na forum
Ogólnie zalecamy zagnieżdżanie komentarzy pod postem, do którego się odnoszą. Jeśli forum ma własną strukturę wątków, użyj drzewa komentarzy, aby odzwierciedlić jego strukturę:
{ "@context": "https://schema.org", "@type": "DiscussionForumPosting", "headline": "Very Popular Thread", ... "comment": [{ "@type": "Comment", "text": "This should not be this popular", ... "comment": [{ "@type": "Comment", "text": "Yes it should", ... }] }] }
Jeśli ma ono bardziej liniowy charakter, np. zawiera oryginalny post, a następnie serię odpowiedzi, umieść je wszystkie pod pierwotnym postem jako komentarze. Najlepiej, gdyby późniejsze strony z treściami na wielostronicowych forach zawierały oryginalny post z adresem URL strony głównej:
{ // JSON-LD on non-threaded forum at https://example.com/post/very-popular-thread/14 "@context": "https://schema.org", "@type": "DiscussionForumPosting", "headline": "Very Popular Thread", // Only the headline/topic is explicitly present "url": "https://example.com/post/very-popular-thread", ... "comment": [{ "@type": "Comment", "text": "First Post on this Page", ... },{ "@type": "Comment", "text": "Second Post on this Page", ... }] }
Jeśli adres URL dotyczy głównie jednego posta, użyj elementu mainEntity
(lub mainEntityOfPage
), aby wskazać główny element DiscussionForumPosting
:
{ "@context": "https://schema.org", "@type": "WebPage", "url": "https://example.com/post/very-popular-thread", "mainEntity": { "@type": "DiscussionForumPosting" ... } }
W przypadku stron internetowych z listą postów (np. na stronie profilu, tematu lub kategorii) często zdarza się, że nie wszystkie informacje są widoczne na tej samej stronie, a użytkownik musi kliknąć w celu uzyskania dodatkowych informacji (np. odpowiedzi). To Ty decydujesz, czy chcesz uwzględnić tylko informacje znajdujące się na stronie (oraz dodać adres URL posta z konkretną dyskusją).
Nie oznaczaj jednego posta na stronie jako elementu głównego, jeśli nie jest to strona dyskusji dotyczącej tego posta. Aby pokazać, że strony są powiązane z zestawem postów, warto dołączyć je wszystkie do Collection
lub ItemList
.
Dodawanie uporządkowanych danych
Uporządkowane dane to standardowy format udostępniania informacji o stronie i klasyfikowania jej zawartości. Jeśli dopiero zaczynasz, dowiedz się, jak działają uporządkowane dane.
Poniżej omawiamy sposób tworzenia, testowania i udostępniania uporządkowanych danych. Szczegółowe instrukcje dodawania uporządkowanych danych do strony internetowej znajdziesz w ćwiczeniach z programowania poświęconych uporządkowanym danym.
- Dodaj wymagane właściwości. Dowiedz się, w którym miejscu na stronie umieścić uporządkowane dane w zależności od używanego formatu.
- Przestrzegaj wskazówek.
- Zweryfikuj kod za pomocą testu wyników z elementami rozszerzonymi i napraw błędy krytyczne. Rozważ też usunięcie niekrytycznych problemów, które mogą zostać zgłoszone w narzędziu – to może poprawić jakość uporządkowanych danych (ale nie jest to konieczne, aby witryna kwalifikowała się do wyników z elementami rozszerzonymi).
- Możesz wdrożyć kilka stron z uporządkowanymi danymi i dzięki narzędziu do sprawdzania adresów URL zobaczyć, jak Google je odczytuje. Upewnij się, że Twoja strona jest dostępna dla Google i nie jest blokowana przez plik robots.txt lub tag
noindex
ani nie wymaga logowania. Jeśli strona wygląda dobrze, możesz poprosić Google o ponowne zindeksowanie adresów URL. - Aby na bieżąco informować Google o przyszłych zmianach, prześlij mapę witryny. Możesz zautomatyzować ten proces za pomocą interfejsu Search Console Sitemap API.
Przykłady
Poniższy przykładowy znacznik pokazuje bezwątkową, liniową stronę forum:
<html> <head> <title>I went to the concert!</title> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "DiscussionForumPosting", "mainEntityOfPage": "https://example.com/post/very-popular-thread", "headline": "I went to the concert!", "text": "Look at how cool this concert was!", "video": { "@type": "VideoObject", "contentUrl": "https://example.com/media/super-cool-concert.mp4", "name": "Video of concert", "uploadDate": "2024-03-01T06:34:34+02:00", "thumbnailUrl": "https://example.com/media/super-cool-concert-snap.jpg" }, "url": "https://example.com/post/very-popular-thread", "author": { "@type": "Person", "name": "Katie Pope", "url": "https://example.com/user/katie-pope", "agentInteractionStatistic": { "@type": "InteractionCounter", "interactionType": "https://schema.org/WriteAction", "userInteractionCount": 8 } }, "datePublished": "2024-03-01T08:34:34+02:00", "interactionStatistic": { "@type": "InteractionCounter", "interactionType": "https://schema.org/LikeAction", "userInteractionCount": 27 }, "comment": [{ "@type": "Comment", "text": "Who's the person you're with?", "author": { "@type": "Person", "name": "Saul Douglas", "url": "https://example.com/user/saul-douglas", "agentInteractionStatistic": { "@type": "InteractionCounter", "interactionType": "https://schema.org/WriteAction", "userInteractionCount": 167 } }, "datePublished": "2024-03-01T09:46:02+02:00" },{ "@type": "Comment", "text": "That's my mom, isn't she cool?", "author": { "@type": "Person", "name": "Katie Pope", "url": "https://example.com/user/katie-pope", "agentInteractionStatistic": { "@type": "InteractionCounter", "interactionType": "https://schema.org/WriteAction", "userInteractionCount": 8 } }, "datePublished": "2024-03-01T09:50:25+02:00", "interactionStatistic": { "@type": "InteractionCounter", "interactionType": "https://schema.org/LikeAction", "userInteractionCount": 7 } }] } </script> </head> <body> </body> </html>
<html> <body> <div id="main-post" itemtype="https://schema.org/DiscussionForumPosting" itemscope> <meta itemprop="mainEntityOfPage" content="https://example.com/post/very-popular-thread" /> <meta itemprop="url" content="https://example.com/post/very-popular-thread" /> <div class="author-block" itemprop="author" itemtype="https://schema.org/Person" itemscope> <div><a href="https://example.com/user/katie-pope" itemprop="url"><span itemprop="name">Katie Pope</span></a></div> <div itemprop="agentInteractionStatistic" itemtype="https://schema.org/InteractionCounter" itemscope> <span itemprop="userInteractionCount">8</span> <span itemprop="interactionType" content="https://schema.org/WriteAction">posts</span> </div> </div> <div itemprop="datePublished" content="2024-03-01T08:34:34+02:00">March 1</div> <div itemprop="headline">I went to the concert!</div> <div> <div itemprop="video" itemtype="https://schema.org/VideoObject" itemscope> <meta itemprop="name" content="Video of concert" /> <meta itemprop="contentUrl" content="https://example.com/media/super-cool-concert.mp4" /> <meta itemprop="uploadDate" content="2024-03-01T06:34:34+02:00" /> <meta itemprop="thumbnailUrl" content="https://example.com/media/super-cool-concert-snap.jpg" /> </div> <span itemprop="text">Look at how cool this concert was!</span> </div> <div itemprop="interactionStatistic" itemtype="https://schema.org/InteractionCounter" itemscope> <span itemprop="userInteractionCount">27</span> <span itemprop="interactionType" content="https://schema.org/LikeAction">likes</span> </div> <div id="comment-1" itemprop="comment" itemtype="https://schema.org/Comment" itemscope> <div class="author-block" itemprop="author" itemtype="https://schema.org/Person" itemscope> <div><a href="https://example.com/user/saul-douglas" itemprop="url"><span itemprop="name">Saul Douglas</span></a></div> <div itemprop="agentInteractionStatistic" itemtype="https://schema.org/InteractionCounter" itemscope> <span itemprop="userInteractionCount">167</span> <span itemprop="interactionType" content="https://schema.org/WriteAction">posts</span> </div> </div> <div itemprop="datePublished" content="2024-03-01T09:46:02+02:00">March 1</div> <div> <span itemprop="text">Who's the person you're with?</span> </div> </div> <div id="comment-2" itemprop="comment" itemtype="https://schema.org/Comment" itemscope> <div class="author-block" itemprop="author" itemtype="https://schema.org/Person" itemscope> <div><a href="https://example.com/user/katie-pope" itemprop="url"><span itemprop="name">Katie Pope</span></a></div> <div itemprop="agentInteractionStatistic" itemtype="https://schema.org/InteractionCounter" itemscope> <span itemprop="userInteractionCount">8</span> <span itemprop="interactionType" content="https://schema.org/WriteAction">posts</span> </div> </div> <div itemprop="datePublished" content="2024-03-01T09:50:25+02:00">March 1</div> <div> <span itemprop="text">That's my mom, isn't she cool?</span> </div> <div itemprop="interactionStatistic" itemtype="https://schema.org/InteractionCounter" itemscope> <span itemprop="userInteractionCount">7</span> <span itemprop="interactionType" content="https://schema.org/LikeAction">likes</span> </div> </div> </div> </body> </html>
Wytyczne
Aby uporządkowane dane z forum dyskusyjnego mogły być używane w wyszukiwarce Google, musisz przestrzegać tych wytycznych:
- Ogólne wytyczne dotyczące uporządkowanych danych
- Podstawowe zasady wyszukiwania
- Wskazówki dotyczące treści
- Wskazówki techniczne
Wskazówki dotyczące treści
- Używaj znaczników
DiscussionForumPosting
tylko do opisywania postów użytkowników w witrynie. Nie używaj tych znaczników w przypadku treści, których głównym autorem jest wydawca witryny lub jego przedstawiciele. - Jeśli Twoja witryna przypomina ogólną platformę mediów społecznościowych, możesz użyć
SocialMediaPosting
– jest to nadrzędny typ elementuDiscussionForumPosting
z tymi samymi wymaganiami. - Zalecamy stosowanie prawidłowych znaczników innych typów (
Article
,ImageObject
,VideoObject
), które mogą zawierać bardzo podobne znaczniki z komentarzami, informacjami o autorze i statystykami interakcji, ale nie powinny one zawierać znacznikówDiscussionForumPosting
. Oto kilka przykładów:Prawidłowe użycie:
- Strona społeczności, na której użytkownicy mogą rozmawiać o konkretnej grze
- Ogólna platforma z rozmaitymi treściami na podforum
- Platforma mediów społecznościowych, na której użytkownicy mogą publikować komentarze lub multimedia i odpowiadać na nie
Nieprawidłowe użycie:
- Artykuł lub blog napisany bezpośrednio przez przedstawiciela witryny (nawet z komentarzami).
- Opinie użytkowników o produkcie
- Pamiętaj, że w większości przypadków użycia Google strona z pytaniami i odpowiedziami jest uznawana za specjalny przypadek strony forum dyskusyjnego. Jeśli struktura witryny forum składa się głównie z pytań z odpowiedziami, zalecamy użycie znaczników pytań i odpowiedzi. Jeśli struktura jest bardziej ogólna i nie obejmuje zwykle pytań i odpowiedzi, lepszym wyborem będzie
DiscussionForumPosting
. - Upewnij się, że każdy znacznik
DiscussionForumPosting
zawiera cały tekst posta i że każdy znacznikComment
zawiera cały tekst odpowiedzi, jeśli znajduje się ona na tej stronie.
Wskazówki techniczne
- W odróżnieniu od naszych ogólnych preferencji dotyczących uporządkowanych danych zalecamy, aby w miarę możliwości używać znaczników
DiscussionForumPosting
w postaci mikrodanych (lub standardu RDFa). Zapobiega to konieczności powielania dużych bloków tekstu w znacznikach. Jest to jednak tylko zalecenie, a kod JSON-LD jest nadal w pełni obsługiwany.
Definicje typów uporządkowanych danych
W tej sekcji opisujemy typy uporządkowanych danych związane ze znacznikami DiscussionForumPosting
.
Aby treści mogły być wyświetlane w wyszukiwarce Google, musisz w nich stosować wymagane właściwości. Możesz też dodawać do nich właściwości zalecane, aby wzbogacać informacje o stronach forów dyskusyjnych dla wygody użytkowników.
DiscussionForumPosting
(lub SocialMediaPosting
)
Typ DiscussionForumPosting
określa oryginalny post, który jest tematem dyskusji. Zwykle składa się on z tekstu, ale może się zdarzyć, że post na forum będzie zawierał tylko treści multimedialne.
Właściwości wymagane | |
---|---|
|
Person lub Organization Informacje o autorze posta. Aby pomóc Google w lepszym rozpoznawaniu autorów w różnych funkcjach, postępuj zgodnie ze sprawdzonymi metodami dodawania znaczników autora. Uwzględnij jak najwięcej właściwości, które są przydatne w przypadku autora, używając obsługiwanych właściwości z uporządkowanych danych artykułu i strony profilu jako wskazówek. |
|
Text
Imię i nazwisko autora posta. |
|
Data i godzina opublikowania posta w formacie ISO 8601. |
Może to być text , image lub video . |
Aby odzwierciedlić treść posta, musisz użyć jednej z tych właściwości: Nie jest to wymagane, jeśli reprezentujesz posta na innej stronie (za pomocą zewnętrznego elementu |
Właściwości zalecane | |
---|---|
|
Link do strony internetowej, która jednoznacznie identyfikuje autora posta. Najprawdopodobniej jest to strona profilu na forum. Zalecamy oznaczenie tej strony za pomocą uporządkowanych danych strony profilu. |
comment |
Komentarz lub odpowiedź na posta (w stosownych przypadkach). Dodaj znaczniki do komentarzy w takiej kolejności, w jakiej występują na stronie. |
creativeWorkStatus |
Gdy post został usunięty, ale pozostaje dla zachowania kontekstu lub wątku, ustaw tę właściwość na |
dateModified |
Data i godzina edycji posta zostały zapisane w formacie ISO 8601 (w stosownych przypadkach). Jeśli nie nastąpiły żadne zmiany, nie musisz powielać daty publikacji. |
|
Text
Tytuł posta. Jeśli nie ma oddzielnego tytułu, nie duplikuj ani nie obcinaj tekstu w nagłówku. Nie jest to zalecane w przypadku |
image |
Ewentualne obrazy w treści posta. Jeśli nie ma żadnych obrazów, nie umieszczaj w tym polu obrazów domyślnych, ikon ani obrazów zastępczych. |
interactionStatistic |
Statystyki użytkowników zastosowane do głównego posta (w stosownych przypadkach). Google obsługuje te dane
|
isPartOf |
Główne źródło posta, jeśli post pojawi się w konkretnej części witryny (w stosownych przypadkach).
Może to być na przykład forum podrzędne lub grupa w większej witrynie. Jeśli używasz właściwości |
|
CreativeWork
Główna treść udostępniona w poście (jeśli ma zastosowanie). Najczęstszym sposobem użycia jest udostępnienie elementu Ten przykład pokazuje, jak dodać informację, że w poście jest udostępniony link: ... "sharedContent": { "@type": "WebPage", url: "https://example.com/external-url" } ... |
text |
Jakikolwiek tekst w poście (w stosownych przypadkach). Jest to bardzo częste, ale w niektórych przypadkach można go pominąć, jeśli post zawiera inne multimedia. |
|
URL
Kanoniczny URL dyskusji. W wątkach wielostronicowych ustaw tę właściwość na adres URL pierwszej strony. W przypadku pojedynczej dyskusji jest to zwykle bieżący adres URL. |
video |
Filmy w treści posta (jeśli są dostępne). |
Comment
Typ Comment
definiuje komentarz do oryginalnego elementu CreativeWork
. W tym przypadku jest to DiscussionForumPosting
. Wiele takich samych właściwości jest zgodnych z naszymi wytycznymi dotyczącymi atrybutu DiscussionForumPosting
.
Właściwości wymagane | |
---|---|
|
Person lub Organization Informacje o autorze komentarza. Aby pomóc Google w lepszym rozpoznawaniu autorów w różnych funkcjach, postępuj zgodnie ze sprawdzonymi metodami dodawania znaczników autora. Uwzględnij jak najwięcej właściwości, które są przydatne w przypadku autora, używając obsługiwanych właściwości z uporządkowanych danych artykułu i strony profilu jako wskazówek. |
|
Data i godzina dodania komentarza w formacie ISO 8601. Jeśli nie nastąpiły żadne zmiany, nie musisz powielać daty publikacji. |
Może to być text , image lub video . |
Aby odzwierciedlić treść komentarza, musisz użyć jednej z tych właściwości: |
Właściwości zalecane | |
---|---|
|
Link do strony internetowej, która jednoznacznie identyfikuje autora komentarza. Najprawdopodobniej jest to strona profilu na forum. Zalecamy oznaczenie tej strony za pomocą uporządkowanych danych strony profilu. |
comment |
Kolejny komentarz na temat komentarza lub w odpowiedzi na niego (w stosownych przypadkach). Oznacz komentarze w takiej kolejności, w jakiej się wyświetlają na stronie. |
creativeWorkStatus |
Jeśli komentarz został usunięty, ale pozostaje dla zachowania kontekstu lub wątku, ustaw tę właściwość na |
dateModified |
Data i godzina ostatniej edycji komentarza w formacie ISO 8601 (w stosownych przypadkach). |
image |
Wszelkie obrazy w tekście komentarza, jeśli są dostępne. Jeśli nie ma żadnych obrazów, nie umieszczaj w tym polu obrazów domyślnych, ikon ani obrazów zastępczych. |
interactionStatistic |
Statystyki użytkowników zastosowane do komentarza (w stosownych przypadkach). Google obsługuje te dane
|
|
CreativeWork
Główna treść udostępniona w poście (jeśli ma zastosowanie). Najczęstszym sposobem użycia jest udostępnianie elementu Ten przykład pokazuje, jak dodać informację, że w komentarzu jest udostępniony link: ... "sharedContent": { "@type": "WebPage", url: "https://example.com/external-url" } ... |
|
URL
Adres URL tego konkretnego komentarza na stronie (w stosownych przypadkach). Nie dodawaj tej właściwości, jeśli jest to tylko adres URL pierwotnego posta. |
video |
Filmy w tekście komentarza (jeśli są dostępne). |
InteractionCounter
Pole InteractionCounter
umożliwia powiązanie liczby z określonym typem interakcji. Można go używać zarówno we właściwościach treści (DiscussionForumPosting
i Comment
), jak i we właściwości author
.
Właściwości wymagane | |
---|---|
|
Integer
Liczba przypadków wykonania tej interakcji. |
|
Podtyp elementu Listę prawidłowych podtypów elementu |
使用 Search Console 监控富媒体搜索结果
Search Console 是一款工具,可帮助您监控网页在 Google 搜索结果中的显示效果。即使没有注册 Search Console,您的网页也可能会显示在 Google 搜索结果中,但注册 Search Console 能够帮助您了解 Google 如何查看您的网站并做出相应的改进。建议您在以下情况下查看 Search Console:
首次部署结构化数据后
等 Google 将网页编入索引后,请在相关的富媒体搜索结果状态报告中查看是否存在问题。 理想情况下,有效项目数量会增加,而无效项目数量不会增加。如果您发现结构化数据存在问题,请执行以下操作:
发布新模板或更新代码后
如果对网站进行重大更改,请监控结构化数据无效项目的增幅。- 如果您发现无效项目增多了,可能是因为您推出的某个新模板无法正常工作,或者您的网站以一种新的错误方式与现有模板交互。
- 如果您发现有效项目减少了(但无效项目的增加情况并不对应),可能是因为您的网页中未再嵌入结构化数据。请通过网址检查工具了解导致此问题的原因。
定期分析流量时
请使用效果报告分析您的 Google 搜索流量。数据将显示您的网页在 Google 搜索结果中显示为富媒体搜索结果的频率、用户点击该网页的频率以及网页在搜索结果中的平均排名。您还可以使用 Search Console API 自动提取这些结果。Rozwiązywanie problemów
Jeśli masz problem z zastosowaniem lub debugowaniem uporządkowanych danych, skorzystaj z tych rozwiązań:
- Jeśli korzystasz z systemu zarządzania treścią (CMS) lub ktoś inny zajmuje się Twoją witryną, poproś odpowiednią osobę o pomoc. Pamiętaj, aby przekazać tej osobie wszystkie wiadomości z Search Console, które zawierają szczegółowe informacje o problemie.
- Google nie gwarantuje, że funkcje wykorzystujące uporządkowane dane pojawią się w wynikach wyszukiwania. Listę typowych powodów, dla których Google może nie wyświetlać Twoich treści w wyniku z elementami rozszerzonymi, znajdziesz w Ogólnych wytycznych dotyczących uporządkowanych danych.
- Możliwe, że w uporządkowanych danych wystąpił błąd. Sprawdź listę błędów uporządkowanych danych i raport dotyczący uporządkowanych danych, których nie można przeanalizować.
- Jeśli wobec Twojej strony zostały podjęte ręczne działania dotyczące uporządkowanych danych, dane te zostaną zignorowane (mimo że strona nadal może się pojawiać w wynikach wyszukiwania Google). Aby rozwiązać problemy z uporządkowanymi danymi, użyj raportu Ręczne działania.
- Przejrzyj jeszcze raz wytyczne, aby sprawdzić, czy Twoje treści ich nie naruszają. Przyczyną problemu mogą być treści spamerskie lub użycie spamerskich znaczników. Jeśli jednak problem nie jest związany ze składnią, test wyników z elementami rozszerzonymi go nie wykryje.
- Rozwiązywanie problemów z brakującymi wynikami z elementami rozszerzonymi lub ze spadkiem całkowitej liczby wyników z elementami rozszerzonymi
- Poczekaj na ponowne zindeksowanie strony. Pamiętaj, że gdy opublikujesz stronę, Google może potrzebować kilku dni na jej znalezienie i zindeksowanie. Odpowiedzi na ogólne pytania dotyczące skanowania i indeksowania znajdziesz w artykule Najczęstsze pytania o indeksowanie i skanowanie w wyszukiwarce Google.
- Zadaj pytanie na forum Centrum wyszukiwarki Google.