Структурированные данные для форумов (DiscussionForumPosting
)
Разметка для форумов предназначена для сайтов форумов или аналогичных ресурсов, на которых пользователи обмениваются своим мнением по различным вопросам. Она помогает нашим роботам выявлять обсуждения на веб-ресурсах этого типа и может использоваться такими функциями Google Поиска, как Обсуждения и форумы.
Как использовать разметку типа DiscussionForumPosting
на форуме
Мы рекомендуем размещать комментарии под публикацией, к которой они относятся. Если обсуждения на форуме имеют другую структуру, отображайте ее в формате дерева комментариев:
{ "@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", ... }] }] }
При использовании линейной структуры, например с размещением ответов после исходной записи, целесообразно отображать их в виде комментариев под такой записью. По возможности исходная запись (со ссылкой на главную страницу) должна присутствовать на всех последующих страницах обсуждения:
{ // 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", ... }] }
Если URL относится к одной записи, задайте основной объект DiscussionForumPosting
с помощью свойств mainEntity
или mainEntityOfPage
:
{ "@context": "https://schema.org", "@type": "WebPage", "url": "https://example.com/post/very-popular-thread", "mainEntity": { "@type": "DiscussionForumPosting" ... } }
Если на одной странице, например предназначенной для профиля, темы или категории, может быть несколько записей, то не стоит размещать на ней всю относящуюся к ним информацию – лучше сделать ее доступной по клику (в ответе или другом формате). Вы также можете включить в разметку только те данные, которые присутствуют на странице (в том числе URL записи, к которой относится обсуждение).
Не помечайте одну из записей на странице как основной объект, если страница не предназначена для обсуждения этой записи. Чтобы пометить страницы как связанный набор записей, можно связать их все с типами Collection
или ItemList
.
Как добавлять структурированные данные
Структурированные данные – стандартизированный формат, который позволяет предоставлять информацию о странице и классифицировать ее контент. О том, как это работает, рассказывается в другой статье.
Ниже в общих чертах описано, как создать, проверить и добавить на сайт структурированные данные. Пошаговые инструкции вы найдете в практической работе, посвященной добавлению структурированных данных на веб-страницу.
- Добавьте обязательные свойства. Узнайте, в каких частях страницы нужно размещать структурированные данные выбранного вами формата.
- Следуйте рекомендациям.
- Протестируйте свой код с помощью инструмента проверки расширенных результатов. Если будут обнаружены критические ошибки, устраните их. Мы также рекомендуем устранить некритические ошибки, отмеченные в инструменте. Это может привести к повышению качества структурированных данных, хотя страницы будут подходить для создания расширенных результатов и без этого.
- Опубликуйте страницу и с помощью инструмента проверки URL выясните, как она выглядит для робота Googlebot. Убедитесь, что доступ Google к странице не заблокирован файлом robots.txt или метатегом
noindex
и авторизация на ней не требуется. Если все в порядке, то запросите повторное сканирование ваших URL. - Отправляйте нам файл Sitemap, чтобы информировать нас об изменениях на сайте. Отправку такого файла можно автоматизировать с помощью Search Console Sitemap API.
Примеры
В примере разметки ниже показана страница форума с линейной неразветвленной структурой комментариев.
<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>
Правила
Структурированные данные для форумов должны соответствовать указанным ниже требованиям.
- Общие правила в отношении структурированных данных
- Главное о Поиске
- Требования к контенту
- Технические требования
Требования к контенту
- Используйте разметку
DiscussionForumPosting
только для описания записей, которые создаются пользователями на сайте. Она не предназначена для контента, созданного издателями сайтов или их представителями. - Если ваш сайт больше напоминает обычную платформу социальной сети, вы можете использовать разметку
SocialMediaPosting
. Она представляет собой родительский тип разметки дляDiscussionForumPosting
и предполагает соблюдение тех же требований. - Несмотря на то что структурированные данные типов
Article
,ImageObject
иVideoObject
поддерживают аналогичную разметку для комментариев, информации об авторе и статистике взаимодействий, для этих объектов не следует применять разметку типаDiscussionForumPosting
. Ниже приведены примеры ее правильного использования.Для какого контента подходит эта разметка:
- для страниц форума сообщества, на котором пользователи обсуждают какую-нибудь игру;
- для платформы форума, содержащей множество веток обсуждений на различные темы;
- платформа социальной сети, на которой пользователи могут создавать записи и отвечать на комментарии или медиаконтент.
Для какого контента эта разметка не подходит:
- для статьи или записи в блоге, созданной представителем сайта (даже если к ней есть комментарии);
- для отзывов пользователей о товаре.
- Обратите внимание, что в большинстве примеров страница вопросов и ответов рассматривается как один из вариантов страницы форума с обсуждениями. Если на сайте форума размещены в основном вопросы и ответы, мы рекомендуем использовать разметку для вопросов и ответов. Если сайт состоит не только из вопросов и ответов, то лучше использовать разметку типа
DiscussionForumPosting
. - Разметка типа
DiscussionForumPosting
должна содержать полный текст записи, а разметкаComment
– ответ на нее, если он присутствует на странице.
Технические требования
- В отличие от наших стандартных рекомендаций для структурированных данных, мы советуем использовать для разметки
DiscussionForumPosting
формат микроданных (или RDFa). Так вам не придется многократно использовать одни и те же большие блоки текста внутри разметки. Однако это только рекомендация, и формат JSON-LD тоже поддерживается.
Типы структурированных данных
В этом разделе описаны типы структурированных данных, которые связаны с типом DiscussionForumPosting
.
Чтобы ваш контент мог появляться в результатах поиска Google, необходимо задать обязательные свойства. Также стоит добавить и рекомендуемые свойства: благодаря им пользователи Google смогут сразу получить более полное представление о содержании и ходе обсуждения.
DiscussionForumPosting
или SocialMediaPosting
Тип разметки DiscussionForumPosting
используется для описания оригинальной записи, которая является темой обсуждения. Обычно она представляет собой текст, но может и полностью состоять из мультимедийного контента.
Обязательные свойства | |
---|---|
|
Person или Organization Информация об авторе записи. Чтобы роботам Google было проще найти сведения о нем среди кода, относящегося к различным функциям, следуйте нашим рекомендациям в отношении разметки со сведениями об авторе. Используя наши инструкции по структурированным данным для статей и страниц профиля, добавьте поддерживаемые свойства, позволяющие отправить в Google как можно больше информации об авторе. |
|
Text
Имя автора записи. |
|
Дата и время создания записи в формате ISO 8601. |
Одно из свойств text , image илиvideo |
Чтобы указать тип содержания записи, вам необходимо добавить одно из следующих свойств: Этого делать не нужно, если вы размещаете сведения о записи на другой странице (с внешним |
Рекомендуемые свойства | |
---|---|
|
Ссылка на веб-страницу, посвященную пользователю, который создал запись. Чаще всего это страница профиля на форуме. Советуем разметить информацию о странице, используя структурированные данные для страницы профиля. |
comment |
Комментарий к записи или ответ на нее (если применимо). Помечайте комментарии в том порядке, в котором они расположены на странице. |
creativeWorkStatus |
Если запись была удалена, но упоминается где-либо ещё, задайте для этого свойства значение |
dateModified |
Дата и время изменения записи в формате ISO 8601 (если применимо). Если запись не редактировалась, то не следует повторно указывать дату ее создания. |
|
Text
Заголовок записи. Если его нет, не используйте вместо него сокращенный текст записи. Заголовок не рекомендуется использовать для разметки |
image |
Любые изображения в записи (если применимо). Если их нет, не включайте в это поле изображение по умолчанию, значок или изображение-заполнитель. |
interactionStatistic |
Статистика пользователя, относящаяся к основной записи (если применимо). Google поддерживает следующие типы взаимодействий (
|
isPartOf |
Местонахождение записи, если применимо и она размещена в определенной части сайта,
например в отдельной ветке форума или группе. Если используется тип разметки |
|
CreativeWork
Исходный контент, упоминаемый в записи (если применимо). Обычно с помощью свойства Вот пример того, как можно указать, что запись содержит ссылку: ... "sharedContent": { "@type": "WebPage", url: "https://example.com/external-url" } ... |
text |
Текст в записи (если применимо). Это свойство используется очень часто, но его можно не указывать, если содержание записи относится к другому типу. |
|
URL
Канонический URL обсуждения. Если оно включает нескольких страниц, добавьте это свойство в URL первой страницы. Для одностраничного обсуждения обычно указывается текущий URL. |
video |
Любые видео в записи (если применимо). |
Comment
Тип разметки Comment
используется для описания комментария к исходной записи, помеченной как CreativeWork
(в данном случае это DiscussionForumPosting
). В этой разметке используется множество свойств, описанных в нашем руководстве для структурированных данных типа DiscussionForumPosting
.
Обязательные свойства | |
---|---|
|
Person или Organization Информация об авторе комментария. Чтобы роботам Google было проще найти информацию об авторе среди кода, который связан с различными функциями, следуйте нашим рекомендациям по разметке, относящейся к автору. Используя наши инструкции по структурированным данным для статей и страниц профиля, добавьте поддерживаемые свойства, позволяющие отправить в Google как можно больше информации об авторе. |
|
Дата и время добавления комментария в формате ISO 8601. Если комментарий не редактировался, то не следует повторно указывать дату его создания. |
Одно из свойств text , image или video |
Чтобы указать тип содержания комментария, вам необходимо добавить одно из следующих свойств: |
Рекомендуемые свойства | |
---|---|
|
Ссылка на веб-страницу, посвященную пользователю, который добавил комментарий. Чаще всего это страница профиля на форуме. Советуем разметить информацию о странице, используя структурированные данные для страницы профиля. |
comment |
Комментарий, который относится к какому-либо другому или отвечает на него (если применимо). Помечайте комментарии в том порядке, в котором они расположены на странице. |
creativeWorkStatus |
Если комментарий был удален, но упоминается где-либо ещё, задайте для этого свойства значение |
dateModified |
Дата и время последнего редактирования комментария в формате ISO 8601 (если применимо). |
image |
Любые изображения в комментарии (если применимо). Если их нет, не добавляйте в это поле изображение по умолчанию, значок или изображение-заполнитель. |
interactionStatistic |
Статистика пользователя, относящаяся к комментарию (если применимо). Google поддерживает следующие типы взаимодействий (
|
|
CreativeWork
Исходный контент, упоминаемый в комментарии (если применимо). Обычно с помощью свойства Вот пример того, как можно указать, что комментарий содержит ссылку: ... "sharedContent": { "@type": "WebPage", url: "https://example.com/external-url" } ... |
|
URL
URL этого конкретного комментария на странице (если применимо). Не указывайте в этом свойстве URL исходной записи. |
video |
Любые видео в комментарии (если применимо). |
InteractionCounter
Разметка InteractionCounter
позволяет отдельно подсчитать количество взаимодействий определенного типа. Она подходит как для свойств контента (DiscussionForumPosting
и Comment
), так и для свойств author
.
Обязательные свойства | |
---|---|
|
Integer
Информация о том, сколько раз происходило взаимодействие. |
|
Подтип типа Если вас интересует список действительных подтипов |
Сбор статистики по расширенным результатам в Search Console
С помощью Search Console вы можете собирать данные об эффективности страниц вашего ресурса в Google Поиске. Вам не обязательно регистрироваться в этом сервисе, чтобы ваши страницы попали в результаты поиска. Однако это позволит узнать, как роботы Google воспринимают сайт, и упростить им его обработку. Рекомендуем проверять информацию в Search Console в следующих случаях:
- После первого размещения структурированных данных
- После выпуска новых шаблонов или обновления кода
- При регулярном анализе трафика
После первого размещения структурированных данных
Когда ваши страницы будут проиндексированы, проверьте их на наличие ошибок с помощью отчета о статусе расширенных результатов. Желательно, чтобы количество объектов с правильной разметкой выросло, а число объектов с ошибками – нет. Если в структурированных данных будут обнаружены ошибки, примите следующие меры:
- Устраните проблемы в объектах.
- Проверьте исправленную страницу, чтобы узнать, обнаруживаются ли ошибки.
- Запросите проверку ресурса, используя отчет о статусе расширенных результатов.
После выпуска новых шаблонов или обновления кода
Если вы внесли значительные изменения на сайт, проверьте, не увеличилось ли число недействительных объектов, связанных со структурированными данными.- Увеличилось число недействительных объектов? Возможно, вы создали шаблон, с которым что-то не так, или имеющийся шаблон используется некорректно.
- Уменьшилось число действительных элементов, но не увеличилось количество недействительных? Возможно, на ваших страницах не размещены структурированные данные. Выяснить, с чем связаны ошибки, можно при помощи инструмента проверки URL.
При регулярном анализе трафика
Анализировать трафик сайта из Google Поиска можно с помощью отчета об эффективности. Из этого отчета вы узнаете, как часто страница появляется в Поиске в виде расширенного результата, с какой регулярностью пользователи нажимают на нее и какова ее средняя позиция в результатах поиска. Эти сведения также можно автоматически получать с помощью Search Console API.Устранение неполадок
Если у вас возникли трудности с добавлением или отладкой структурированных данных, вам помогут ресурсы и сведения, доступные по приведенным ниже ссылкам.
- Если вы используете систему управления контентом (CMS) или поручили настройку сайта другому человеку, обратитесь за помощью к нему или разработчику CMS. Не забудьте переслать ему сообщения о проблеме, полученные вами в Search Console.
- Google не гарантирует показ вашего контента в результатах поиска, которые формируются на основе структурированных данных. Возможные причины, по которым ваши материалы могут не показываться в виде расширенных результатов, перечислены в общих рекомендациях по использованию структурированных данных.
- Ознакомьтесь со списком типичных ошибок в структурированных данных и проверьте, всё ли у вас правильно.
- Если мы вручную приняли меры в отношении страницы, недопустимые структурированные данные на ней будут игнорироваться до тех пор, пока вы не исправите код. При этом сама страница может появляться в результатах поиска и дальше. Чтобы устранить проблемы со структурированными данными, воспользуйтесь отчетом о мерах, принятых вручную.
- Ещё раз изучите рекомендации, чтобы выяснить, соответствует ли им ваш контент. Проблема может быть связана со спамом в контенте или разметке, а не с ошибками в синтаксисе. Тогда ее не получится выявить с помощью инструмента проверки расширенных результатов.
- Узнайте, что может стоять за отсутствием расширенных результатов или уменьшением их общего количества.
- Робот Googlebot сканирует и индексирует страницы не сразу после обновления контента. С момента публикации страницы может пройти несколько дней, пока Google обнаружит и просканирует ее. Мы собрали на отдельной странице ответы на часто задаваемые вопросы о сканировании и индексировании.
- В случае необходимости задавайте вопросы на форуме Центра Google Поиска