Структуровані дані для форумів (Discussion)

Розмітка для форумів призначена для сайтів форумів або подібних ресурсів, на яких користувачі обмінюються своїми думками з різних питань. Вона допомагає нашим роботам виявляти дискусії на вебресурсах цього типу і може використовуватися такими функціями Пошуку Google, як Обговорення та форуми.

Ми рекомендуємо розміщувати коментарі під публікацією, до якої вони відносяться. Якщо обговорення на форумі мають іншу структуру, відобразіть її у форматі дерева коментарів:

{
  "@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.

Структуровані дані — стандартизований формат, який дозволяє надавати пошуковим системам інформацію про сторінку та класифікувати її вміст. Детальніше про принципи роботи структурованих даних…

Нижче в загальних рисах описано, як створити, перевірити та додати на сайт структуровані дані.

  1. Додайте обов’язкові властивості. Дізнайтеся, в яких частинах сторінки потрібно розміщувати структуровані дані обраного вами формату.
  2. Дотримуйтесь рекомендацій.
  3. Перевірте свій код за допомогою інструменту перевірки розширених результатів. Якщо будуть виявлені критичні помилки, усуньте їх. Ми також рекомендуємо усунути некритичні помилки, зазначені в інструменті. Це може призвести до підвищення якості структурованих даних, хоча сторінки будуть придатні для створення розширених результатів і без цього.
  4. Опублікуйте сторінку й за допомогою інструменту перевірки URL з’ясуйте, як вона виглядає для робота Googlebot. Переконайтеся, що доступ Google до сторінки не заблоковано файлом robots.txt або метатегом noindex і авторизація на ній не потрібна. Якщо все в порядку, то запросіть повторне сканування ваших URL.
  5. Надішліть нам файл 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>

Структуровані дані для форумів повинні відповідати наведеним нижче вимогам.

  • Використовуйте розмітку DiscussionForumPosting тільки для опису записів, які створюються користувачами на сайті. Вона не призначена для контенту, створеного видавцями сайтів або їх представниками.
  • Якщо ваш сайт більше нагадує звичайну платформу соціальної мережі, ви можете використовувати розмітку SocialMediaPosting. Вона являє собою батьківський тип розмітки для DiscussionForumPosting і передбачає дотримання тих самих вимог.
  • Незважаючи на те що структуровані дані типів Article, ImageObject та VideoObject підтримують аналогічну розмітку для коментарів, інформації про автора та статистику взаємодій, для цих об’єктів не слід застосовувати розмітку типу DiscussionForumPosting. Нижче наведено приклади її правильного використання. Для якого контенту підходить ця розмітка:
    • для сторінок форуму спільноти, на якому користувачі обговорюють якусь гру;
    • для платформи форуму, що містить безліч гілок дискусій на різні теми;
    • платформа соціальної мережі, на якій користувачі можуть створювати записи та відповідати на коментарі або медіаконтент.

    Для якого контенту ця розмітка не підходить:

    • для статті або запису в блозі, створеного представником сайту (навіть якщо до нього є коментарі);
    • для відгуків користувачів про товар.
  • Зверніть увагу, що в більшості прикладів сторінка запитань і відповідей розглядається як один з варіантів сторінки форуму з обговореннями. Якщо на сайті форуму розміщені в основному питання і відповіді, ми рекомендуємо використовувати розмітку для запитань і відповідей. Якщо сайт складається не тільки з запитань і відповідей, то краще використовувати розмітку типу DiscussionForumPosting.
  • Розмітка типу DiscussionForumPosting повинна містити повний текст запису, а розмітка Comment – відповідь на неї, якщо вона присутня на сторінці.
  • На відміну від наших стандартних рекомендацій для структурованих даних, ми радимо використовувати для розмітки DiscussionForumPosting формат мікроданих (або RDFa). Так вам не доведеться багаторазово використовувати одні й ті самі великі блоки тексту всередині розмітки. Однак це тільки рекомендація, і формат JSON-LD також підтримується.

У цьому розділі описані типи структурованих даних, які пов’язані з типом DiscussionForumPosting.

Щоб ваш контент міг з’являтися в результатах пошуку Google, необхідно встановити обов’язкові властивості. Також варто додати і рекомендовані властивості: завдяки їм користувачі Google зможуть відразу отримати більш повне уявлення про зміст і хід обговорення.

Тип розмітки DiscussionForumPosting використовується для опису оригінального запису, який є темою обговорення. Зазвичай він являє собою текст, але може й повністю складатися з мультимедійного контенту.

Обов’язкові властивості

author

Person або Organization

Інформація про автора запису. Щоб роботам Google було легше знаходити інформацію про нього серед коду, що відноситься до різних функцій, дотримуйтесь наших рекомендацій щодо розмітки з інформацією про автора.

Використовуючи наші інструкції щодо структурованих даних для статей і сторінок профілю, додайте підтримувані властивості, які дозволяють надсилати в Google якомога більше інформації про автора.

author.name

Text

Ім’я автора запису.

datePublished

DateTime

Дата і час створення запису у форматі ISO 8601.

Одна з властивостей text, image або video

Щоб вказати тип вмісту запису, вам потрібно додати одну з наступних властивостей:

Це не потрібно робити, якщо ви розміщуєте інформацію про запис на іншій сторінці (з зовнішнім url), наприклад, у наступних розділах обговорення або на сторінках для категорій на форумі.

Рекомендовані властивості

author.url

URL

Посилання на вебсторінку, присвячену користувачеві, який створив запис. Найчастіше це сторінка профілю на форумі. Радимо розмітити інформацію про сторінку, використовуючи структуровані дані для сторінки профілю.

comment

Comment

Коментар до запису або відповідь на нього (якщо застосовно). Позначайте коментарі в тому порядку, в якому вони розташовані на сторінці.

creativeWorkStatus

Text

Якщо запис було видалено, але він згадується деінде, задайте для цієї властивості значення Deleted (якщо застосовно).

dateModified

DateTime

Дата і час зміни запису у форматі ISO 8601 (якщо застосовується). Якщо запис не редагувався, не слід повторно вказувати дату його створення.

headline

Text

Заголовок запису. Якщо його немає, не використовуйте замість нього скорочений текст запису. Заголовок не рекомендується використовувати для розмітки SocialMediaPosting.

image

ImageObject або URL

Будь-які зображення в записі (якщо застосовно). Якщо їх немає, не включайте в це поле зображення за замовчуванням, значок або зображення-заповнювач.

interactionStatistic

InteractionCounter

Статистика користувача, що відноситься до основного запису (якщо застосовно).

Google підтримує наступні типи взаємодій (interactionTypes):

isPartOf

CreativeWork або URL

Місцерозташування запису, якщо застосовно і він розміщений у певній частині сайту, наприклад в окремій гілці форуму або групі. Якщо використовується тип розмітки CreativeWork (наприклад, WebPage), додайте властивість URL, щоб вказати її URL.

sharedContent

CreativeWork

Оригінальний контент, що згадується в записі (якщо застосовно). Зазвичай за допомогою властивості WebPages (з URL) вказують сторінку, на якій обговорюється тема, але вона також підтримує зображення й відео, особливо якщо вони є основним типом контенту в записі.

Ось приклад того, як можна вказати, що запис містить посилання:

 
 
  ...
  "sharedContent": { "@type": "WebPage", "url": "https://example.com/external-url" }
  ...
text

Text

Текст у записі (якщо застосовно). Ця властивість використовується дуже часто, але її можна не вказувати, якщо вміст запису відноситься до іншого типу.

url

URL

Канонічний URL обговорення. Якщо він включає кілька сторінок, додайте цю властивість до URL першої сторінки. Для односторінкового обговорення зазвичай вказується поточний URL.

video

VideoObject

Будь-які відео в записі (якщо є).

Тип розмітки Comment використовується для опису коментаря до вихідного запису, позначеного як CreativeWork (у цьому випадку це DiscussionForumPosting). У цій розмітці використовується безліч властивостей, описаних у нашому посібнику для структурованих даних типу DiscussionForumPosting.

Обов’язкові властивості

author

Person або Organization

Інформація про автора коментаря. Щоб роботам Google було легше знаходити інформацію про автора серед коду, який пов’язаний з різними функціями, дотримуйтесь наших рекомендацій щодо розмітки, що відноситься до автора.

Використовуючи наші інструкції щодо структурованих даних для статей і сторінок профілю, додайте підтримувані властивості, які дозволяють надсилати в Google якомога більше інформації про автора.

datePublished

DateTime

Дата і час додавання коментаря у форматі ISO 8601. Якщо коментар не редагувався, не слід повторно вказувати дату його створення.

Одна з властивостей text, image або video

Щоб вказати тип змісту коментаря, вам потрібно додати одну з наступних властивостей:

Рекомендовані властивості

author.url

URL

Посилання на вебсторінку, присвячену користувачеві, який додав коментар. Найчастіше це сторінка профілю на форумі. Радимо розмітити інформацію про сторінку, використовуючи структуровані дані для сторінки профілю.

comment

Comment

Коментар, який відноситься до будь-якого іншого або відповідає на нього (якщо застосовно). Позначайте коментарі в тому порядку, в якому вони розташовані на сторінці.

creativeWorkStatus

Text

Якщо коментар було видалено, але він згадується деінде, задайте для цієї властивості значення Deleted (якщо застосовно).

dateModified

DateTime

Дата і час останнього редагування коментаря у форматі ISO 8601 (якщо застосовується).

image

ImageObject або URL

Будь-які зображення в коментарі (якщо є). Якщо їх немає, не додавайте в це поле зображення за замовчуванням, значок або зображення-заповнювач.

interactionStatistic

InteractionCounter

Статистика користувача, що стосується коментаря (якщо є).

Google підтримує наступні типи взаємодій (interactionTypes):

sharedContent

CreativeWork

Оригінальний контент, що згадується в коментарі (якщо застосовно). Зазвичай за допомогою властивості WebPages (з URL) вказують сторінку, на якій обговорюється тема, але вона також підтримує зображення й відео, особливо якщо вони є основним типом контенту в записі.

Ось приклад того, як можна вказати, що коментар містить посилання:

 
 
  ...
  "sharedContent": { "@type": "WebPage", url: "https://example.com/external-url" }
  ...

url

URL

URL цього конкретного коментаря на сторінці (якщо застосовно). Не вказуйте в цій властивості URL вихідного запису.

video

VideoObject

Будь-які відео в коментарі (якщо застосовно).

Розмітка InteractionCounter дозволяє окремо підрахувати кількість взаємодій певного типу. Вона підходить як для властивостей контенту (DiscussionForumPosting та Comment), так і для властивостей author.

Обов’язкові властивості

userInteractionCount

Integer

Інформація про те, скільки разів відбувалася взаємодія.

interactionType

Підтип типу Action

Якщо вас цікавить список дійсних підтипів Action для цієї властивості, ознайомтеся з інформацією про властивість, у якій використовується InteractionCounter (наприклад, interactionStatistic).

За допомогою Search Console ви можете збирати дані про ефективність сторінок вашого ресурсу в Пошуку Google. Вам не обов’язково реєструватися в цьому сервісі, щоб ваші сторінки потрапили в результати пошуку. Однак це дозволить дізнатися, як роботи Google сприймають сайт, і спростити їм його обробку. Рекомендуємо перевіряти інформацію в Search Console в наступних випадках:

  1. Після першого розміщення структурованих даних
  2. Після випуску нових шаблонів або оновлення коду
  3. При регулярному аналізі трафіку

Коли ваші сторінки будуть проіндексовані, перевірте їх на наявність помилок за допомогою звіту про стан розширених результатів. Бажано, щоб кількість об’єктів з правильною розміткою зросла, а кількість об’єктів з помилками — ні. Якщо в структурованих даних будуть виявлені помилки, вживайте наступних заходів:

  1. Усуньте проблеми в об’єктах.
  2. Перевірте виправлену сторінку, щоб дізнатися, чи виявляються помилки.
  3. Запитайте перевірку ресурсу, використовуючи звіт про стан розширених результатів.

Якщо ви внесли значні зміни на сайт, перевірте, чи не збільшилася кількість недійсних об’єктів, пов’язаних зі структурованими даними.

  • Збільшилася кількість недійсних об’єктів? Можливо, ви створили шаблон, з яким щось не так, або наявний шаблон використовується некоректно.
  • Кількість дійсних елементів зменшилася, але кількість недійсних не збільшилася? Можливо, на ваших сторінках не розміщені структуровані дані. З’ясувати, з чим пов’язані помилки, можна за допомогою інструменту перевірки URL.

Аналізувати трафік сайту з Google Пошуку можна за допомогою звіту про ефективність. З цього звіту ви дізнаєтеся, як часто сторінка з’являється в Пошуку у вигляді розширеного результату, з якою регулярністю користувачі натискають на неї і яка її середня позиція в результатах пошуку. Цю інформацію також можна автоматично отримати за допомогою Search Console API.

Якщо у вас виникли труднощі з додаванням або налагодженням структурованих даних, вам допоможуть ресурси та інформація, доступні за наведеними нижче посиланнями.