Perché Discourse non supporta IndexNow?

Nell’odierna informazione frenetica e rapidamente obsoleta, la velocità di indicizzazione è uno dei fattori più importanti per il successo.

Ma perché Discource non supporta affatto questo protocollo? https://www.indexnow.org/

3 Mi Piace

Poiché a nessuno importava abbastanza da creare un plugin o una pull-request per supportarlo. Il che, direi, è probabilmente causato dal fatto che Google non supporta IndexNow, che è il motore di ricerca a cui la maggior parte delle persone tiene.

Ma se vuoi creare un plugin per aggiungere questa funzionalità, è un contributo benvenuto!

14 Mi Piace

Mi piacerebbe contribuire alla community e programmare questa estensione, ma non siamo programmatori.

L’atteggiamento di Google nei confronti di IndexNow è che lo stanno testando e vedremo.

Ci sono novità su Index Now? Ora che anche OpenAI gestisce un motore di ricerca che attinge dall’indice di Bing ed è collegato a IndexNow, ha ancora più senso.

Allora potresti commissionare il plugin in Marketplace. Posso immaginare soluzioni nell’intervallo di $500-$2000. Altri potrebbero avere idee migliori delle mie.

3 Mi Piace

Concordo, ora sembra un ottimo momento affinché Discourse supporti IndexNow :))

1 Mi Piace

Dopo aver esaminato la funzionalità IndexNow, concordo sul fatto che dovrebbe essere una delle funzionalità/plugin principali. Comprendo anche che le risorse per gli sviluppatori sono limitate.

Ecco i miei pensieri sul plugin richiesto per assistere il team principale. Sentiti libero di aggiungere ulteriori commenti.

Presupposti:

  1. Il plugin IndexNow utilizzerà notifiche di massa secondo un modello di tempo programmato - Vedi Considerazione di progettazione n. 1
  2. Le notifiche di massa saranno impostate su un intervallo di tempo
  3. Le notifiche utilizzeranno solo argomenti pubblici
  4. Le notifiche saranno solo per argomenti nuovi/modificati/eliminati quando il plugin è abilitato.
  5. Il plugin non notificherà retroattivamente modifiche/eventi storici.

Istruzioni per gli utenti:

  1. Registrati con il motore di ricerca IndexNow di tua scelta.
    • Ottieni la tua API Key
    • Ottieni l’URL dell’endpoint del motore di ricerca
  2. Installa il plugin
  3. Configura l’amministratore

Caso d’uso - Impostazioni amministratore

  1. Consentire all’utente di attivare/disattivare le funzionalità di invio automatico
  2. Consentire all’utente di inserire l’endpoint del motore di ricerca IndexNow. Vedi Considerazione di progettazione n. 3.
    • Il campo di input è un parametro di testo
    • Il campo di input deve essere un URL valido
    • Imposta come predefinito l’URL di Bing su https://www.bing.com/indexnow
  3. Consentire all’utente di inserire e memorizzare la API key
    • Campo stringa di input per memorizzare la API key
    • Il campo di input è alfanumerico
    • Il valore predefinito sarà “”
  4. Consentire all’utente di definire i parametri di tempo programmato per le notifiche di massa
    • Il parametro di tempo sarà impostato per intervalli di ore
    • Stringa di input per memorizzare il valore delle ore
    • Gli input validi saranno numeri interi
    • Gli input validi possono variare da 1 a 24
    • Il valore predefinito sarà 12

Caso d’uso - File chiave di testo

  1. Il sistema genererà un file chiamato indexnowkey.txt
  2. Il file chiave deve essere memorizzato a livello di root.
  3. Il sistema popolerà il file con la API key
  4. Il file sarà accessibile da qualsiasi utente/sistema remoto tramite http/https

Caso d’uso - Pianificazione del processo di notifica di massa

  1. Il sistema pianificherà l’esecuzione dei processi a intervalli in base all’impostazione definita nelle impostazioni dell’amministratore.
  2. Il valore dell’intervallo definisce il ritardo tra i processi in ore. Ad esempio, un valore di input di 2 indicherebbe che il processo deve essere eseguito ogni 2 ore. Un valore di 4 indica che il processo deve essere eseguito ogni 4 ore. Un valore di 24 indica che il processo deve essere eseguito una volta al giorno.

Caso d’uso - Processo di notifica di massa

  1. Il sistema determinerà se il processo di notifica è attivato tramite l’impostazione del sito definita nelle impostazioni dell’amministratore.
  2. Il sistema determinerà se una API key è valida nelle impostazioni del sito - non “”.
  3. Il sistema creerà un elenco di argomenti in base all’impostazione dell’intervallo di tempo definito. Vedi Considerazione di progettazione n. 2 sui tempi di query. I parametri dell’argomento per l’inclusione sono:
    • Gli argomenti devono essere solo per la visualizzazione pubblica
    • Nuovi argomenti
    • Argomenti con nuovi post
    • Argomenti con post modificati
    • Argomenti eliminati
    • L’elenco degli argomenti deve essere distinto - senza duplicati
  4. Il sistema creerà il pacchetto JSON utilizzando il seguente formato.
{
  "host": "current_site",
  "key": "api_key",
  "keyLocation": "https://current_site/indexnowkey.txt",
  "urlList": [
      "https://www.example.com/url1",
      "https://www.example.com/folder/url2",
      "https://www.example.com/url3"
      ]
}
  1. Il pacchetto JSON verrà inviato a:
    • URL: sitesettings.search_engine_indexnow_endpoint
  2. Il pacchetto JSON verrà inviato con le seguenti intestazioni:
    • Content-Type: application/json; charset=utf-8
    • Http/1.1
    • Host: bing
  3. Validare la ricezione della richiesta HTTP
    • http 200 - invio riuscito - fine processo
    • Http 429 - Troppi tentativi di invio - Inviare una notifica all’amministratore per aumentare il tempo di intervallo

Considerazioni di progettazione:

  1. Notifiche di massa vs. Notifiche singole — Una singola notifica sarebbe accettabile per piccoli domini, ma per forum più grandi, l’aggiunta di una notifica per ogni post nuovo/aggiornato potrebbe creare molti processi di eventi. Dal punto di vista delle prestazioni di indicizzazione dei motori di ricerca, notifiche di massa su base oraria sarebbero accettabili per l’80% dei forum.
  2. Tempi di query per le notifiche di massa - SideKiq controlla i tempi di intervallo. Se SideKiq è in uno stato di processo pesante, il processo di notifica di massa potrebbe essere ritardato. Il processo di notifica di massa potrebbe perdere argomenti nuovi/aggiornati se l’intervallo di tempo della query è uguale all’intervallo di pianificazione. Un parametro di tempo dovrebbe estendere la query per coprire i processi ritardati? O è possibile che lo Scheduler passi timestamp avviati per controllare gli intervalli di tempo della query? O dobbiamo creare una tabella/valore del database per gli argomenti inviati con un timestamp?
  3. Dovremmo creare una tabella interna con ciascun motore di ricerca e l’endpoint URL IndexNow definito? L’utente potrebbe scegliere tra un menu a discesa invece di inserire un URL. Ciò rimuove potenziali errori umani.

Cosa manca? Cosa aggiungeresti?

C’è un modo per sfruttare il nostro supporto esistente per i webhook in uscita per realizzare alcuni/tutti ciò che desideri?

1 Mi Piace

Sembra uno schema abbastanza decente. Penso che farei solo invii in blocco/batch per evitare di avere due metodi da scrivere, eseguire il debug, testare e mantenere.

Oppure forse un singolo processo in blocco/batch potrebbe evitare i problemi di limitazione della frequenza e quindi avere un solo modo per inviare le cose (solo in batch, mai a livello di singolo post).

Una versione che invia a un singolo endpoint potrebbe costare da $2000 per qualcosa che sembrava funzionare e aveva una gestione minima degli errori a $5000 per qualcosa con almeno alcune specifiche per eseguire test; e forse potrebbe gestire la notifica a più endpoint?

Stai ponendo un’ottima domanda “Come”. Non sono la persona migliore a cui chiedere domande “Come” su Discourse.

Sono bravo a documentare “Cosa” è necessario. Ottenere una definizione valida e chiara di “Cosa” è necessario renderà la codifica più veloce e quindi più economica.

Per rispondere al “Cosa” per i webhook, credo che si riferisca a notifiche singole o in blocco. Ho un forum di medie dimensioni e preferirei notifiche in blocco.

  1. Non ho bisogno che i motori di ricerca vengano notificati quando un argomento viene creato o aggiornato.
  2. Non mi piace aggiungere eventi a bassa priorità all’interno di processi critici come la creazione di argomenti e post. L’aggiunta di eventi aggiuntivi aumenta il tempo di attesa per gli utenti. Un metodo in blocco richiede solo una query SQL e un invio HTTP. Può essere elaborato come un evento di backend al di fuori dell’interazione dell’utente.

Il plugin dovrebbe essere sviluppato solo per un endpoint. L’accordo IndexNow richiede ai motori di ricerca di condividere le segnalazioni tra loro. Ad esempio, invii a Bing e Bing invia agli altri motori di ricerca conformi a IndexNow.

Abbiamo bisogno di 30 membri per finanziare collettivamente il plugin a $100 ciascuno per farlo sviluppare.

1 Mi Piace