| Riepilogo | Invia automaticamente gli URL dei topic pubblici alla creazione, modifica, eliminazione e in risposta alle risposte al protocollo IndexNow, consentendo a Bing, Yandex e altri motori di ricerca compatibili di scoprire o rimuovere il tuo contenuto in pochi minuti senza attendere i crawler. | |
| Repository | github.com/imlotso/discourse-indexnow | |
| Guida all’installazione | Come installare i plugin in Discourse |
È disponibile anche un articolo in lingua cinese con ulteriori informazioni sul mio forum: sitetalk.net/t/topic/642
Funzionalità
- Invio automatico dei nuovi topic pubblici; riesecuzione dell’invio quando cambia il primo post o gli attributi critici del topic.
- Invio in risposta: invia automaticamente l’URL paginato (es.
?page=3) quando vengono pubblicate nuove risposte, con un tempo di raffreddamento configurabile per URL per prevenire lo spam. - Invio automatico degli URL dei topic all’eliminazione per aiutare i motori di ricerca a rilevare i codici 404/410 e rimuovere rapidamente l’indicizzazione.
- Raggruppamento automatico degli URL dei topic localizzati quando Content Localization e i parametri di query della locale del crawler sono attivi. Utilizza il parametro di locale effettivamente configurato, non valori hardcoded.
- Raggruppa gli URL canonici e localizzati in singole richieste batch
urlListdi IndexNow invece di inviarli uno per uno. - Riempimento storico: filtro per categoria e intervallo di date, anteprima del numero di corrispondenze e invio in blocco. Spezzettamento automatico per i batch che superano il limite di protocollo di 10.000. I job attivi possono essere annullati dalla scheda Log.
- Invio manuale: invia URL personalizzati su richiesta, riga per riga; i link esterni o non idonei vengono filtrati automaticamente.
- Limitazione intelligente della frequenza: applica limiti orari e giornalieri utilizzando un algoritmo a finestra scorrevole di fine grana. Si disattiva automaticamente in caso di
429(rispettandoRetry-After). L’interfaccia di amministrazione presenta Barre di Quota visive che mostrano l’utilizzo attuale e l’ora esatta in cui la capacità verrà liberata. - Esclude categorie specifiche e tag come regole a livello di business oltre ai filtri di privacy automatizzati.
- Rotazione delle chiavi con una finestra di dialogo di conferma per sovrascrittura accidentale; le chiavi precedenti vengono invalidate immediatamente.
- Verifica da parte dell’amministratore dell’accessibilità pubblica di
/<key>.txt. - Spostamenti di topic, modifiche alla visibilità delle categorie e aggiornamenti dei tag attivano la riesecuzione asincrona o l’esclusione tramite fan-out in job di background per evitare il blocco dell’interfaccia utente.
- Voci di log dettagliate con ID batch, locale, motivi dell’attivazione, grafici di tendenza di successo/fallimento a 7 giorni e motivi di fallimento categorizzati (Limitato dalla frequenza, Errore chiave, Disallineamento dominio).
- Invii completamente asincroni che rispettano i confini della privacy: messaggi privati, categorie ristrette, topic non elencati/eliminati e siti che richiedono l’accesso non vengono mai inviati.
- Disponibile in inglese e cinese semplificato.
Passaggi di configurazione
- Installa il plugin seguendo la guida sopra e ricostruisci il tuo contenitore.
- Vai su Amministrazione > Plugin > discourse-indexnow.
- Sotto Impostazioni, fai clic su Genera chiave (oppure incolla una chiave esadecimale esistente da 32 caratteri).
- Spunta Abilita invii IndexNow.
- Verifica l’accessibilità pubblica della chiave:
https://your-forum-domain.com/<key>.txt
Dovrebbe restituire HTTP 200 con la stringa della chiave. Il pannello di amministrazione mostra anche un indicatore verde/rosso in cache.
6. (Facoltativo) Nella scheda Log, usa il pannello “Backfill”: seleziona i criteri, fai clic su Anteprima, quindi su Invia.
7. (Facoltativo) Usa la casella di invio manuale per inviare singoli URL al di fuori del flusso automatizzato.
La pagina Log presenta anche barre di utilizzo della quota, un grafico di tendenza a 7 giorni e metriche di suddivisione dei fallimenti per diagnosticare facilmente i problemi di invio.
Impostazioni di configurazione
| Impostazione | Descrizione |
|---|---|
indexnow_enabled |
Interruttore principale. Disattivato automaticamente se login_required è abilitato. |
indexnow_api_key |
La chiave esadecimale da 32 caratteri per la verifica dell’invio. |
indexnow_submit_on_create |
Invio automatico quando viene creato un nuovo topic pubblico. |
indexnow_submit_on_edit |
Reinvio automatico quando cambia il primo post o gli attributi del topic. |
indexnow_submit_on_reply |
Invio automatico dell’URL paginato specifico quando vengono pubblicate nuove risposte. |
indexnow_url_cooldown_minutes |
Periodo di raffreddamento per URL (in minuti) per prevenire invii duplicati. |
indexnow_excluded_category_ids |
Categorie da escludere anche se pubbliche. |
indexnow_excluded_tag_names |
Tag da escludere anche se la categoria del topic è idonea. |
indexnow_hourly_limit |
Numero massimo di URL da inviare per ora (finestra scorrevole). |
indexnow_daily_limit |
Numero massimo di URL da inviare al giorno (finestra scorrevole). |
Limitazioni note
- Google non partecipa attualmente al protocollo IndexNow.
- Gli URL localizzati vengono inviati solo quando i parametri di locale del crawler sono attivi e esiste contenuto localizzato.
- Attualmente, le modifiche al primo post e la paginazione delle nuove risposte sono supportate, ma le modifiche alle risposte intermedie non attivano invii indipendenti.
Questo è un plugin indipendente e non ufficiale — non mantenuto dal team 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 le issue GitHub o le risposte qui.
