| Zusammenfassung | Sendet öffentliche Themen-URLs automatisch bei Erstellung, Bearbeitung, Löschung und Antworten an das IndexNow-Protokoll, damit Bing, Yandex und andere kompatible Suchmaschinen Ihren Inhalt in Minuten entdecken oder aus ihren Indizes entfernen können, ohne auf Crawler warten zu müssen. | |
| Repository | github.com/imlotso/discourse-indexnow | |
| Installationsanleitung | So installieren Sie Plugins in Discourse |
Eine chinesischsprachige Abhandlung mit weiteren Hintergrundinformationen ist auch auf meinem Forum verfügbar: sitetalk.net/t/topic/642
Funktionen
- Sendet neue öffentliche Themen automatisch; sendet erneut, wenn der erste Beitrag oder wichtige Themenattribute geändert werden.
- Senden bei Antwort: Sendet die paginierte URL (z. B.
?page=3) automatisch, wenn neue Antworten gepostet werden, mit einer konfigurierbaren Abklingzeit pro URL, um Spam zu verhindern. - Sendet Themen-URLs automatisch bei Löschung, um Suchmaschinen zu helfen, 404/410-Fehler zu erkennen und Inhalte schnell aus dem Index zu entfernen.
- Sendet lokalisierte Themen-URLs automatisch in Batches, wenn Content Localization und Crawler-Locale-Query-Parameter aktiv sind. Verwendet den tatsächlich konfigurierten Locale-Parameter, nicht hartkodiert.
- Bündelt kanonische und lokalisierte URLs in einzelne IndexNow-
urlList-Batch-Anfragen, anstatt sie einzeln zu senden. - Historische Nachlieferung: Filtern nach Kategorie und Datumsbereich, Vorschau der Trefferanzahlen und Massenversand. Automatische Aufteilung für Batches, die das Protokoll-Limit von 10.000 überschreiten. Aktive Jobs können über den Reiter „Logs“ abgebrochen werden.
- Manueller Versand: Senden Sie benutzerdefinierte URLs nach Bedarf Zeile für Zeile; externe oder nicht berechtigte Links werden automatisch herausgefiltert.
- Intelligentes Rate Limiting: Wendet stündliche und tägliche Limits mit einem fein abgestuften Sliding-Window-Algorithmus an. Weicht automatisch bei
429aus (unter Beachtung vonRetry-After). Die Admin-UI bietet visuelle Quota Bars, die den aktuellen Verbrauch und die exakte Zeit bis zur Freigabe der Kapazität anzeigen. - Schließt bestimmte Kategorien und Tags als Geschäftslogik-Regeln zusätzlich zu automatisierten Datenschutzfiltern aus.
- Schlüsselrotation mit einem Bestätigungsdialog für versehentliches Überschreiben; frühere Schlüssel werden sofort ungültig gemacht.
- Admin-Verifizierung für die öffentliche Zugänglichkeit von
/<key>.txt. - Themenverschiebungen, Änderungen der Kategorie-Sichtbarkeit und Tag-Updates lösen asynchrone Neusendungen oder Ausschlüsse in Hintergrundjobs aus, um UI-Blockaden zu verhindern.
- Umfangreiche Log-Einträge mit Batch-IDs, Locale, Auslösergründen, 7-Tage-Erfolgs/Fehlschlag-Trenddiagrammen und kategorisierten Fehlerschritten (Rate Limited, Key Error, Domain Mismatch).
- Vollständig asynchrone Übermittlungen unter Einhaltung von Datenschutzgrenzen: PN, eingeschränkte Kategorien, nicht gelistete/gelöschte Themen und Login-pflichtige Seiten werden nie übermittelt.
- Verfügbar auf Englisch und Vereinfachtem Chinesisch.
Einrichtungsschritte
- Installieren Sie das Plugin gemäß der obigen Anleitung und bauen Sie Ihren Container neu.
- Gehen Sie zu Admin > Plugins > discourse-indexnow.
- Klicken Sie unter Einstellungen auf Schlüssel generieren (oder fügen Sie einen vorhandenen 32-stelligen Hex-Schlüssel ein).
- Aktivieren Sie IndexNow-Übermittlungen aktivieren.
- Verifizieren Sie die öffentliche Zugänglichkeit des Schlüssels:
https://your-forum-domain.com/<key>.txt
Sollte HTTP 200 mit der Schlüsselzeichenfolge zurückgeben. Das Admin-Panel zeigt auch einen zwischengespeicherten grünen/roten Indikator an.
6. (Optional) Verwenden Sie im Reiter Logs das Panel „Backfill“: Wählen Sie Kriterien, klicken Sie auf Vorschau, dann auf Senden.
7. (Optional) Verwenden Sie das manuelle Sendefeld, um einzelne URLs außerhalb des automatisierten Flusses zu senden.
Die Log-Seite bietet auch Quota-Nutzungsleisten, ein 7-Tage-Trenddiagramm und Fehlerschritt-Metriken, um Übermittlungsprobleme leicht zu diagnostizieren.
Konfigurationseinstellungen
| Einstellung | Beschreibung |
|---|---|
indexnow_enabled |
Hauptschalter. Wird automatisch deaktiviert, wenn login_required aktiviert ist. |
indexnow_api_key |
Der 32-stellige Hex-Schlüssel zur Verifizierung der Übermittlung. |
indexnow_submit_on_create |
Automatisch senden, wenn ein neues öffentliches Thema erstellt wird. |
indexnow_submit_on_edit |
Automatisch erneut senden, wenn der erste Beitrag oder Themenattribute geändert werden. |
indexnow_submit_on_reply |
Automatisch die spezifische paginierte URL senden, wenn neue Antworten gepostet werden. |
indexnow_url_cooldown_minutes |
Abklingzeit pro URL (in Minuten), um doppelte Übermittlungen zu verhindern. |
indexnow_excluded_category_ids |
Kategorien, die ausgeschlossen werden sollen, auch wenn sie öffentlich sind. |
indexnow_excluded_tag_names |
Tags, die ausgeschlossen werden sollen, auch wenn die Themenkategorie berechtigt ist. |
indexnow_hourly_limit |
Maximale Anzahl der pro Stunde zu sendenden URLs (Sliding Window). |
indexnow_daily_limit |
Maximale Anzahl der pro Tag zu sendenden URLs (Sliding Window). |
Bekannte Einschränkungen
- Google nimmt derzeit nicht am IndexNow-Protokoll teil.
- Lokalisierte URLs werden nur übermittelt, wenn Crawler-Locale-Parameter aktiv sind und lokalisierte Inhalte vorhanden sind.
- Derzeit werden Bearbeitungen des ersten Beitrags und die Paginierung neuer Antworten unterstützt, aber Bearbeitungen von Zwischenantworten lösen keine eigenständigen Übermittlungen aus.
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 mich über Bug-Reports oder Funktionswünsche über GitHub-Issues oder Antworten hier freuen.
