| 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. | |
| Repository-Link | github.com/imlotso/discourse-indexnow | |
| 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
429zurückgibt (beachtetRetry-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
- Installiere das Plugin (siehe Installationsanleitung oben) und baue deinen Container neu.
- Gehe zu Admin > Plugins > discourse-indexnow.
- 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).
- Hake das Kästchen IndexNow-Einreichungen aktivieren an.
- Stelle sicher, dass der Schlüssel öffentlich erreichbar ist unter:
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.https://your-forum.example/<key>.txt - (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.
- (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.