Discourse-indexnow – Benachrichtigt Bing & Yandex sofort, wenn Themen erstellt oder bearbeitet werden

:information_source: Zusammenfassung Reicht neue und bearbeitete öffentliche Themen-URLs automatisch an das IndexNow-Protokoll ein, damit Bing, Yandex und andere teilnehmende Suchmaschinen Ihren Inhalt in Minuten entdecken können, anstatt auf einen Crawl zu warten.
:hammer_and_wrench: Repository-Link github.com/imlotso/discourse-indexnow
:open_book: Installationsanleitung So installieren Sie Plugins in Discourse

Eine chinesischsprachige Beschreibung mit weiteren Hintergründen ist auch auf meinem Forum verfügbar: sitetalk.net/t/topic/642.


Funktionen

  • Reicht neue öffentliche Themen automatisch ein und reicht sie erneut ein, wenn eine Bearbeitung den ersten Beitrag oder wichtige Eigenschaften des Themas ändert.
  • Wenn Content Localization und dessen Crawler-Locale-Parameter aktiviert sind, werden lokalisierte Themen-URLs automatisch neben der Haupt-URL einbezogen – unter Verwendung des echten Locale-Query-Parameters von Discourse (niemals hartkodiert).
  • Reicht die primäre URL und alle vorhandenen Lokalisierungen zusammen in einer einzigen IndexNow-urlList-Batch-Anfrage ein, anstatt einer Anfrage pro URL.
  • Historische Nachlieferung (Backfill): Filtere Themen nach Kategorie und Datumsbereich, überprüfe die passenden Ergebnisse und reiche sie in einem Batch ein – unter Wiederverwendung derselben Batch-Engine, die Einreichungen automatisch über die Protokollgrenze von 10.000 URLs aufteilt.
  • Manuelle Einreichung: Füge eine URL pro Zeile ein, um bestimmte Links nach Bedarf einzureichen; externe oder nicht berechtigte URLs werden automatisch herausgefiltert.
  • Stündliche/tägliche Einreichungsgrenzen mit automatischem Backoff, wenn IndexNow einen 429 zurückgibt (beachtet Retry-After, wenn vorhanden).
  • Unterstützung für Key-Rotation – der vorherige Schlüssel bleibt für eine Übergangszeit von 7 Tagen gültig, damit laufende Einreichungen nicht abbrechen.
  • Eingebauter Erreichbarkeitscheck für Ihre /<key>.txt-Datei, direkt im Admin-Panel angezeigt.
  • Reicht Themen automatisch erneut ein (oder schließt sie aus), wenn sie zwischen Kategorien verschoben werden oder sich die Sichtbarkeit/Tags einer Kategorie ändern.
  • Einreichungsprotokolle verfolgen die Batch-ID, das Locale, einen 7-Tage-Trend für Erfolg/Misserfolg und eine Aufschlüsselung der Fehlerursachen (Rate Limit / Key-Fehler / Domänen-Mismatch / andere).
  • Alle Einreichungen werden asynchron über Sidekiq ausgeführt und durchlaufen dieselben Datenschutzfilter wie automatische Einreichungen – nichts umgeht die Ausschlussregeln (Private Nachrichten, eingeschränkte Kategorien, nicht gelistete/gelöschte Themen, Sites mit Login-Pflicht).
  • Admin-UI verfügbar auf Englisch und vereinfachtem Chinesisch.

Konfiguration

  1. Installiere das Plugin (siehe Installationsanleitung oben) und baue deinen Container neu.
  2. Gehe zu Admin > Plugins > discourse-indexnow.
  3. Klicke auf dem Reiter Einstellungen auf Schlüssel generieren (oder füge einen vorhandenen 32-stelligen Hex-Schlüssel ein, den du bereits woanders registriert hast).
  4. Hake das Kästchen IndexNow-Einreichungen aktivieren an.
  5. Stelle sicher, dass der Schlüssel öffentlich erreichbar ist unter:
    https://your-forum.example/<key>.txt
    
    Es sollte HTTP 200 mit dem Schlüssel als Klartext zurückgeben. Das Admin-Panel führt diesen Check auch automatisch aus und zeigt neben „key.txt erreichbar“ einen zwischengespeicherten grünen/roten Status an.
  6. (Optional) Verwende auf dem Reiter Protokolle das Backfill-Panel, um historische Themen einzureichen – wähle eine Kategorie und einen Datumsbereich, klicke auf Vorschau, um zu sehen, wie viele Themen passen, und dann auf Einreichen.
  7. (Optional) Verwende das Feld für manuelle Einreichung, um Einmal-URLs einzufügen, eine pro Zeile, für die sofortige Einreichung außerhalb des normalen automatischen Ablaufs.

Der Reiter Protokolle zeigt auch ein 7-Tage-Trend-Diagramm für Erfolg/Misserfolg und eine Aufschlüsselung der Fehlerursachen, sodass du auf einen Blick erkennen kannst, ob Einreichungen rate-limited werden, wegen eines Key-Mismatches abgelehnt werden oder aus einem anderen Grund fehlschlagen.

Einstellungen

Name Beschreibung
indexnow_enabled Hauptschalter für das Plugin. Kann nicht aktiviert werden, während login_required aktiv ist, und deaktiviert sich automatisch, wenn login_required danach aktiviert wird.
indexnow_api_key Aktueller 32-stelliger Hex-Schlüssel, der zur Authentifizierung von Einreichungen verwendet wird.
indexnow_submit_on_create Automatisch einreichen, wenn ein neues öffentliches Thema erstellt wird.
indexnow_submit_on_edit Automatisch erneut einreichen, wenn der erste Beitrag oder die Attributwerte des Themas sich ändern.
indexnow_excluded_category_ids Zusätzliche Kategorien, die immer ausgeschlossen werden sollen, auch wenn sie öffentlich sind.
indexnow_hourly_limit Maximale Anzahl der pro Stunde eingereichten URLs.
indexnow_daily_limit Maximale Anzahl der pro Tag eingereichten URLs.

Bekannte Einschränkungen

  • IndexNow hat keine Löschbenachrichtigung – Themenlöschungen werden nur zu Audit-Zwecken protokolliert, nicht eingereicht.
  • Google nimmt am IndexNow-Protokoll nicht teil.
  • Lokalisierte URLs werden nur eingereicht, wenn der Crawler-Locale-Parameter aktiviert ist und für dieses Thema tatsächlich eine Lokalisierung existiert.

Dies ist ein unabhängiges, inoffizielles Plugin – nicht vom Discourse-Team gewartet. Es läuft produktiv auf meinem eigenen Forum, hat RSpec-Testabdeckung mit CI bei jedem Push/PR, und ich würde Bug-Reports oder Funktionswünsche über GitHub-Issues oder Antworten hier sehr begrüßen.

1 „Gefällt mir“