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.
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 dotyczące wyszukiwarki
- 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 funkcjonalną platformę społecznościową, możesz użyć znacznika
SocialMediaPosting
, czyli typu nadrzędnegoDiscussionForumPosting
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ępnienie 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 |
Monitorowanie wyników z elementami rozszerzonymi w Search Console
Search Console to narzędzie, które pomaga monitorować skuteczność stron w wyszukiwarce Google. Aby Twoja witryna mogła pojawiać się w wynikach wyszukiwania Google, nie musisz rejestrować jej w Search Console. Jeśli jednak to zrobisz, lepiej zrozumiesz, jak robot Google widzi Twoją witrynę i jak możesz mu ułatwić jej skanowanie. Zalecamy sprawdzenie danych w Search Console w tych przypadkach:
- po pierwszym wdrożeniu uporządkowanych danych,
- po opublikowaniu nowych szablonów lub zaktualizowaniu kodu,
- podczas okresowego analizowania ruchu.
Po pierwszym wdrożeniu uporządkowanych danych
Gdy Google zindeksuje Twoje strony, poszukaj problemów w odpowiednim raporcie o stanie wyników z elementami rozszerzonymi. W idealnej sytuacji powinno się pojawić więcej elementów prawidłowych, a liczba elementów nieprawidłowych nie powinna się zwiększyć. Jeśli zauważysz problemy w uporządkowanych danych:
- Napraw nieprawidłowe elementy
- Sprawdź opublikowany adres URL, by zobaczyć, czy problem nadal występuje.
- Poproś o weryfikację, korzystając z raportu o stanie.
Po opublikowaniu nowych szablonów lub zaktualizowaniu kodu
Po wprowadzeniu istotnych zmian w witrynie monitoruj wzrost liczby nieprawidłowych elementów w uporządkowanych danych.- Możesz zauważyć większą liczbę elementów nieprawidłowych, jeśli wprowadzisz nowy szablon, który nie działa, lub jeśli Twoja witryna wykorzystuje istniejący szablon w nowy i nieprawidłowy sposób.
- Jeśli okaże się, że jest mniej prawidłowych elementów (ale liczba nieprawidłowych elementów się nie zwiększyła), być może na swoich stronach nie umieszczasz już uporządkowanych danych. Użyj narzędzia do sprawdzania adresów URL, by dowiedzieć się, co jest przyczyną problemu.
Okresowe analizowanie ruchu
Analizuj ruch w wyszukiwarce Google za pomocą raportu skuteczności. Zawarte w nim dane pokazują, jak często Twoja strona wyświetla się w wyszukiwarce jako wynik z elementami rozszerzonymi, jak często użytkownicy ją klikają i jaka jest jej średnia pozycja w wynikach wyszukiwania. Możesz też pobrać te wyniki automatycznie za pomocą interfejsu Search Console API.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.