🏆 Plugin Discourse Rich JSON-LD Microdata

Discourse Rich JSON-LD Microdata

:sparkles: Résumé Améliore les balises méta standard de Discourse avec un ensemble complet et coordonné de balises Open Graph, de cartes Twitter et de balises JSON-LD Schema.org, offrant des performances SEO supérieures, une expérience de partage sur les réseaux sociaux enrichie et une meilleure découvrabilité par les IA et les LLM
:hammer_and_wrench: Lien vers le dépôt GitHub - kaktaknet/discourse-rich-json-ld-microdata: 🏆 Discourse Rich JSON-LD Microdata Plugin. Comprehensive, coordinated Open Graph and Schema.org JSON-LD microdata for 200% SEO and LLM coverage · GitHub
:open_book: Guide d’installation Comment installer des plugins dans Discourse

Ce que vous obtenez

Transformez l’apparence de votre forum dans les résultats de recherche, sur les réseaux sociaux et auprès des assistants intelligents. Ce plugin génère des données structurées de qualité professionnelle parfaitement comprises par Google, Yandex, les plateformes sociales et les grands modèles de langage (LLM).

Pour une documentation détaillée, consultez README.md

Pour les détails techniques et le développement, consultez CONTRIBUTING.md

Pour des exemples d’utilisation et le dépannage, consultez USAGE.md

Exemples de résultats de recherche enrichis

Avant : Extrait de texte brut dans Google
Après : Extrait enrichi avec notes, nombre de réponses, auteur et date de publication

Avant : Aperçu de lien générique sur les réseaux sociaux
Après : Carte accrocheuse avec image, description et identité visuelle

En savoir plus sur les Résultats enrichis du Centre d’aide Google Recherche

Fonctionnalités clés

1. Couverture complète de Schema.org

  • SchĂ©ma QAPage pour les sujets avec hiĂ©rarchie complète Q&R
  • Prise en charge des notes de rĂ©ponse et du statut rĂ©solu
  • CollectionPage pour les catĂ©gories avec sous-catĂ©gories
  • ProfilePage pour les profils utilisateurs avec indicateurs d’expertise
  • BreadcrumbList pour les chemins de navigation
  • SchĂ©ma global WebSite avec action de recherche

2. Balises réseaux sociaux coordonnées

  • Open Graph (Facebook, LinkedIn, Discord)
  • Cartes Twitter (summary_large_image)
  • Tout gĂ©nĂ©rĂ© Ă  partir d’une source unique de vĂ©ritĂ© – pas de conflits
  • Nettoyage automatique des balises par dĂ©faut de Discourse

3. Optimisé pour l’IA et les LLM

  • Relations d’entitĂ©s complètes utilisant les rĂ©fĂ©rences @id de Schema.org
  • ComprĂ©hension complète du contexte (sujets → catĂ©gories → rĂ©ponses → commentaires)
  • MĂ©tadonnĂ©es d’expertise de l’auteur
  • ChatGPT, Claude et autres assistants IA obtiennent un contexte parfait

4. Internationalisation complète :globe_showing_europe_africa:

  • Traductions 100 % en anglais et en russe incluses
  • DĂ©tection automatique de la langue (utilisateur → site → navigateur → secours)
  • Toutes les descriptions Schema.org localisĂ©es
  • Ajout facile de nouvelles langues

5. Performance intelligente

  • Mise en cache Redis avec TTL de 1 heure (configurable)
  • Invalidation automatique du cache lors des modifications de contenu
  • < 5 ms pour les pages mises en cache
  • ~50 ms pour la gĂ©nĂ©ration fraĂ®che

6. Zéro maintenance

  • Injection automatique pour les vues navigateur et crawler
  • Fonctionne pour les sujets, les catĂ©gories et les profils utilisateurs
  • Gestion Ă©lĂ©gante des erreurs – ne casse jamais votre site
  • Journalisation complète pour le dĂ©bogage

Avantages pour votre forum

:bullseye: Meilleur classement dans les recherches

  • Les extraits enrichis dans Google augmentent le taux de clic de 30 Ă  50 %
  • Panneaux Knowledge Graph pour les utilisateurs experts
  • PrĂ©sence dans les sections « Les gens demandent aussi »
  • Les filières dans les rĂ©sultats de recherche amĂ©liorent la navigation

:mobile_phone: Partage professionnel sur les réseaux sociaux

  • Cartes accrocheuses lors du partage sur Facebook, Twitter, LinkedIn
  • IdentitĂ© visuelle appropriĂ©e avec logos et descriptions
  • Augmentation de l’engagement et du taux de clic
  • Fonctionne sur plus de 40 plateformes sociales

:robot: PrĂŞt pour les assistants IA

  • Votre contenu apparaĂ®t avec prĂ©cision dans les rĂ©ponses de ChatGPT et Claude
  • Attribution correcte avec liens vers votre forum
  • Un contexte complet Ă©vite les hallucinations de l’IA
  • PrĂ©parĂ© pour l’optimisation des moteurs gĂ©nĂ©ratifs (GEO)

:globe_showing_europe_africa: Public international

  • DĂ©tection automatique de la langue
  • Descriptions localisĂ©es pour une meilleure pertinence
  • Le codage URL gère le cyrillique et les caractères spĂ©ciaux
  • Extension facile Ă  d’autres langues

Installation

Étape 1 : Installation

Suivez Install plugins on a self-hosted site en utilisant le lien du dépôt ci-dessus

Étape 2 : Activer dans l’administration

Accédez à Admin → Paramètres → Plugins → Rich Microdata

Définissez rich_microdata_enabled sur true (activé par défaut)

Étape 3 : Configuration (facultative)

Tous les paramètres fonctionnent parfaitement dès la sortie de la boîte, mais vous pouvez personnaliser :

  • DurĂ©e du cache (par dĂ©faut : 1 heure)
  • Nombre maximum de rĂ©ponses Ă  inclure (par dĂ©faut : 10)
  • Identifiant Twitter @ pour votre site
  • URL d’image Open Graph par dĂ©faut
  • Activer/dĂ©sactiver des schĂ©mas spĂ©cifiques

Étape 4 : Vérification

Testez votre balisage :

Configuration

Paramètre Par défaut Description
rich_microdata_enabled true Interrupteur principal du plugin
rich_microdata_cache_ttl 3600 Durée du cache en secondes
rich_microdata_max_answers 10 Nombre maximal de réponses dans le schéma QAPage
rich_microdata_include_user_stats true Inclure les statistiques des utilisateurs
rich_microdata_enable_breadcrumbs true Ajouter le schéma BreadcrumbList
rich_microdata_enable_website_schema true Inclure le schéma WebSite
rich_microdata_twitter_site "" Votre identifiant Twitter @
rich_microdata_og_image_default "" URL d’image de secours pour Open Graph
rich_microdata_debug_mode false Activer la journalisation du débogage

Détails techniques

Architecture :

  • Motif Ă  trois couches : DataExtractor → Builders → Coordinator
  • Une source unique de vĂ©ritĂ© Ă©vite les conflits de donnĂ©es
  • Rendu sĂ©parĂ© pour les balises <head> et le contenu <body>
  • Fonctionne avec les mises en page application.html.erb et crawler.html.erb

Conformité aux normes :

  • SpĂ©cification Schema.org JSON-LD
  • Protocole Open Graph
  • Balisage des cartes Twitter
  • RFC 3986 (codage URL pour les caractères internationaux)

Sécurité :

  • VĂ©rifications des permissions Guardian
  • Contenu privĂ© automatiquement exclu
  • Filtrage de sĂ©curitĂ© au niveau SQL
  • SĂ©quences de repli sĂ»res pour les donnĂ©es manquantes

Compatibilité :

  • Discourse 2.7.0+
  • Ruby 2.7+
  • TestĂ© sur Discourse 3.6.0.beta3

Exemples concrets

Balisage de page de sujet :

{
  "@context": "https://schema.org",
  "@type": "QAPage",
  "name": "Comment optimiser les requêtes de base de données ?",
  "mainEntity": {
    "@type": "Question",
    "name": "Comment optimiser les requêtes de base de données ?",
    "text": "Je rencontre des requĂŞtes lentes...",
    "answerCount": 5,
    "upvoteCount": 12,
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "Vous devriez ajouter des index sur...",
      "upvoteCount": 8,
      "author": {
        "@type": "Person",
        "name": "John Doe",
        "url": "https://forum.example.com/u/john"
      }
    }
  }
}

Balisage de page de catégorie :

{
  "@context": "https://schema.org",
  "@type": "CollectionPage",
  "name": "Optimisation de base de données",
  "description": "Astuces et astuces pour des requĂŞtes plus rapides",
  "numberOfItems": 245,
  "hasPart": [...]
}

Consultez USAGE.md pour des exemples complets.

Cas d’utilisation

Forums techniques :
Les développeurs trouvent vos solutions grâce aux extraits en vedette de Google et aux assistants de codage IA, avec le contexte du code correctement préservé.

Communautés de support :
Les moteurs de recherche affichent vos réponses avec des notes et un statut résolu, attirant un trafic qualifié vers votre meilleur contenu.

Forums de discussion :
Le partage sur les réseaux sociaux a un aspect professionnel avec des cartes personnalisées, augmentant l’engagement et réduisant les taux de rebond.

Communautés internationales :
La détection automatique de la langue garantit que les utilisateurs voient le contenu dans leur langue préférée, améliorant l’accessibilité.

Maintenance

Fonctionnement sans maintenance :

  • Actualisation automatique du cache lors des mises Ă  jour de contenu
  • Auto-guĂ©rison en cas d’erreur (ne casse jamais votre site)
  • Journalisation complète pour la surveillance
  • Mode dĂ©bogage facultatif pour le dĂ©pannage

Gestion du cache (facultative) :

# Console Rails
MetaGeneratorService.clear_all_cache
MetaGeneratorService.cache_stats

Dépannage

Les balises méta n’apparaissent pas :

  1. Vérifiez que le plugin est activé dans Admin → Plugins
  2. Vérifiez les journaux : ./launcher logs app | grep RichMicrodata
  3. Videz le cache : MetaGeneratorService.clear_all_cache

Les extraits enrichis n’apparaissent pas dans Google :

  • Google met 2 Ă  4 semaines pour re-crawler et mettre Ă  jour
  • Testez avec Test des rĂ©sultats enrichis
  • VĂ©rifiez les erreurs de validation dans la Search Console

Consultez USAGE.md pour un dépannage détaillé.

Métriques de performance

  • Taux de rĂ©ussite du cache : 95 %+ pour les forums typiques
  • Temps de rĂ©ponse : < 5 ms mis en cache, ~50 ms frais
  • Surcharge mĂ©moire : Minime (utilise Redis)
  • Charge de base de donnĂ©es : NĂ©gligeable (mis en cache 1 heure)

Feuille de route

Version actuelle : 2.0.0

:white_check_mark: Open Graph complet et cartes Twitter
:white_check_mark: Prise en charge complète de Schema.org JSON-LD
:white_check_mark: Localisation EN/RU
:white_check_mark: Codage URL pour les caractères internationaux

Prévu :

  • Packs de langues supplĂ©mentaires (ES, DE, FR)
  • Prise en charge du schĂ©ma vidĂ©o
  • SchĂ©ma Ă©vĂ©nement pour les annonces
  • SchĂ©ma produit pour les catĂ©gories de marchĂ©

Support

Licence

Licence MIT – Logiciel libre et open source

Crédits


Optionnel : Vue instantanée Telegram

Le dépôt inclut des règles de modèle d’exemple dans TELEGRAM_IV_RULES.txt pour créer de magnifiques modèles de Vue instantanée Telegram. Utilisez ces règles sur instantview.telegram.org pour offrir une expérience de lecture rapide et sans distraction aux utilisateurs qui partagent le contenu de votre forum sur Telegram.


Transformez la visibilité de votre forum dès aujourd’hui. Installez en moins de 5 minutes, voyez les résultats dans Google en 2 à 4 semaines. :rocket:

12 « J'aime »

Salut, même si le pack de langue français n’est pas prêt, me conseilles-tu d’utiliser ce plugin sur un site Discourse en français ? Merci.

1 « J'aime »

Salut. Ce plugin n’affectera en rien l’expérience utilisateur. Le paramètre de langue principal est défini dans les réglages de Discourse. Vous pouvez également spécifier des langues alternatives dans la section d’administration si le forum est multilingue. Oui, vous pouvez l’utiliser sans problème. La traduction n’est utilisée que pour gérer le plugin dans la section d’administration. Si vous comprenez l’anglais ou le russe, vous pourrez l’administrer.

2 « J'aime »

Bonjour à tous, j’ai installé ce plugin sans aucune difficulté. La configuration est très simple, cela a fonctionné tout de suite. J’ai fait un test pour voir ce qui ressortait des microdonnées, et tout me semble correct.

1 « J'aime »

Wow, vraiment intéressant !

L’auteur fournit les meilleures pratiques sur https://github.com/kaktaknet/discourse-rich-json-ld-microdata/blob/main/USAGE.md

Meilleures pratiques

  1. Utilisez toujours des images de haute qualité (1200x630px) pour les sujets
  2. Rédigez des titres de sujet détaillés (aide pour le champ name de Schema.org)
  3. Activez le plugin Solved pour une meilleure détection de acceptedAnswer
  4. Utilisez des descriptions de catégorie descriptives
  5. Encouragez les utilisateurs à remplir leur biographie (améliore le schéma Person)
  6. Surveillez le taux de succès du cache (visez >95%)
  7. Réchauffez le cache après les déploiements
  8. Testez le balisage avec des validateurs avant les versions majeures

Readme

https://github.com/kaktaknet/discourse-rich-json-ld-microdata/blob/main/README.md

Fait avec :heart: pour la communauté Discourse

C’est vrai. La plus jolie documentation Markdown que j’aie jamais vue :trophy: !

2 « J'aime »

Merci. Bien que ce plugin n’ait aucun effet visible sur le forum pour les utilisateurs réguliers et ne serve qu’à attirer plus de visiteurs des moteurs de recherche et à aider les assistants vocaux, sa mise en œuvre n’a pas été une tâche facile. Mais j’ai réussi à le faire.

2 « J'aime »

Beau plugin ! Merci pour votre travail. J’essaie de l’installer, mais je n’arrive pas à obtenir les « data-rich-microdata »

J’ai déjà testé un « MetaGeneratorService.clear_all_cache » :
discourse(prod)âź© MetaGeneratorService.clear_all_cache => []
et « tail -f log/production.log | grep RichMicrodata » me donne :

[RichMicrodata] Generated for topic 14092, crawler: true, head size: 5855
[RichMicrodata] Returning HTML (5855 chars), crawler: true
[RichMicrodata] HTML builder (server:before-head-close-crawler) started for TopicsController
[RichMicrodata] Generating for topic 22861
[RichMicrodata::Coordinator] ERROR in TwitterCardBuilder: undefined local variable or method `twitter_image’ for an instance of DiscourseRichMicrodata::Builders::TwitterCardBuilder
[RichMicrodata] Generated for topic 22861, crawler: true, head size: 6815
[RichMicrodata] Returning HTML (6815 chars), crawler: true
[RichMicrodata] HTML builder (server:before-head-close-crawler) started for TopicsController

1 « J'aime »

Veuillez essayer de fournir un lien vers la publication du forum https://search.google.com/test/rich-results

1 « J'aime »

Bien. Mais y a-t-il un moyen de corriger toutes ces erreurs liées à l’image Twitter ?

Screenshot_20251122_124238_Brave

Je vais vérifier ça. Apparemment, le plugin d’image est requis. J’ai manqué ce point. Je vais corriger ça.

1 « J'aime »

Mis Ă  jour, consultez-le

1 « J'aime »

Salut ! Je voulais juste partager un cas étrange : sur notre forum, nous n’imposons pas vraiment le paramètre d’un « nom » pour l’utilisateur, donc lorsque Google essaie d’indexer, il se plaint avec :

Champ « name » manquant (dans « author »)

Les éléments avec ce problème ne sont pas valides. Les éléments non valides ne sont pas éligibles pour les résultats enrichis de la recherche Google

Je ne sais pas s’il existe un moyen pour nous de dire que le nom d’utilisateur est le nom ?

Il n’y a pas de tel problème dans les paramètres standard du forum et du thème. Si vous avez des paramètres personnalisés pour le forum ou le thème, veuillez les vérifier de votre côté.

1 « J'aime »

Si vous ne voyez pas d’inconvénient à ce que je demande, qu’est-ce que le « forum standard » ? Les paramètres du thème ne devraient pas poser de problème, j’ai également testé sur Horizon et le problème est que le « nom » généré n’est pas renseigné (parce que nous n’exigeons pas qu’il soit renseigné)

Cependant, ceci est réglé sur le mode « discussion », je vais essayer d’autres modes pour voir

Édition :

Certains sujets ont le « nom » renseigné, tandis que d’autres non. Même pour le même utilisateur qui n’a pas défini de « nom » spécifique


Aussi, probablement sans rapport, je vois quelques erreurs concernant les microdonnées et la locale ZN

Bonjour, j’ai installé ce plugin. Je souhaite désactiver la mise en évidence rouge dans l’image ci-jointe ( Screenshot by Lightshot ). Comment configurer le plugin pour cela ? Merci beaucoup !