🏆 Discourse Rich JSON-LD Microdata Plugin

Discourse Rich JSON-LD Mikrodaten

:sparkles: Zusammenfassung Erweitert die Standard-Metatags von Discourse um einen umfassenden, koordinierten Satz an Open Graph, Twitter Cards und Schema.org JSON-LD-Markup. Dies fĂŒhrt zu einer ĂŒberlegenen SEO-Leistung, reichhaltigeren Erlebnissen beim Teilen in sozialen Medien und einer verbesserten Auffindbarkeit durch KI/LLMs
:hammer_and_wrench: Repository-Link 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: Installationsanleitung So installieren Sie Plugins in Discourse

Was Sie erhalten

Verwandeln Sie, wie Ihr Forum in Suchergebnissen, sozialen Medien und KI-gestĂŒtzten Assistenten erscheint. Dieses Plugin generiert strukturierte Daten auf professionellem Niveau, die von Google, Yandex, sozialen Plattformen und Large Language Modellen (LLMs) perfekt verstanden werden.

FĂŒr detaillierte Dokumentation siehe README.md

FĂŒr technische Details und Entwicklung siehe CONTRIBUTING.md

FĂŒr Anwendungsbeispiele und Fehlerbehebung siehe USAGE.md

Beispiele fĂŒr reichhaltige Suchergebnisse

Vorher: Reiner Text-Schnipsel in Google
Nachher: Reichhaltiger Schnipsel mit Bewertungen, Anzahl der Antworten, Autor und Veröffentlichungsdatum

Vorher: Generische Link-Vorschau in sozialen Medien
Nachher: AuffÀllige Karte mit Bild, Beschreibung und Branding

Erfahren Sie mehr ĂŒber Rich Results von Google Search Central

Hauptfunktionen

1. VollstÀndige Schema.org-Abdeckung

  • QAPage-Schema fĂŒr Themen mit vollstĂ€ndiger Q&A-Hierarchie
  • UnterstĂŒtzung fĂŒr Antwortbewertungen und gelösten Status
  • CollectionPage fĂŒr Kategorien mit Unterkategorien
  • ProfilePage fĂŒr Benutzerprofile mit Kompetenzindikatoren
  • BreadcrumbList fĂŒr Navigationspfade
  • WebSite-Globales Schema mit Suchaktion

2. Koordinierte Social-Media-Tags

  • Open Graph (Facebook, LinkedIn, Discord)
  • Twitter Cards (summary_large_image)
  • Alles generiert aus einer einzigen Wahrheit – keine Konflikte
  • Automatische Bereinigung der Standard-Tags von Discourse

3. KI- & LLM-optimiert

  • VollstĂ€ndige EntitĂ€tsbeziehungen unter Verwendung von Schema.org @id-Referenzen
  • VollstĂ€ndiges KontextverstĂ€ndnis (Themen → Kategorien → Antworten → Kommentare)
  • Metadaten zur Expertise des Autors
  • ChatGPT, Claude und andere KI-Assistenten erhalten perfekten Kontext

4. VollstÀndige Internationalisierung :globe_showing_europe_africa:

  • 100 % englische und russische Übersetzungen enthalten
  • Automatische Spracherkennung (Benutzer → Site → Browser → Fallback)
  • Alle Schema.org-Beschreibungen lokalisiert
  • Einfache Erweiterung um weitere Sprachen

5. Intelligente Leistung

  • Redis-Caching mit 1-Stunden-TTL (konfigurierbar)
  • Automatische Cache-Invalidierung bei InhaltsĂ€nderungen
  • < 5 ms fĂŒr zwischengespeicherte Seiten
  • ~50 ms fĂŒr frische Generierung

6. Wartungsfrei

  • Automatische Einbindung sowohl fĂŒr Browser- als auch fĂŒr Crawler-Ansichten
  • Funktioniert fĂŒr Themen, Kategorien und Benutzerprofile
  • Graceful Error Handling – Ihr Forum wird nie beschĂ€digt
  • Umfassende Protokollierung zur Fehlerbehebung

Vorteile fĂŒr Ihr Forum

:bullseye: Bessere Suchplatzierungen

  • Reichhaltige Schnipsel in Google erhöhen die Klickrate um 30–50 %
  • Knowledge Graph-Panels fĂŒr Expertenbenutzer
  • Erscheinung in den Abschnitten “Menschen fragen auch”
  • Breadcrumbs in Suchergebnissen verbessern die Navigation

:mobile_phone: Professionelles Teilen in sozialen Medien

  • AuffĂ€llige Karten beim Teilen auf Facebook, Twitter, LinkedIn
  • Korrekte Branding mit Logos und Beschreibungen
  • Erhöhte Engagement- und Klickraten
  • Funktioniert auf ĂŒber 40 sozialen Plattformen

:robot: Bereit fĂŒr KI-Assistenten

  • Ihr Inhalt erscheint genau in ChatGPT- und Claude-Antworten
  • Korrekte Zuordnung mit Links zurĂŒck zu Ihrem Forum
  • VollstĂ€ndiger Kontext verhindert KI-Halluzinationen
  • Zukunftssicher fĂŒr Generative Engine Optimization (GEO)

:globe_showing_europe_africa: Internationales Publikum

  • Automatische Spracherkennung
  • Lokalisierte Beschreibungen fĂŒr bessere Relevanz
  • URL-Codierung verarbeitet kyrillische und Sonderzeichen
  • Einfache Erweiterung um weitere Sprachen

Installation

Schritt 1: Installieren

Folgen Sie Install plugins on a self-hosted site unter Verwendung des obigen Repository-Links

Schritt 2: In der Verwaltung aktivieren

Navigieren Sie zu Verwaltung → Einstellungen → Plugins → Rich Microdata

Setzen Sie rich_microdata_enabled auf true (standardmĂ€ĂŸig aktiviert)

Schritt 3: Konfigurieren (Optional)

Alle Einstellungen funktionieren sofort out-of-the-box, aber Sie können Folgendes anpassen:

  • Cache-Dauer (Standard: 1 Stunde)
  • Maximale Anzahl der enthaltenen Antworten (Standard: 10)
  • Twitter @Handle fĂŒr Ihre Site
  • Standard-Open-Graph-Bild-URL
  • Aktivieren/Deaktivieren bestimmter Schemata

Schritt 4: ÜberprĂŒfen

Testen Sie Ihr Markup:

Konfiguration

Einstellung Standard Beschreibung
rich_microdata_enabled true Hauptschalter fĂŒr das Plugin
rich_microdata_cache_ttl 3600 Cache-Dauer in Sekunden
rich_microdata_max_answers 10 Maximale Anzahl von Antworten im QAPage-Schema
rich_microdata_include_user_stats true Benutzerstatistiken einschließen
rich_microdata_enable_breadcrumbs true BreadcrumbList-Schema hinzufĂŒgen
rich_microdata_enable_website_schema true WebSite-Schema einschließen
rich_microdata_twitter_site "" Ihr Twitter @Benutzername
rich_microdata_og_image_default "" Fallback-OG-Bild-URL
rich_microdata_debug_mode false Debug-Protokollierung aktivieren

Technische Details

Architektur:

  • Drei-Schichten-Muster: DataExtractor → Builders → Coordinator
  • Eine einzige Wahrheit verhindert Datenkonflikte
  • Separate Rendering fĂŒr <head>-Tags und <body>-Inhalt
  • Funktioniert mit sowohl application.html.erb als auch crawler.html.erb-Layouts

Einhaltung von Standards:

  • Schema.org JSON-LD-Spezifikation
  • Open Graph Protocol
  • Twitter Cards Markup
  • RFC 3986 (URL-Codierung fĂŒr internationale Zeichen)

Sicherheit:

  • Guardian-BerechtigungsprĂŒfungen
  • Private Inhalte werden automatisch ausgeschlossen
  • SQL-Level-Sicherheitsfilterung
  • Sichere Fallbacks fĂŒr fehlende Daten

KompatibilitÀt:

  • Discourse 2.7.0+
  • Ruby 2.7+
  • Getestet auf Discourse 3.6.0.beta3

Beispiele aus der Praxis

Themen-Seiten-Markup:

{
  "@context": "https://schema.org",
  "@type": "QAPage",
  "name": "Wie optimiert man Datenbankabfragen?",
  "mainEntity": {
    "@type": "Question",
    "name": "Wie optimiert man Datenbankabfragen?",
    "text": "Ich habe langsame Abfragen...",
    "answerCount": 5,
    "upvoteCount": 12,
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "Sie sollten Indizes auf... hinzufĂŒgen",
      "upvoteCount": 8,
      "author": {
        "@type": "Person",
        "name": "John Doe",
        "url": "https://forum.example.com/u/john"
      }
    }
  }
}

Kategorien-Seiten-Markup:

{
  "@context": "https://schema.org",
  "@type": "CollectionPage",
  "name": "Datenbankoptimierung",
  "description": "Tipps und Tricks fĂŒr schnellere Abfragen",
  "numberOfItems": 245,
  "hasPart": [...]
}

Siehe USAGE.md fĂŒr vollstĂ€ndige Beispiele.

AnwendungsfÀlle

Technische Foren:
Entwickler finden Ihre Lösungen ĂŒber die hervorgehobenen Schnipsel von Google und KI-Coding-Assistenten, wobei der korrekte Code-Kontext erhalten bleibt.

Support-Communities:
Suchmaschinen zeigen Ihre Antworten mit Bewertungen und gelöstem Status an und lenken qualifizierten Traffic zu Ihren besten Inhalten.

Diskussionsforen:
Das Teilen in sozialen Medien sieht mit benutzerdefinierten Karten professionell aus, was das Engagement erhöht und die Absprungraten senkt.

Internationale Communities:
Die automatische Spracherkennung stellt sicher, dass Benutzer Inhalte in ihrer bevorzugten Sprache sehen, was die ZugÀnglichkeit verbessert.

Wartung

Betrieb ohne Wartung:

  • Automatische Cache-Aktualisierung bei InhaltsĂ€nderungen
  • Selbstheilung bei Fehlern (beschĂ€digt Ihr Forum nie)
  • Umfassende Protokollierung zur Überwachung
  • Optionaler Debug-Modus zur Fehlerbehebung

Cache-Verwaltung (optional):

# Rails-Konsole
MetaGeneratorService.clear_all_cache
MetaGeneratorService.cache_stats

Fehlerbehebung

Metatags erscheinen nicht:

  1. ÜberprĂŒfen Sie, ob das Plugin in Verwaltung → Plugins aktiviert ist
  2. PrĂŒfen Sie die Protokolle: ./launcher logs app | grep RichMicrodata
  3. Cache leeren: MetaGeneratorService.clear_all_cache

Reichhaltige Schnipsel werden in Google nicht angezeigt:

  • Google benötigt 2–4 Wochen fĂŒr das erneute Crawlen und Aktualisieren
  • Testen Sie mit Rich Results Test
  • PrĂŒfen Sie auf Validierungsfehler in der Search Console

Siehe USAGE.md fĂŒr detaillierte Fehlerbehebung.

Leistungsmetriken

  • Cache-Trefferquote: 95 %+ fĂŒr typische Foren
  • Antwortzeit: < 5 ms zwischengespeichert, ~50 ms frisch
  • Speicher-Overhead: Minimal (verwendet Redis)
  • Datenbanklast: VernachlĂ€ssigbar (1 Stunde zwischengespeichert)

Roadmap

Aktuelle Version: 2.0.0

:white_check_mark: VollstÀndiges Open Graph und Twitter Cards
:white_check_mark: VollstĂ€ndige UnterstĂŒtzung von Schema.org JSON-LD
:white_check_mark: EN/RU-Lokalisierung
:white_check_mark: URL-Codierung fĂŒr internationale Zeichen

Geplant:

  • ZusĂ€tzliche Sprachpakete (ES, DE, FR)
  • UnterstĂŒtzung fĂŒr Video-Schema
  • Event-Schema fĂŒr AnkĂŒndigungen
  • Product-Schema fĂŒr Marktplatz-Kategorien

Support

Lizenz

MIT-Lizenz – Kostenlose und Open-Source-Software

Credits


Optional: Telegram Instant View

Das Repository enthÀlt Beispielvorlagenregeln in TELEGRAM_IV_RULES.txt zum Erstellen schöner Telegram Instant View-Vorlagen. Verwenden Sie diese Regeln unter instantview.telegram.org, um Benutzern, die Ihre Forum-Inhalte in Telegram teilen, ein schnelles, ablenkungsfreies Leseerlebnis zu bieten.


Verwandeln Sie noch heute die Sichtbarkeit Ihres Forums. Installation in unter 5 Minuten, Ergebnisse in Google innerhalb von 2–4 Wochen sichtbar. :rocket:

13 „GefĂ€llt mir“

Hallo, auch wenn das französische Sprachpaket noch nicht fertig ist, raten Sie mir, dieses Plugin auf einer französischen Discourse-Website zu verwenden? Danke.

1 „GefĂ€llt mir“

Hallo. Dieses Plugin beeinflusst die Benutzererfahrung in keiner Weise. Die Hauptsprache wird in den Discourse-Einstellungen festgelegt. Wenn das Forum mehrsprachig ist, kannst du im Admin-Bereich auch alternative Sprachen angeben. Ja, du kannst es gerne verwenden, es wird keine Probleme verursachen. Die Übersetzung wird nur zur Verwaltung des Plugins im Admin-Bereich verwendet. Wenn du Englisch oder Russisch verstehst, wirst du es verwalten können.

2 „GefĂ€llt mir“

Hallo zusammen, ich habe dieses Plugin ohne Schwierigkeiten installiert. Die Einrichtung ist sehr einfach, es hat sofort funktioniert. Ich habe einen Test durchgefĂŒhrt, um zu sehen, was aus den Mikrodaten herauskommt, und alles scheint mir in Ordnung zu sein.

1 „GefĂ€llt mir“

Wow, wirklich interessant!

Der Autor gibt Best Practices unter \u003chttps://github.com/kaktaknet/discourse-rich-json-ld-microdata/blob/main/USAGE.md\u003e an

Best Practices

\u003e 1. Verwenden Sie immer hochwertige Bilder (1200x630px) fĂŒr Themen
\u003e 2. Schreiben Sie detaillierte Thementitel (hilft beim Schema.org-Namensfeld)
\u003e 3. Aktivieren Sie das Solved-Plugin fĂŒr eine bessere Erkennung von acceptedAnswer
\u003e 4. Verwenden Sie beschreibende Kategoriebeschreibungen
\u003e 5. Ermutigen Sie Benutzer, Biografien auszufĂŒllen (verbessert das Person-Schema)
\u003e 6. Überwachen Sie die Cache-Trefferrate (streben Sie \u003e95% an)
\u003e 7. WĂ€rmen Sie den Cache nach Deployments auf
\u003e 8. Testen Sie Markup mit Validatoren vor grĂ¶ĂŸeren Veröffentlichungen

Readme

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

\u003e Mit :heart: fĂŒr die Discourse Community erstellt

Es stimmt. Die schönste Markdown-Dokumentation, die ich je gesehen habe :trophy: !

2 „GefĂ€llt mir“

Danke. Obwohl dieses Plugin keine sichtbaren Auswirkungen auf das Forum fĂŒr normale Benutzer hat und nur dazu dient, mehr Besucher von Suchmaschinen anzulocken und Sprachassistenten zu unterstĂŒtzen, war die Implementierung keine leichte Aufgabe. Aber ich habe es geschafft.

2 „GefĂ€llt mir“

Schönes Plugin! Vielen Dank fĂŒr Ihre Arbeit. Ich versuche, es zu installieren, aber ich kann die „data-rich-microdata“ nicht erhalten.

Ich habe bereits einen „MetaGeneratorService.clear_all_cache“ getestet:
discourse(prod) > MetaGeneratorService.clear_all_cache => []
und „tail -f log/production.log | grep RichMicrodata“ gibt mir Folgendes aus:

[RichMicrodata] Generiert fĂŒr Thema 14092, Crawler: true, KopfgrĂ¶ĂŸe: 5855
[RichMicrodata] HTML zurĂŒckgegeben (5855 Zeichen), Crawler: true
[RichMicrodata] HTML-Builder (server:before-head-close-crawler) fĂŒr TopicsController gestartet
[RichMicrodata] Generierung fĂŒr Thema 22861
[RichMicrodata::Coordinator] FEHLER in TwitterCardBuilder: undefinierte lokale Variable oder Methode `twitter_image’ fĂŒr eine Instanz von DiscourseRichMicrodata::Builders::TwitterCardBuilder
[RichMicrodata] Generiert fĂŒr Thema 22861, Crawler: true, KopfgrĂ¶ĂŸe: 6815
[RichMicrodata] HTML zurĂŒckgegeben (6815 Zeichen), Crawler: true
[RichMicrodata] HTML-Builder (server:before-head-close-crawler) fĂŒr TopicsController gestartet

1 „GefĂ€llt mir“

Bitte versuchen Sie, einen Link zum Forenbeitrag bereitzustellen: https://search.google.com/test/rich-results

1 „GefĂ€llt mir“

Schön. Aber gibt es eine Möglichkeit, all diese Fehler im Zusammenhang mit dem Twitter-Bild zu beheben?

Screenshot_20251122_124238_Brave

Ich werde es mir ansehen. Anscheinend ist das Bild-Plugin erforderlich. Diesen Punkt habe ich ĂŒbersehen. Ich werde es beheben.

1 „GefĂ€llt mir“

Aktualisiert, schau es dir an

1 „GefĂ€llt mir“

Hallo! Ich wollte nur einen seltsamen Fall teilen: In unserem Forum erzwingen wir die Festlegung eines „Namens“ fĂŒr den Benutzer nicht wirklich, daher beschwert sich Google bei der Indexierung mit:

Fehlendes Feld „name“ (in „author“)

Elemente mit diesem Problem sind ungĂŒltig. UngĂŒltige Elemente sind nicht fĂŒr Rich Results in der Google Suche qualifiziert

Ich bin mir nicht sicher, ob es eine Möglichkeit fĂŒr uns gibt, den Benutzernamen als Namen zu verwenden?

Dieses Problem besteht in den Standardforen- und Themeneinstellungen nicht. Wenn Sie benutzerdefinierte Foren- oder Themeneinstellungen haben, ĂŒberprĂŒfen Sie diese bitte auf Ihrer Seite.

1 „GefĂ€llt mir“

Wenn es Ihnen nichts ausmacht, wenn ich frage, was ist „Standardforum“? Theme-Einstellungen sollten kein Problem sein, ich habe es auch mit Horizon getestet und das Problem ist, dass der generierte „Name“ nicht ausgefĂŒllt wird (weil wir nicht verlangen, dass er ausgefĂŒllt wird)

Dies ist jedoch auf den Modus „Diskussion“ eingestellt, ich werde andere Modi ausprobieren, um zu sehen

Bearbeitung:

Einige Themen haben den „Namen“ ausgefĂŒllt, wĂ€hrend andere dies nicht tun. Sogar fĂŒr denselben Benutzer, der keinen bestimmten „Namen“ festgelegt hat


Außerdem sehe ich wahrscheinlich nicht zusammenhĂ€ngend einige Fehler bezĂŒglich Microdata und Locale ZN

Hallo, ich habe dieses Plugin installiert. Ich möchte die rote Hervorhebung im angehĂ€ngten Bild ( Screenshot by Lightshot ) deaktivieren. Wie konfiguriere ich das Plugin dafĂŒr? Vielen Dank!

Hallo, funktioniert das Plugin mit der neuesten Version von Discourse?