| Riepilogo | Invia automaticamente gli URL dei nuovi topic pubblici e di quelli modificati al protocollo IndexNow, in modo che Bing, Yandex e altri motori di ricerca partecipanti possano scoprire i tuoi contenuti in pochi minuti, invece di aspettare un crawl. | |
| Link al repository | github.com/imlotso/discourse-indexnow | |
| Guida all’installazione | Come installare i plugin in Discourse |
È disponibile anche una descrizione in lingua cinese con ulteriori dettagli sul mio forum: sitetalk.net/t/topic/642.
Funzionalità
- Invia automaticamente i nuovi topic pubblici e li risubisce quando una modifica altera il primo post o le proprietà principali del topic.
- Quando Content Localization e il suo parametro locale del crawler sono abilitati, gli URL dei topic localizzati vengono inclusi automaticamente insieme all’URL principale — utilizzando il vero parametro di query locale di Discourse (mai hardcoded).
- Invia l’URL principale e tutte le localizzazioni esistenti insieme in una singola richiesta batch
urlListdi IndexNow, anziché una richiesta per ogni URL. - Ripopolamento storico (backfill): filtra i topic per categoria e intervallo di date, anteprima i risultati corrispondenti, quindi inviali in un unico batch — riutilizzando lo stesso motore di batching, che divide automaticamente gli invii in base al limite di 10.000 URL del protocollo.
- Invio manuale: incolla un URL per riga per inviare link specifici su richiesta; gli URL esterni o non idonei vengono filtrati automaticamente.
- Limiti di invio orari/diurni, con backoff automatico quando IndexNow restituisce un
429(rispettaRetry-Afterquando presente). - Supporto per la rotazione delle chiavi — la chiave precedente rimane valida per una finestra di transizione di 7 giorni in modo che gli invii in corso non vengano interrotti.
- Verifica di raggiungibilità integrata per il tuo file
/<key>.txt, visualizzata direttamente nel pannello di amministrazione. - Risubisce (o esclude) automaticamente i topic quando vengono spostati tra categorie, o quando la visibilità/tag di una categoria cambiano.
- I log di invio tracciano l’ID del batch, il locale, una tendenza di successo/fallimento su 7 giorni e una ripartizione delle ragioni di fallimento (limite di frequenza / errore chiave / discrepanza di dominio / altro).
- Tutti gli invii vengono eseguiti in modo asincrono tramite Sidekiq e passano attraverso gli stessi filtri di privacy degli invii automatici — nulla aggira le regole di esclusione (messaggi privati, categorie ristrette, topic non elencati/eliminati, siti che richiedono l’accesso).
- Interfaccia di amministrazione disponibile in inglese e cinese semplificato.
Configurazione
- Installa il plugin (vedi la Guida all’installazione sopra) e ricostruisci il tuo container.
- Vai su Admin > Plugins > discourse-indexnow.
- Nella scheda Impostazioni, fai clic su Genera chiave (o incolla una chiave esadecimale di 32 caratteri esistente che hai già registrato altrove).
- Spunta la casella Abilita invii IndexNow.
- Conferma che la chiave è raggiungibile pubblicamente presso:
Dovrebbe restituire HTTP 200 con la chiave come testo semplice. Il pannello di amministrazione esegue anche questo controllo automaticamente e mostra uno stato verde/rosso in cache accanto a “key.txt accessibile”.https://your-forum.example/<key>.txt - (Facoltativo) Nella scheda Log, usa il pannello Backfill per inviare topic storici — scegli una categoria e un intervallo di date, fai clic su Anteprima per vedere quanti topic corrispondono, quindi Invia.
- (Facoltativo) Usa il campo di invio manuale per incollare URL una tantum, uno per riga, per un invio immediato al di fuori del flusso automatico normale.
La scheda Log mostra anche un grafico della tendenza di successo/fallimento su 7 giorni e una ripartizione delle ragioni di fallimento, in modo da poter vedere a colpo d’occhio se gli invii sono limitati per frequenza, rifiutati per discrepanza di chiave o falliti per un altro motivo.
Impostazioni
| Nome | Descrizione |
|---|---|
indexnow_enabled |
Interruttore principale del plugin. Non può essere abilitato mentre login_required è attivo e si disattiva automaticamente se login_required viene attivato successivamente. |
indexnow_api_key |
Chiave esadecimale attuale di 32 caratteri utilizzata per autenticare gli invii. |
indexnow_submit_on_create |
Invia automaticamente quando viene creato un nuovo topic pubblico. |
indexnow_submit_on_edit |
Risubisce automaticamente quando il primo post o gli attributi del topic cambiano. |
indexnow_excluded_category_ids |
Categorie aggiuntive da escludere sempre, anche se sono pubbliche. |
indexnow_hourly_limit |
Numero massimo di URL inviati per ora. |
indexnow_daily_limit |
Numero massimo di URL inviati al giorno. |
Limitazioni note
- IndexNow non ha una notifica di eliminazione — le eliminazioni dei topic vengono registrate solo a fini di audit, non inviate.
- Google non partecipa al protocollo IndexNow.
- Gli URL localizzati vengono inviati solo quando il parametro locale del crawler è abilitato e esiste effettivamente una localizzazione per quel topic.
Questo è un plugin indipendente e non ufficiale — non mantenuto dal team di Discourse. È in produzione sul mio forum, ha una copertura di test RSpec con CI su ogni push/PR e apprezzerei qualsiasi segnalazione di bug o richiesta di funzionalità tramite issue GitHub o risposte qui.