Dans le monde d’aujourd’hui où l’information évolue rapidement et devient obsolète, la vitesse d’indexation est l’un des facteurs les plus importants pour réussir.
Parce que personne ne s’en souciait assez pour créer un plugin ou une pull-request pour le prendre en charge. Ce qui, je dirais, est probablement dû au fait que Google ne prend pas en charge IndexNow, qui est le moteur de recherche qui intéresse la plupart des gens.
Mais si vous voulez créer un plugin pour ajouter cette fonctionnalité, c’est une contribution bienvenue !
Des nouvelles d’Index Now ? Maintenant qu’OpenAI gère même un moteur de recherche qui puise dans l’index de Bing et qui est lié à IndexNow, cela a encore plus de sens.
Vous pourriez alors commander le plugin sur la Marketplace. J’imagine des solutions dans la fourchette de 500 à 2000 . D’autres pourraient avoir une meilleure imagination que moi.
Après avoir examiné la fonctionnalité IndexNow, je suis d’accord pour qu’elle fasse partie des fonctionnalités/plugins principaux. Je comprends également que les ressources de développement sont limitées.
Voici mes réflexions sur le plugin requis pour aider l’équipe principale. N’hésitez pas à ajouter des commentaires supplémentaires.
Hypothèses :
Le plugin IndexNow utilisera des notifications groupées selon un modèle temporel planifié - Voir Considération de conception n°1
Les notifications groupées seront définies par un intervalle de temps
Les notifications n’utiliseront que des sujets publics
Les notifications ne concerneront que les sujets nouveaux/modifiés/supprimés lorsque le plugin est activé.
Le plugin ne notifiera pas rétroactivement les changements/événements historiques.
Instructions pour les utilisateurs :
Inscrivez-vous auprès du moteur de recherche IndexNow de votre choix.
Obtenez votre clé API
Obtenez l’URL du point de terminaison du moteur de recherche
Installez le plugin
Configuration de l’administrateur
Cas d’utilisation - Paramètres d’administration
Permettre à l’utilisateur d’activer/désactiver les capacités de soumission automatique
Permettre à l’utilisateur d’entrer le point de terminaison du moteur de recherche IndexNow. Voir Considération de conception n°3.
Le champ de saisie est un paramètre de texte
Le champ de saisie doit être une URL valide
Par défaut, l’URL de Bing est https://www.bing.com/indexnow
Permettre à l’utilisateur de saisir et de stocker la clé API
Champ de saisie de type chaîne pour stocker la clé API
Le champ de saisie est alphanumérique
La valeur par défaut sera “”
Permettre à l’utilisateur de définir les paramètres de planification pour les notifications groupées
Le paramètre de temps sera défini par un intervalle d’heures
Chaîne de saisie pour stocker la valeur des heures
Les entrées valides seront des entiers
Les entrées valides peuvent varier de 1 à 24
La valeur par défaut sera 12
Cas d’utilisation - Fichier de clé texte
Le système générera un fichier appelé indexnowkey.txt
Le fichier de clé doit être stocké à la racine.
Le système remplira le fichier avec la clé API
Le fichier sera accessible par tout utilisateur/système distant via http/https
Cas d’utilisation - Planification du processus de notification groupée
Le système planifiera les tâches à traiter à intervalles réguliers en fonction du paramètre défini dans les paramètres d’administration.
La valeur de l’intervalle définit le délai entre les tâches en heures. Par exemple, une valeur d’entrée de 2 indiquerait que la tâche doit s’exécuter toutes les 2 heures. Une valeur de 4 indique que la tâche doit s’exécuter toutes les 4 heures. Une valeur de 24 indique que la tâche doit s’exécuter une fois par jour.
Cas d’utilisation - Processus de notification groupée
Le système déterminera si le processus de notification est activé via le paramètre du site défini dans les paramètres d’administration.
Le système déterminera si une clé API est valide dans les paramètres du site - pas “”.
Le système créera une liste de sujets basée sur le paramètre d’intervalle de temps défini. Voir la considération de conception n°2 sur les délais de requête. Les paramètres de sujet à inclure sont :
Les sujets doivent être en lecture seule publique
Nouveaux sujets
Sujets avec de nouveaux messages
Sujets avec des messages modifiés
Sujets supprimés
La liste des sujets doit être distincte - pas de doublons
Le système créera le paquet JSON en utilisant le format suivant.
Le paquet JSON sera envoyé à l’adresse suivante : sitesettings.search_engine_indexnow_endpoint
Le paquet JSON sera envoyé avec les en-têtes suivants :
Content-Type: application/json; charset=utf-8
Http/1.1
Host: bing
Valider la réception de la soumission de la requête HTTP
http 200 - soumission réussie - fin du processus
Http 429 - Trop de tentatives de soumission - Envoyer une notification à l’administrateur pour augmenter le délai d’intervalle
Considérations de conception :
Notifications groupées vs. Notifications individuelles — Une notification individuelle serait acceptable pour les petits domaines, mais pour les forums plus importants, l’ajout d’une notification pour chaque publication nouvelle/mise à jour pourrait créer de nombreux processus événementiels. Du point de vue des performances d’indexation par les moteurs de recherche, des notifications groupées sur une base horaire seraient acceptables pour 80 % des forums.
Délai de requête des notifications groupées - SideKiq contrôle les délais d’intervalle. Si SideKiq est dans un état de traitement intensif, le processus de notification groupée pourrait être retardé. Le processus de notification groupée pourrait manquer les sujets nouveaux/mis à jour si le délai de requête est égal à l’intervalle de planification. Un paramètre de temps devrait-il étendre la requête pour couvrir les processus retardés ? Ou est-il possible que le planificateur transmette des horodatages initiés pour contrôler les délais de requête ? Ou devons-nous créer une table/valeur de base de données pour les sujets soumis avec un horodatage ?
Devrions-nous créer une table interne avec chaque moteur de recherche et le point de terminaison d’URL IndexNow défini ? L’utilisateur pourrait choisir parmi un menu déroulant au lieu de saisir une URL. Cela élimine les erreurs humaines potentielles.
Cela semble être un plan assez décent. Je pense que je ne ferais que des soumissions en bloc/par lots pour éviter d’avoir deux méthodes à écrire, déboguer, tester et maintenir.
Ou peut-être qu’un seul travail en bloc/par lots pourrait éviter les problèmes de limitation de débit et avoir ainsi une seule façon de soumettre des éléments (juste en lot, jamais au niveau de chaque publication).
Une version qui soumettrait à un seul point de terminaison coûterait entre 2000 pour quelque chose qui semble fonctionner et qui a une gestion minimale des erreurs, et 5000 pour quelque chose avec au moins quelques spécifications pour effectuer des tests ; et pourrait éventuellement gérer la notification de plusieurs points de terminaison ?
Vous posez une excellente question sur le « Comment ». Je ne suis pas la meilleure personne à qui poser des questions sur le « Comment » concernant Discourse.
Je suis doué pour documenter le « Quoi » est nécessaire. Obtenir une définition claire et précise du « Quoi » est nécessaire accélérera le codage et le rendra donc moins cher.
Pour répondre au « Quoi » concernant les webhooks, je crois qu’il fait référence aux notifications uniques par rapport aux notifications groupées. J’ai un forum de taille moyenne et je préférerais les notifications groupées.
Je n’ai pas besoin que les moteurs de recherche soient notifiés lorsqu’un sujet est créé ou mis à jour.
Je n’aime pas ajouter d’événements de priorité inférieure dans des processus critiques comme la création de sujets et de messages. L’ajout d’événements supplémentaires augmente le temps d’attente pour les utilisateurs. Une méthode groupée ne nécessite qu’une seule requête SQL et un envoi HTTP. Elle peut être traitée comme un événement en arrière-plan en dehors de l’interaction utilisateur.
Le plugin n’aurait besoin d’être développé que pour un seul point de terminaison. L’accord IndexNow exige que les moteurs de recherche partagent les soumissions entre eux. Par exemple, vous soumettez à Bing, puis Bing soumet aux autres moteurs de recherche conformes à IndexNow.
Nous avons besoin de 30 membres pour financer collectivement le développement du plugin à raison de 100 $ chacun.