Données structurées de forum de discussion (DiscussionForumPosting
)
Le balisage de forums de discussion est conçu pour tout site de type forum où les personnes partagent collectivement leurs points de vue personnels. Lorsque les sites de forums ajoutent ce balisage, la recherche Google peut mieux identifier les discussions en ligne sur le Web et utiliser ce balisage dans des fonctionnalités telles que Discussions et forums.
Comment utiliser DiscussionForumPosting
dans un forum
En règle générale, nous vous recommandons d'imbriquer les commentaires sous le post auquel ils se rapportent. Si le forum possède sa propre structure de fil de discussion, utilisez une arborescence de commentaires pour la représenter:
{ "@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", ... }] }] }
S'il est de nature plus linéaire (par exemple, un post d'origine suivi d'une série de réponses), imbriquez toutes les réactions à la publication d'origine en tant que commentaires. Idéalement, les pages de contenu ultérieures des forums multi-pages incluent le post d'origine avec l'URL de la page principale:
{ // 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", ... }] }
Si l'URL concerne principalement un seul post, utilisez mainEntity
(ou mainEntityOfPage
) pour identifier l'élément DiscussionForumPosting
principal :
{ "@context": "https://schema.org", "@type": "WebPage", "url": "https://example.com/post/very-popular-thread", "mainEntity": { "@type": "DiscussionForumPosting" ... } }
Pour les pages Web contenant une liste de posts (par exemple, sur une page de profil, de sujet ou de catégorie), il est courant qu'elles n'aient pas toutes les informations présentes sur la même page et nécessitent que l'utilisateur clique pour obtenir des informations supplémentaires (comme des réponses). C'est à vous de décider d'inclure uniquement les informations présentes sur la page (et d'inclure l'URL du post de la discussion).
Ne marquez pas une publication de la page comme entité principale s'il ne s'agit pas d'une page de discussion pour la publication. Pour indiquer que les pages sont un ensemble de publications connexes, il peut être utile de les joindre toutes à une
Collection
ou une ItemList
.
Comment ajouter des données structurées
Ces données structurées représentent un format normalisé permettant de fournir des informations sur une page et de classer son contenu. En savoir plus sur le fonctionnement des données structurées
Voici, dans les grandes lignes, comment créer, tester et publier des données structurées. Pour consulter un guide détaillé sur l'ajout de données structurées à une page Web, accédez à cet atelier de programmation.
- Ajoutez les propriétés obligatoires. En fonction du format que vous utilisez, découvrez où insérer des données structurées sur la page.
- Suivez les consignes.
- Validez votre code à l'aide de l'outil de test des résultats enrichis et corrigez les erreurs critiques, le cas échéant. Envisagez également de résoudre les problèmes non critiques que l'outil a pu signaler, car cela peut contribuer à améliorer la qualité de vos données structurées. Toutefois, ce n'est pas nécessaire pour pouvoir bénéficier des résultats enrichis.
- Déployez quelques pages où figurent vos données structurées et utilisez l'outil d'inspection d'URL pour découvrir comment Google voit la page. Assurez-vous que Google peut accéder à votre page et qu'elle n'est pas bloquée par un fichier robots.txt, la balise
noindex
ni par des identifiants de connexion. Si tout semble être en ordre, vous pouvez demander à Google d'explorer de nouveau vos URL. - Pour informer Google des modifications futures de vos pages, nous vous recommandons de nous envoyer un sitemap. Vous pouvez automatiser cette opération à l'aide de l'API Sitemap de la Search Console.
Exemples
L'exemple de balisage suivant montre une page de forum linéaire sans fil de discussion :
<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>
Consignes
Pour que les données structurées de votre forum de discussion puissent être utilisées dans la recherche Google, vous devez suivre ces consignes :
- Consignes générales pour les données structurées
- Essentiels de la recherche
- Consignes relatives au contenu
- Consignes techniques
Consignes relatives au contenu
- N'utilisez le balisage
DiscussionForumPosting
que pour décrire un post généré par l'utilisateur sur un site Web. N'utilisez pas ce balisage pour les contenus provenant principalement des éditeurs du site Web ou de leurs agents. - Si votre site ressemble davantage à une plate-forme de réseaux sociaux générique, vous pouvez utiliser
SocialMediaPosting
, qui est le type parent deDiscussionForumPosting
, avec les mêmes exigences. - Bien que nous encouragions le balisage valide d'autres types (
Article
,ImageObject
,VideoObject
) pouvant utiliser un balisage très similaire avec les commentaires, les informations sur l'auteur et les statistiques d'interaction, ceux-ci ne doivent pas utiliser le balisageDiscussionForumPosting
. Voici quelques exemples :Cas d'utilisation valides :
- Page de forum communautaire où les utilisateurs peuvent parler d'un jeu spécifique
- Plate-forme de forum générique hébergeant une grande variété de contenus dans des sous-forums
- Plate-forme de réseaux sociaux où les utilisateurs peuvent publier des commentaires ou des contenus multimédias, et y répondre
Cas d'utilisation non valides :
- Article ou blog rédigé directement par un agent pour le site Web (même avec des commentaires)
- Avis des utilisateurs sur un produit
- Notez que pour la plupart des cas d'utilisation de Google, une page de questions-réponses est considérée comme un cas particulier d'une page de forum de discussion. Si la structure du site Web du forum est principalement constituée de questions avec réponses, nous vous recommandons d'utiliser plutôt le balisage de questions/réponses. Si la structure est plus générale et qu'il ne s'agit généralement pas d'un contenu de type questions/réponses, il est préférable d'utiliser
DiscussionForumPosting
. - Assurez-vous que chaque propriété
DiscussionForumPosting
inclut le texte intégral du post et que chaqueComment
inclut le texte intégral de la réponse, le cas échéant.
Consignes techniques
- Contrairement à nos préférences générales relatives aux données structurées, nous vous recommandons d'inclure le balisage
DiscussionForumPosting
sous forme de microdonnées (ou RDFa) dans la mesure du possible. Vous n'avez donc pas besoin de dupliquer de grands blocs de texte dans le balisage. Toutefois, il ne s'agit que d'une recommandation, et JSON-LD est toujours entièrement compatible.
Définitions des types de données structurées
Cette section décrit les types de données structurées liés à la propriété DiscussionForumPosting
.
Vous devez inclure les propriétés obligatoires pour que votre contenu puisse être utilisé dans la recherche Google. Vous pouvez également inclure les propriétés recommandées pour ajouter d'autres informations à vos pages de forum de discussion et ainsi offrir une meilleure expérience utilisateur.
DiscussionForumPosting
(ou SocialMediaPosting
)
Le type DiscussionForumPosting
définit le post d'origine qui est le sujet de la discussion. Bien que ce type soit généralement composé de texte, il est possible d'avoir une publication de forum uniquement constituée de contenu multimédia.
Propriétés obligatoires | |
---|---|
|
Person ou
Organization
Informations sur l'auteur du post. Pour aider Google à interpréter les auteurs dans différentes fonctionnalités, nous vous recommandons de suivre les bonnes pratiques en matière de balisage des auteurs. Incluez autant de propriétés que pertinent pour l'auteur en vous appuyant sur les propriétés prises en charge des données structurées des articles et des pages de profil. |
|
Text
Nom de l'auteur du post. |
|
Date et heure du post au format ISO 8601. |
text , image ou video |
Pour représenter le contenu du post, vous devez inclure l'une des propriétés suivantes : Ce n'est pas obligatoire si vous représentez un post sur une autre page (avec une |
Propriétés recommandées | |
---|---|
|
Lien vers une page Web identifiant de manière unique l'auteur du post (il s'agit probablement d'une page de profil du forum). Nous vous recommandons de baliser cette page à l'aide des données structurées de page de profil. |
comment |
Commentaire à propos du post ou réponse au post, le cas échéant Balisez les commentaires dans l'ordre dans lequel ils apparaissent sur la page. |
creativeWorkStatus |
Lorsque le post a été supprimé, mais qu'il est conservé pour le contexte ou les fils de discussion, définissez cette propriété sur |
dateModified |
Date et heure de modification du post, au format ISO 8601, le cas échéant. Si aucune modification n'a été apportée, il n'est pas nécessaire de dupliquer la date de publication. |
|
Text
Titre du post. S'il n'y a pas de titre distinct, ne dupliquez pas et ne tronquez pas le texte pour en créer un. Cette pratique n'est pas recommandée pour un |
image |
Images intégrées au post, le cas échéant. S'il n'y a pas d'image, n'incluez pas d'images d'espace réservé, d'icône ni par défaut dans ce champ. |
interactionStatistic |
Statistiques utilisateur appliquées au post principal, le cas échéant. Google accepte les
|
isPartOf |
Source principale du post si celui-ci apparaît sur une partie particulière du site Web, le cas échéant.
Par exemple, un sous-forum ou un groupe sur un site Web plus vaste. Si un |
|
CreativeWork
Le contenu principal partagé dans le post, le cas échéant La méthode la plus courante consiste à partager Voici un exemple d'ajout de l'existence d'un lien partagé dans le post : ... "sharedContent": { "@type": "WebPage", url: "https://example.com/external-url" } ... |
text |
Texte du post, le cas échéant. Ces informations sont très courantes, mais peuvent parfois être omises si le post comporte d'autres contenus multimédias. |
|
URL
URL canonique de la discussion. Dans les fils de discussion multi-pages, définissez cette propriété sur l'URL de la première page. Pour une seule discussion, il s'agit généralement de l'URL actuelle. |
video |
Vidéos intégrées au post, le cas échéant. |
Comment
Le type Comment
définit un commentaire sur un CreativeWork
d'origine. Dans ce cas, il s'agit d'un DiscussionForumPosting
. Il partage de nombreuses propriétés avec nos consignes pour DiscussionForumPosting
.
Propriétés obligatoires | |
---|---|
|
Person ou
Organization
Informations sur l'auteur du commentaire. Pour aider Google à interpréter les auteurs dans différentes fonctionnalités, nous vous recommandons de suivre les bonnes pratiques en matière de balisage des auteurs. Incluez autant de propriétés que pertinent pour l'auteur en vous appuyant sur les propriétés prises en charge des données structurées des articles et des pages de profil. |
|
Date et heure auxquelles le commentaire a été rédigé, au format ISO 8601. Si aucune modification n'a été apportée, il n'est pas nécessaire de dupliquer la date de publication. |
text , image ou video |
Pour représenter le contenu du commentaire, vous devez inclure l'une des propriétés suivantes : |
Propriétés recommandées | |
---|---|
|
Lien vers une page Web identifiant de manière unique l'auteur du commentaire (il s'agit probablement d'une page de profil du forum). Nous vous recommandons de baliser cette page à l'aide des données structurées de page de profil. |
comment |
Autre commentaire à propos du commentaire ou en réponse à celui-ci, le cas échéant Balisez les commentaires dans l'ordre dans lequel ils apparaissent sur la page. |
creativeWorkStatus |
Si le commentaire a été supprimé, mais qu'il est conservé pour le contexte ou les fils de discussion, définissez cette propriété sur |
dateModified |
Date et heure auxquelles le commentaire a été modifié pour la dernière fois, au format ISO 8601, le cas échéant. |
image |
Images intégrées au commentaire, le cas échéant. S'il n'y a pas d'image, n'incluez pas d'images d'espace réservé, d'icône ni par défaut dans ce champ. |
interactionStatistic |
Statistiques utilisateur appliquées au commentaire, le cas échéant. Google accepte les
|
|
CreativeWork
Le contenu principal partagé dans le commentaire, le cas échéant La méthode la plus courante consiste à partager Voici un exemple d'ajout de l'existence d'un lien partagé dans le commentaire : ... "sharedContent": { "@type": "WebPage", url: "https://example.com/external-url" } ... |
|
URL
URL de ce commentaire spécifique sur la page, le cas échéant. N'incluez pas cette propriété si elle correspond simplement à l'URL du post d'origine. |
video |
Vidéos intégrées au commentaire, le cas échéant. |
InteractionCounter
Le InteractionCounter
permet d'associer un nombre à un certain type d'interaction. Vous pouvez l'utiliser pour les contenus (DiscussionForumPosting
et Comment
) et les propriétés, y compris les propriétés author
.
Propriétés obligatoires | |
---|---|
|
Integer
Nombre de fois où cette interaction a été effectuée. |
|
Sous-type de Pour obtenir la liste des sous-types |
Suivre les résultats enrichis avec la Search Console
La Search Console est un outil qui vous permet de suivre les performances de vos pages dans la recherche Google. Il n'est pas nécessaire de vous inscrire à la Search Console pour figurer dans les résultats de recherche Google. Cependant, en vous inscrivant, vous comprendrez mieux la façon dont Google interprète votre site et serez plus à même de l'améliorer. Nous vous recommandons de consulter la Search Console dans les cas suivants :
- Après avoir déployé des données structurées pour la première fois
- Après avoir publié de nouveaux modèles ou après avoir mis à jour votre code
- Lors des analyses régulières du trafic
Après avoir déployé des données structurées pour la première fois
Une fois que Google a indexé vos pages, recherchez les problèmes à l'aide du rapport sur l'état des résultats enrichis. Idéalement, il y aura une augmentation du nombre d'articles valides et pas d'augmentation du nombre d'articles non valides. Si vous détectez des problèmes au niveau des données structurées :
- Corrigez les éléments non valides.
- Inspectez une URL active pour vérifier si le problème persiste.
- Demandez la validation à l'aide du rapport d'état.
Après avoir publié de nouveaux modèles ou après avoir mis à jour votre code
Lorsque vous apportez des modifications importantes à votre site Web, surveillez l'augmentation des éléments non valides dans les données structurées.- Si vous constatez une augmentation du nombre d'éléments non valides, vous avez peut-être déployé un nouveau modèle qui ne fonctionne pas, ou votre site interagit différemment et de façon incorrecte avec le modèle déjà disponible.
- Si vous constatez une diminution du nombre d'éléments valides (sans augmentation du nombre d'éléments non valides), vous n'intégrez peut-être plus de données structurées dans vos pages. Utilisez l'outil d'inspection d'URL pour identifier la cause du problème.
Lors des analyses régulières du trafic
Analysez votre trafic de recherche Google à l'aide du rapport sur les performances. Les données indiquent la fréquence à laquelle votre page s'affiche en tant que résultat enrichi dans la recherche Google, ainsi que la fréquence à laquelle les internautes cliquent dessus et la position moyenne à laquelle vous apparaissez dans les résultats de recherche. Vous pouvez également extraire automatiquement ces résultats avec l'API Search Console.Dépannage
Si vous ne parvenez pas à mettre en œuvre ou à déboguer des données structurées, voici quelques ressources susceptibles de vous aider.
- Si vous utilisez un système de gestion de contenu (CMS) ou si une autre personne s'occupe de votre site, demandez à la personne en charge de vous aider. Veillez à lui transmettre tous les messages de la Search Console qui détaillent le problème.
- Google ne garantit pas que les fonctionnalités basées sur les données structurées apparaîtront dans les résultats de recherche. Pour consulter la liste des raisons courantes pour lesquelles Google n'affiche pas toujours votre contenu dans un résultat enrichi, reportez-vous aux consignes générales relatives aux données structurées.
- Vos données structurées comportent peut-être une erreur. Consultez la liste des erreurs de données structurées.
- Si vous avez reçu une action manuelle de données structurées concernant votre page, ces données seront ignorées (mais la page concernée apparaîtra peut-être toujours dans les résultats de recherche Google). Pour résoudre les problèmes de données structurées, utilisez le rapport sur les actions manuelles.
- Consultez à nouveau les consignes pour déterminer si votre contenu est bien conforme. Le problème peut être dû à une page contenant du spam ou à l'utilisation de balises qui en contiennent. Toutefois, il est possible qu'il ne s'agisse pas d'un problème de syntaxe et que le test des résultats enrichis ne puisse pas identifier le problème.
- Découvrez comment résoudre les problèmes liés aux résultats enrichis manquants ou à une baisse du nombre total de résultats enrichis.
- Prévoyez un certain temps avant que la réexploration et la réindexation soient effectuées. Gardez à l'esprit qu'il faut souvent compter plusieurs jours après la publication d'une page pour que Google puisse la trouver et l'explorer. Pour toute question d'ordre général sur l'exploration et l'indexation, consultez les FAQ sur l'exploration et l'indexation dans la recherche Google.
- Posez une question sur le forum Google Search Central.