| الملخص | يرسل تلقائيًا عناوين URL الجديدة والمعدّلة للمواضيع العامة إلى بروتوكول IndexNow، مما يتيح لمحركات البحث المشاركة مثل Bing وYandex اكتشاف محتواك خلال دقائق بدلاً من الانتظار حتى زحف الزاحف (crawl). | |
| رابط المستودع | github.com/imlotso/discourse-indexnow | |
| دليل التثبيت | كيفية تثبيت الإضافات في Discourse |
يتوفر أيضًا مقال باللغة الصينية يحتوي على مزيد من الخلفية على منتدانا: sitetalk.net/t/topic/642.
الميزات
- يرسل تلقائيًا المواضيع العامة الجديدة، ويعيد الإرسال عند تعديل المنشور الأول للموضوع أو خصائصه الرئيسية.
- عند تمكين توطين المحتوى وباراميتر لغة الزاحف الخاص به، تُضمَّن عناوين URL للمواضيع الموضّعة تلقائيًا جنبًا إلى جنب مع العنوان الرئيسي — باستخدام باراميتر الاستعلام الحقيقي للغة في Discourse (ولا يتم ترميزه يدويًا أبدًا).
- يرسل العنوان الرئيسي وجميع التوحيات الموجودة معًا في طلب دفعة واحدة عبر
urlListالخاص بـ IndexNow، بدلاً من طلب واحد لكل عنوان URL. - التعبئة التاريخية: قم بتصفية المواضيع حسب الفئة ونطاق التاريخ، وعايِن النتائج المطابقة، ثم أرسلها دفعة واحدة — مع إعادة استخدام محرك الدفعات نفسه، الذي يقسم الإرسال تلقائيًا حسب حد البروتوكول البالغ 10,000 عنوان URL.
- الإرسال اليدوي: الصق عنوان URL واحدًا في كل سطر لإرسال روابط محددة عند الطلب؛ يتم تصفية العناوين الخارجية أو غير المؤهلة تلقائيًا.
- حدود إرسال بالساعة/اليوم، مع تراجع تلقائي عندما يعيد IndexNow رمز الحالة
429(يحترمRetry-Afterعند وجوده). - دعم تدوير المفاتيح — يبقى المفتاح السابق صالحًا لمدة 7 أيام كفترة انتقالية حتى لا تنكسر عمليات الإرسال الجارية.
- فحص مدمج لوصول ملف
/<key>.txtالخاص بك، ويُعرض مباشرة في لوحة الإدارة. - يعيد الإرسال (أو يستبعد) المواضيع تلقائيًا عند نقلها بين الفئات، أو عند تغيير إعدادات الظهور/الوسوم الخاصة بفئة معينة.
- تتتبع سجلات الإرسال معرّف الدفعة، واللغة، واتجاه النجاح/الفشل على مدى 7 أيام، وتفصيل لأسباب الفشل (حد المعدل / خطأ المفتاح / عدم تطابق النطاق / أخرى).
- يتم تنفيذ جميع عمليات الإرسال بشكل غير متزامن عبر Sidekiq وتخضع لنفس عوامل التصفية الخاصة بالخصوصية مثل عمليات الإرسال التلقائية — لا شيء يتجاوز قواعد الاستبعاد (الرسائل الخاصة، الفئات المقيدة، المواضيع غير المدرجة/المحذوفة، المواقع التي تتطلب تسجيل الدخول).
- واجهة الإدارة متاحة باللغة الإنجليزية والصينية المبسطة.
الإعدادات
- ثبّت الإضافة (انظر دليل التثبيت أعلاه) وأعد بناء حاويتك.
- انتقل إلى الإدارة > الإضافات > discourse-indexnow.
- في تبويب الإعدادات، انقر على توليد مفتاح (أو الصق مفتاح سداسي عشري مكوّن من 32 حرفًا سبق تسجيله في مكان آخر).
- علّم على مربع تفعيل إرسال IndexNow.
- تأكد من أن المفتاح يمكن الوصول إليه علنًا على العنوان:
يجب أن يعيد HTTP 200 مع المفتاح كنص صريح. تعمل لوحة الإدارة أيضًا على هذا الفحص تلقائيًا وتعرض حالة مخزنة مؤقتًا خضراء/حمراء بجانب “key.txt accessible”.https://your-forum.example/<key>.txt - (اختياري) في تبويب السجلات، استخدم لوحة التعبئة لإرسال المواضيع التاريخية — اختر فئة ونطاق تاريخ، وانقر على معاينة لمعرفة عدد المواضيع المطابقة، ثم إرسال.
- (اختياري) استخدم حقل الإرسال اليدوي للصق عناوين URL لمرة واحدة، عنوان واحد في كل سطر، للإرسال الفوري خارج流程 الإلقائي العادي.
يُظهر تبويب السجلات أيضًا مخطط اتجاه النجاح/الفشل على مدى 7 أيام وتفصيل لأسباب الفشل، مما يتيح لك معرفة النظرة الأولى ما إذا كانت عمليات الإرسال مقيدة بالمعدل، أو مرفوضة بسبب عدم تطابق المفتاح، أو تفشل لسبب آخر.
الإعدادات
| الاسم | الوصف |
|---|---|
indexnow_enabled |
مفتاح التحكم الرئيسي للإضافة. لا يمكن تفعيله بينما تكون login_required مفعّلة، وتتم تعطيلها تلقائيًا إذا تم تشغيل login_required لاحقًا. |
indexnow_api_key |
المفتاح السداسي العشري الحالي المكوّن من 32 حرفًا المستخدم لمصادقة عمليات الإرسال. |
indexnow_submit_on_create |
يرسل تلقائيًا عند إنشاء موضوع عام جديد. |
indexnow_submit_on_edit |
يعيد الإرسال تلقائيًا عند تغيير المنشور الأول أو سمات الموضوع. |
indexnow_excluded_category_ids |
فئات إضافية يتم استبعادها دائمًا، حتى لو كانت عامة. |
indexnow_hourly_limit |
الحد الأقصى لعدد عناوين URL المُرسلة في الساعة. |
indexnow_daily_limit |
الحد الأقصى لعدد عناوين URL المُرسلة في اليوم. |
قيود معروفة
- لا يحتوي IndexNow على إشعار بالحذف — حذف المواضيع يُسجّل فقط لأغراض التدقيق، ولا يُرسل.
- لا تشارك Google في بروتوكول IndexNow.
- تُرسل عناوين URL الموضّعة فقط عندما يكون باراميتر لغة الزاحف مفعّلًا و يوجد توطين فعلي لذلك الموضوع.
هذه إضافة مستقلة وغير رسمية — لا يتم صيانتها من قبل فريق Discourse. إنها تعمل في بيئة الإنتاج على منتدانا الخاص، ولديها تغطية اختبارات RSpec مع CI عند كل دفع/طلب دمج، وسأقدّر أي تقارير أخطاء أو طلبات ميزات عبر مشاكل GitHub أو الردود هنا.