بعد مراجعة إمكانية IndexNow، أتفق على أن هذه يجب أن تكون إحدى الميزات/الإضافات الأساسية. أفهم أيضًا أن موارد المطور محدودة.
إليك أفكاري حول المكون الإضافي المطلوب لمساعدة الفريق الأساسي. لا تتردد في إضافة تعليقات إضافية.
الافتراضات:
- سيستخدم المكون الإضافي IndexNow الإشعارات المجمعة في نموذج وقت مجدول - انظر اعتبارات التصميم #1
- سيتم تعيين الإشعارات المجمعة على فترات زمنية
- ستستخدم الإشعارات المواضيع العامة فقط
- ستكون الإشعارات فقط للمواضيع الجديدة/المعدلة/المحذوفة عند تمكين المكون الإضافي.
- لن يقوم المكون الإضافي بإخطار التغييرات/الأحداث التاريخية بأثر رجعي.
تعليمات للمستخدمين:
- قم بالتسجيل في محرك البحث IndexNow الذي تختاره.
- احصل على مفتاح API الخاص بك
- احصل على عنوان URL لنقطة نهاية محرك البحث
- تثبيت المكون الإضافي
- إعداد المسؤول
حالة الاستخدام - إعدادات المسؤول
- السماح للمستخدم بتشغيل/إيقاف قدرات الإرسال التلقائي
- السماح للمستخدم بإدخال نقطة نهاية محرك بحث IndexNow. انظر اعتبارات التصميم #3.
- حقل الإدخال هو معلمة نصية
- يجب أن يكون حقل الإدخال عنوان URL صالحًا
- الافتراضي إلى عنوان URL لـ Bing على
https://www.bing.com/indexnow
- السماح للمستخدم بإدخال وتخزين مفتاح API
- حقل سلسلة إدخال لتخزين مفتاح API
- حقل الإدخال أبجدي رقمي
- القيمة الافتراضية ستكون “”
- السماح للمستخدم بتحديد معلمات الوقت المجدول للإشعارات المجمعة
- سيتم تعيين المعلمة الزمنية حسب فترات الساعات
- سلسلة إدخال لتخزين قيمة الساعة
- المدخلات الصالحة ستكون أعدادًا صحيحة
- المدخلات الصالحة يمكن أن تتراوح من 1 إلى 24
- القيمة الافتراضية ستكون 12
حالة الاستخدام - ملف مفتاح النص
- سيقوم النظام بإنشاء ملف يسمى indexnowkey.txt
- يجب تخزين ملف المفتاح في المستوى الجذر.
- سيقوم النظام بملء الملف بمفتاح API
- سيكون الملف متاحًا لأي مستخدم/نظام خارجي عبر http/https
حالة الاستخدام - جدولة عملية الإشعارات المجمعة
- سيقوم النظام بجدولة المهام للمعالجة على أساس فترات زمنية بناءً على الإعداد المحدد في إعدادات المسؤول.
- تحدد قيمة الفترة الزمنية التأخير بين المهام بالساعات. على سبيل المثال، تشير قيمة إدخال 2 إلى أنه يجب تشغيل المهمة كل ساعتين. تشير قيمة 4 إلى أنه يجب تشغيل المهمة كل 4 ساعات. تشير قيمة 24 إلى أنه يجب تشغيل المهمة مرة واحدة يوميًا.
حالة الاستخدام - عملية الإشعارات المجمعة
- سيحدد النظام ما إذا كانت عملية الإخطار نشطة عبر إعداد الموقع المحدد في إعدادات المسؤول.
- سيحدد النظام ما إذا كان مفتاح API صالحًا في إعدادات الموقع - ليس “”.
- سيقوم النظام بإنشاء قائمة بالمواضيع بناءً على إعداد الفترة الزمنية المحدد. انظر اعتبارات التصميم #2 حول أطر زمنية الاستعلام. معلمات الموضوع للتضمين هي:
- يجب أن تكون المواضيع للعرض العام فقط
- مواضيع جديدة
- مواضيع بها منشورات جديدة
- مواضيع تم تعديل المنشورات فيها
- مواضيع محذوفة
- يجب أن تكون قائمة المواضيع مميزة - لا توجد تكرارات
- سيقوم النظام بإنشاء حزمة JSON باستخدام التنسيق التالي.
{
"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"
]
}
- سيتم إرسال حزمة JSON إلى ما يلي
- URL:
sitesettings.search_engine_indexnow_endpoint
- URL:
- سيتم إرسال حزمة JSON مع رؤوس HTTP التالية
- Content-Type: application/json; charset=utf-8
- Http/1.1
- Host: bing
- التحقق من استلام طلب HTTP
- http 200 - إرسال ناجح - إنهاء العملية
- Http 429 - محاولات إرسال كثيرة جدًا - إرسال إشعار إلى المسؤول لزيادة توقيت الفترة الزمنية
اعتبارات التصميم:
- الإشعارات المجمعة مقابل الإشعارات الفردية - ستكون الإشعارات الفردية مقبولة للمجالات الصغيرة، ولكن بالنسبة للمنتديات الكبيرة، قد يؤدي إضافة إشعار لكل منشور جديد/محدث إلى إنشاء العديد من عمليات الأحداث. من منظور أداء فهرسة محركات البحث، ستكون الإشعارات المجمعة على أساس كل ساعة مقبولة لـ 80٪ من المنتديات.
- توقيت استعلام الإشعارات المجمعة - يتحكم SideKiq في توقيتات الفترات الزمنية. إذا كان SideKiq في حالة معالجة ثقيلة، فقد تتأخر عملية الإشعارات المجمعة. قد تفوت عملية الإشعارات المجمعة المواضيع الجديدة/المحدثة إذا كان إطار زمني الاستعلام يساوي فترة الجدولة. هل يجب أن يمد معلم الوقت الاستعلام لتغطية العمليات المتأخرة؟ أم هل من الممكن أن يقوم المجدول بتمرير الطوابع الزمنية المبادر بها للتحكم في فترات زمنية الاستعلام؟ أم هل نحتاج إلى إنشاء جدول قاعدة بيانات/قيمة للمواضيع المرسلة مع طابع زمني؟
- هل يجب علينا بناء جدول داخلي مع كل محرك بحث وعنوان URL لنقطة نهاية IndexNow المحدد؟ يمكن للمستخدم اختيار الخيارات من قائمة منسدلة بدلاً من إدخال عنوان URL. هذا يزيل الأخطاء البشرية المحتملة.
ما هو المفقود؟ ماذا ستضيف؟