| Résumé | Soumet automatiquement les URL de sujets publics nouveaux et modifiés au protocole IndexNow, afin que Bing, Yandex et d’autres moteurs de recherche participants puissent découvrir votre contenu en quelques minutes au lieu d’attendre un crawl. | |
| Lien du dépôt | github.com/imlotso/discourse-indexnow | |
| Guide d’installation | Comment installer des plugins dans Discourse |
Un article en langue chinoise avec plus de contexte est également disponible sur mon forum : sitetalk.net/t/topic/642.
Fonctionnalités
- Soumet automatiquement les nouveaux sujets publics et resoumet lorsque la modification du premier message ou des propriétés clés du sujet change.
- Lorsque la Localisation du contenu et son paramètre de locale du crawler sont activés, les URL de sujets localisés sont automatiquement incluses avec l’URL principale — en utilisant le paramètre de requête de locale réel de Discourse (jamais codé en dur).
- Soumet l’URL principale et toutes les localisations existantes ensemble dans une seule requête de lot
urlListIndexNow, plutôt qu’une requête par URL. - Remplissage historique : filtrez les sujets par catégorie et par plage de dates, prévisualisez les résultats correspondants, puis soumettez-les en un seul lot — en réutilisant le même moteur de lot, qui divise automatiquement les soumissions au-delà de la limite de 10 000 URL du protocole.
- Soumission manuelle : collez une URL par ligne pour soumettre des liens spécifiques sur demande ; les URL externes ou non éligibles sont filtrées automatiquement.
- Plafonds de soumission horaires/journaliers, avec un recul automatique lorsque IndexNow renvoie un
429(respecteRetry-Afterlorsqu’il est présent). - Prise en charge de la rotation des clés — la clé précédente reste valide pendant une fenêtre de transition de 7 jours afin que les soumissions en cours ne soient pas interrompues.
- Vérification intégrée de l’accessibilité de votre fichier
/<key>.txt, affichée directement dans le panneau d’administration. - Resoumet (ou exclut) automatiquement les sujets lorsqu’ils sont déplacés entre des catégories, ou lorsque la visibilité/les tags d’une catégorie changent.
- Les journaux de soumission suivent l’ID du lot, la locale, une tendance succès/échec sur 7 jours et un détail des raisons d’échec (limite de débit / erreur de clé / incohérence de domaine / autre).
- Toutes les soumissions sont exécutées de manière asynchrone via Sidekiq et passent par les mêmes filtres de confidentialité que les soumissions automatiques — rien ne contourne les règles d’exclusion (messages privés, catégories restreintes, sujets non listés/supprimés, sites nécessitant une connexion).
- Interface d’administration disponible en anglais et en chinois simplifié.
Configuration
- Installez le plugin (voir le Guide d’installation ci-dessus) et reconstruisez votre conteneur.
- Allez dans Admin > Plugins > discourse-indexnow.
- Sur l’onglet Paramètres, cliquez sur Générer une clé (ou collez une clé hexadécimale de 32 caractères existante que vous avez déjà enregistrée ailleurs).
- Cochez la case Activer les soumissions IndexNow.
- Confirmez que la clé est publiquement accessible à :
Elle doit renvoyer un HTTP 200 avec la clé en texte brut. Le panneau d’administration exécute également cette vérification automatiquement et affiche un statut vert/rouge en cache à côté de « key.txt accessible ».https://your-forum.example/<key>.txt - (Optionnel) Sur l’onglet Journaux, utilisez le panneau Remplissage pour soumettre des sujets historiques — choisissez une catégorie et une plage de dates, cliquez sur Aperçu pour voir combien de sujets correspondent, puis sur Soumettre.
- (Optionnel) Utilisez le champ de soumission manuelle pour coller des URL ponctuelles, une par ligne, pour une soumission immédiate en dehors du flux automatique normal.
L’onglet Journaux affiche également un graphique de tendance succès/échec sur 7 jours et un détail des raisons d’échec, afin que vous puissiez voir d’un coup d’œil si les soumissions sont limitées par le débit, rejetées pour incohérence de clé, ou échouent pour une autre raison.
Paramètres
| Nom | Description |
|---|---|
indexnow_enabled |
Interrupteur principal du plugin. Ne peut pas être activé lorsque login_required est activé, et se désactive automatiquement si login_required est activé par la suite. |
indexnow_api_key |
Clé hexadécimale de 32 caractères actuelle utilisée pour authentifier les soumissions. |
indexnow_submit_on_create |
Soumettre automatiquement lorsqu’un nouveau sujet public est créé. |
indexnow_submit_on_edit |
Resoumettre automatiquement lorsque le premier message ou les attributs du sujet changent. |
indexnow_excluded_category_ids |
Catégories supplémentaires à exclure toujours, même si elles sont publiques. |
indexnow_hourly_limit |
Nombre maximum d’URL soumises par heure. |
indexnow_daily_limit |
Nombre maximum d’URL soumises par jour. |
Limitations connues
- IndexNow n’a pas de notification de suppression — les suppressions de sujets ne sont que journalisées à des fins d’audit, et non soumises.
- Google ne participe pas au protocole IndexNow.
- Les URL localisées ne sont soumises que lorsque le paramètre de locale du crawler est activé et qu’une localisation existe réellement pour ce sujet.
Ceci est un plugin indépendant et non officiel — non maintenu par l’équipe Discourse. Il fonctionne en production sur mon propre forum, a une couverture de tests RSpec avec CI à chaque push/PR, et j’apprécierais tout signalement de bug ou demande de fonctionnalité via les issues GitHub ou des réponses ici.