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:
- Il plugin IndexNow utilizzerà notifiche di massa secondo un modello di tempo programmato - Vedi Considerazione di progettazione n. 1
- Le notifiche di massa saranno impostate su un intervallo di tempo
- Le notifiche utilizzeranno solo argomenti pubblici
- Le notifiche saranno solo per argomenti nuovi/modificati/eliminati quando il plugin è abilitato.
- Il plugin non notificherà retroattivamente modifiche/eventi storici.
Istruzioni per gli utenti:
- Registrati con il motore di ricerca IndexNow di tua scelta.
- Ottieni la tua API Key
- Ottieni l’URL dell’endpoint del motore di ricerca
- Installa il plugin
- Configura l’amministratore
Caso d’uso - Impostazioni amministratore
- Consentire all’utente di attivare/disattivare le funzionalità di invio automatico
- 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
- 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à “”
- 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
- Il sistema genererà un file chiamato indexnowkey.txt
- Il file chiave deve essere memorizzato a livello di root.
- Il sistema popolerà il file con la API key
- Il file sarà accessibile da qualsiasi utente/sistema remoto tramite http/https
Caso d’uso - Pianificazione del processo di notifica di massa
- Il sistema pianificherà l’esecuzione dei processi a intervalli in base all’impostazione definita nelle impostazioni dell’amministratore.
- 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
- Il sistema determinerà se il processo di notifica è attivato tramite l’impostazione del sito definita nelle impostazioni dell’amministratore.
- Il sistema determinerà se una API key è valida nelle impostazioni del sito - non “”.
- 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
- 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"
]
}
- Il pacchetto JSON verrà inviato a:
- URL:
sitesettings.search_engine_indexnow_endpoint
- URL:
- Il pacchetto JSON verrà inviato con le seguenti intestazioni:
- Content-Type: application/json; charset=utf-8
- Http/1.1
- Host: bing
- 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:
- 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.
- 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?
- 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?