🏆 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:

12 „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!