🏆 إضافة Discourse Rich JSON-LD Microdata

بيانات مصغرة JSON-LD غنية لـ Discourse

:sparkles: ملخص يعزز الوسوم الوصفية القياسية في Discourse بمجموعة شاملة ومنسقة من وسوم Open Graph، وبطاقات Twitter، وعلامات Schema.org JSON-LD، مما يؤدي إلى أداء SEO متفوق، وتجارب مشاركة على وسائل التواصل الاجتماعي أكثر ثراءً، وتحسين قابلية الاكتشاف بواسطة الذكاء الاصطناعي ونماذج اللغات الكبيرة (LLM)
:hammer_and_wrench: رابط المستودع GitHub - kaktaknet/discourse-rich-json-ld-microdata: 🏆 Discourse Rich JSON-LD Microdata Plugin. Comprehensive, coordinated Open Graph and Schema.org JSON-LD microdata for 200% SEO and LLM coverage · GitHub
:open_book: دليل التثبيت كيفية تثبيت الإضافات في Discourse

ما الذي ستحصل عليه

غيّر طريقة ظهور منتداك في نتائج البحث ووسائل التواصل الاجتماعي والمساعدين المدعومين بالذكاء الاصطناعي. يولد هذا الملحق بيانات هيكلية احترافية تفهمها جوجل، وياندكس، ومنصات التواصل الاجتماعي، ونماذج اللغات الكبيرة (LLM) بشكل مثالي.

للمزيد من التوثيق التفصيلي، راجع README.md

للتفاصيل التقنية والتطوير، راجع CONTRIBUTING.md

لمثال الاستخدام واستكشاف الأخطاء وإصلاحها، راجع USAGE.md

أمثلة على نتائج البحث الغنية

قبل: مقتطف نصي عادي في جوجل
بعد: مقتطف غني يتضمن التقييمات، وعدد الإجابات، والمؤلف، وتاريخ النشر

قبل: معاينة رابط عامة على وسائل التواصل الاجتماعي
بعد: بطاقة جذابة تحتوي على صورة، ووصف، وهوية بصرية

تعرف المزيد حول النتائج الغنية من مركز بحث جوجل

الميزات الرئيسية

1. تغطية شاملة لـ Schema.org

  • مخطط QAPage للمواضيع مع تسلسل هرمي كامل للأسئلة والأجوبة
  • دعم تقييمات الإجابات وحالة الحل
  • CollectionPage للفئات مع الفئات الفرعية
  • ProfilePage لملفات المستخدمين مع مؤشرات الخبرة
  • BreadcrumbList لمسارات التنقل
  • مخطط عالمي WebSite مع إجراء بحث

2. وسوم منسقة لوسائل التواصل الاجتماعي

  • Open Graph (فيسبوك، لينكدإن، ديسكورد)
  • بطاقات تويتر (summary_large_image)
  • يتم توليد الكل من مصدر واحد للحقيقة - لا توجد تعارضات
  • تنظيف تلقائي للوسوم الافتراضية في Discourse

3. محسّن للذكاء الاصطناعي ونماذج اللغات الكبيرة (LLM)

  • علاقات كيان كاملة باستخدام مراجع @id في Schema.org
  • فهم كامل للسياق (المواضيع → الفئات → الإجابات → التعليقات)
  • بيانات وصفية لخبرة المؤلف
  • يحصل ChatGPT و Claude ومساعدي الذكاء الاصطناعي الآخرين على سياق مثالي

4. دعم كامل للتحديد الدولي :globe_showing_europe_africa:

  • تتضمن ترجمات 100% باللغتين الإنجليزية والروسية
  • كشف تلقائي للغة (المستخدم → الموقع → المتصفح → البديل)
  • جميع وصف Schema.org محلية
  • سهولة إضافة لغات أخرى

5. أداء ذكي

  • تخزين مؤقت باستخدام Redis مع صلاحية ساعة واحدة (قابل للتكوين)
  • إبطال تلقائي للذاكرة المؤقتة عند تغيير المحتوى
  • < 5 مللي ثانية للصفحات المخزنة مؤقتًا
  • ~50 مللي ثانية للتوليد الجديد

6. صيانة صفرية

  • حقن تلقائي لكل من عروض المتصفح وعروض الزحف
  • يعمل للمواضيع والفئات وملفات المستخدمين
  • معالجة أخطاء سلسة - لا يكسر موقعك أبدًا
  • تسجيل شامل لتصحيح الأخطاء

فوائد لمنتداك

:bullseye: ترتيبات بحث أفضل

  • تزيد المقتطفات الغنية في جوجل من معدلات النقر بنسبة 30-50%
  • لوحات Knowledge Graph للمستخدمين الخبراء
  • الظهور في أقسام “يسأل الناس أيضًا”
  • تحسن شريط التنقل (Breadcrumbs) في نتائج البحث التنقل

:mobile_phone: مشاركة احترافية على وسائل التواصل الاجتماعي

  • بطاقات جذابة عند المشاركة على فيسبوك، تويتر، لينكدإن
  • هوية بصرية صحيحة مع الشعارات والأوصاف
  • زيادة التفاعل ومعدلات النقر
  • يعمل عبر أكثر من 40 منصة اجتماعية

:robot: جاهز لمساعدي الذكاء الاصطناعي

  • يظهر محتواك بدقة في استجابات ChatGPT و Claude
  • إسناد صحيح مع روابط تعود إلى منتداك
  • السياق الكامل يمنع هلاوس الذكاء الاصطناعي
  • مستقبلي لتحسين محركات البحث التوليدي (GEO)

:globe_showing_europe_africa: جمهور دولي

  • كشف تلقائي للغة
  • أوصاف محلية لملاءمة أفضل
  • ترميز URL يتعامل مع الأحرف السيريلية والخاصة
  • توسيع سهل إلى لغات أخرى

التثبيت

الخطوة 1: التثبيت

اتبع Install plugins on a self-hosted site باستخدام رابط المستودع أعلاه

الخطوة 2: التفعيل في لوحة الإدارة

انتقل إلى Admin → Settings → Plugins → Rich Microdata

اجعل rich_microdata_enabled على true (مفعل افتراضيًا)

الخطوة 3: التكوين (اختياري)

تعمل جميع الإعدادات بشكل ممتاز من الصندوق، ولكن يمكنك تخصيص:

  • مدة التخزين المؤقت (الافتراضي: ساعة واحدة)
  • الحد الأقصى للإجابات للتضمين (الافتراضي: 10)
  • حساب تويتر @لموقعك
  • رابط صورة Open Graph الافتراضي
  • تمكين/تعطيل مخططات محددة

الخطوة 4: التحقق

اختبر علاماتك الوصفية:

التكوين

الإعداد الافتراضي الوصف
rich_microdata_enabled true مفتاح رئيسي للملحق
rich_microdata_cache_ttl 3600 مدة التخزين المؤقت بالثواني
rich_microdata_max_answers 10 الحد الأقصى للإجابات في مخطط QAPage
rich_microdata_include_user_stats true تضمين إحصائيات المستخدمين
rich_microdata_enable_breadcrumbs true إضافة مخطط BreadcrumbList
rich_microdata_enable_website_schema true تضمين مخطط WebSite
rich_microdata_twitter_site "" اسم المستخدم @ لتويتر الخاص بك
rich_microdata_og_image_default "" رابط صورة OG البديل
rich_microdata_debug_mode false تمكين سجلات التصحيح

التفاصيل التقنية

البنية:

  • نمط ثلاثي الطبقات: DataExtractor → Builders → Coordinator
  • مصدر واحد للحقيقة يمنع تعارضات البيانات
  • عرض منفصل لوسوم <head> ومحتوى <body>
  • يعمل مع تخطيطات application.html.erb و crawler.html.erb على حد سواء

الامتثال للمعايير:

  • مواصفات Schema.org JSON-LD
  • بروتوكول Open Graph
  • علامات بطاقات تويتر
  • RFC 3986 (ترميز URL للأحرف الدولية)

الأمان:

  • فحوصات إذن Guardian
  • استبعاد تلقائي للمحتوى الخاص
  • تصفية أمان على مستوى SQL
  • بدائل آمنة للبيانات المفقودة

التوافق:

  • Discourse 2.7.0+
  • Ruby 2.7+
  • تم اختباره على Discourse 3.6.0.beta3

أمثلة من الواقع

علامات صفحة الموضوع:

{
  "@context": "https://schema.org",
  "@type": "QAPage",
  "name": "كيفية تحسين استعلامات قاعدة البيانات؟",
  "mainEntity": {
    "@type": "Question",
    "name": "كيفية تحسين استعلامات قاعدة البيانات؟",
    "text": "أواجه استعلامات بطيئة...",
    "answerCount": 5,
    "upvoteCount": 12,
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "يجب عليك إضافة فهارس على...",
      "upvoteCount": 8,
      "author": {
        "@type": "Person",
        "name": "جون دو",
        "url": "https://forum.example.com/u/john"
      }
    }
  }
}

علامات صفحة الفئة:

{
  "@context": "https://schema.org",
  "@type": "CollectionPage",
  "name": "تحسين قاعدة البيانات",
  "description": "نصائح وحيل لاستعلامات أسرع",
  "numberOfItems": 245,
  "hasPart": [...]
}

راجع USAGE.md للحصول على أمثلة كاملة.

حالات الاستخدام

المنتديات التقنية:
يجد المطورون حلولك من خلال مقتطفات جوجل المميزة ومساعدي البرمجة بالذكاء الاصطناعي، مع الحفاظ على سياق الكود بشكل صحيح.

مجتمعات الدعم:
تعرض محركات البحث إجاباتك مع التقييمات وحالة الحل، مما يؤدي حركة مرور مؤهلة إلى أفضل محتواك.

منتديات النقاش:
تبدو المشاركة على وسائل التواصل الاجتماعي احترافية مع بطاقات مخصصة، مما يزيد التفاعل ويقلل معدلات الارتداد.

المجتمعات الدولية:
يضمن الكشف التلقائي عن اللغة رؤية المستخدمين للمحتوى بلغتهم المفضلة، مما يحسن إمكانية الوصول.

الصيانة

عملية بدون صيانة:

  • تحديث تلقائي للذاكرة المؤقتة عند تحديث المحتوى
  • إصلاح ذاتي عند الأخطاء (لا يكسر موقعك أبدًا)
  • تسجيل شامل للمراقبة
  • وضع تصحيح اختياري لاستكشاف الأخطاء وإصلاحها

إدارة الذاكرة المؤقتة (اختياري):

# وحدة تحكم Rails
MetaGeneratorService.clear_all_cache
MetaGeneratorService.cache_stats

استكشاف الأخطاء وإصلاحها

الوسوم الوصفية لا تظهر:

  1. تحقق من تفعيل الملحق في Admin → Plugins
  2. تحقق من السجلات: ./launcher logs app | grep RichMicrodata
  3. امسح الذاكرة المؤقتة: MetaGeneratorService.clear_all_cache

النتائج الغنية لا تظهر في جوجل:

  • يستغرق جوجل من 2 إلى 4 أسابيع لإعادة الزحف والتحديث
  • اختبر باستخدام اختبار النتائج الغنية
  • تحقق من أخطاء التحقق في Search Console

راجع USAGE.md للحصول على استكشاف أخطاء مفصل.

مقاييس الأداء

  • معدل الضربة في الذاكرة المؤقتة: 95%+ للمنتديات النموذجية
  • وقت الاستجابة: < 5 مللي ثانية مخزنة، ~50 مللي ثانية جديدة
  • العبء على الذاكرة: ضئيل (يستخدم Redis)
  • عبء قاعدة البيانات: ضئيل (مخزنة لمدة ساعة واحدة)

خارطة الطريق

الإصدار الحالي: 2.0.0

:white_check_mark: Open Graph وبطاقات Twitter مكتملة
:white_check_mark: دعم كامل لـ Schema.org JSON-LD
:white_check_mark: توطين EN/RU
:white_check_mark: ترميز URL للأحرف الدولية

مخطط:

  • حزم لغات إضافية (ES, DE, FR)
  • دعم مخطط الفيديو
  • مخطط الفعاليات للإعلانات
  • مخطط المنتج لفئات السوق

الدعم

الرخصة

رخصة MIT - برمجيات مجانية ومفتوحة المصدر

الائتانات


اختياري: عرض فوري في تيليجرام

يتضمن المستودع قواعد قوالب مثال في TELEGRAM_IV_RULES.txt لإنشاء قوالب عرض فوري جميلة في تيليجرام. استخدم هذه القواعد في instantview.telegram.org لتوفير تجربة قراءة سريعة التحميل وخالية من المشتتات للمستخدمين الذين يشاركون محتوى منتداك في تيليجرام.


غيّر ظهور منتداك اليوم. ثبّت في أقل من 5 دقائق، ولاحظ النتائج في جوجل خلال 2-4 أسابيع. :rocket:

12 إعجابًا

مرحبًا، على الرغم من أن حزمة اللغة الفرنسية غير جاهزة، هل تنصحني باستخدام هذا الملحق على موقع Discourse فرنسي؟ شكرًا.

إعجاب واحد (1)

مرحبًا. هذا الملحق لن يؤثر بأي شكل على تجربة المستخدم. يتم أخذ إعداد اللغة الأساسية من إعدادات Discourse. يمكنك أيضًا تحديد لغات بديلة في قسم الإدارة إذا كان المنتدى متعدد اللغات. نعم، لا تتردد في استخدامه، فلن يسبب أي مشاكل. الترجمة تُستخدم فقط لإدارة الملحق في قسم الإدارة. إذا كنت تفهم الإنجليزية أو الروسية، فستتمكن من إدارته.

إعجابَين (2)

مرحباً بالجميع، لقد قمت بتثبيت هذه الإضافة دون أي صعوبة. الإعداد بسيط جداً، لقد عملت على الفور. أجريت اختباراً لمعرفة ما خرج من البيانات الوصفية، وكل شيء يبدو جيداً بالنسبة لي.

إعجاب واحد (1)

رائع، مثير للاهتمام حقًا!
يقدم المؤلف أفضل الممارسات على الرابط التالي: https://github.com/kaktaknet/discourse-rich-json-ld-microdata/blob/main/USAGE.md

أفضل الممارسات

  1. استخدم دائمًا صورًا عالية الجودة (1200 × 630 بكسل) للمواضيع
  2. اكتب عناوين مواضيع مفصلة (يساعد في حقل الاسم في Schema.org)
  3. قم بتمكين إضافة “Solved” للكشف الأفضل عن الإجابات المقبولة
  4. استخدم أوصاف فئات وصفية
  5. شجع المستخدمين على ملء سيرهم الذاتية (يحسن مخطط الشخص)
  6. راقب معدل إصابة ذاكرة التخزين المؤقت (استهدف أكثر من 95٪)
  7. قم بتسخين ذاكرة التخزين المؤقت بعد عمليات النشر
  8. اختبر الترميز باستخدام المدققات قبل الإصدارات الرئيسية

ملف القراءة (Readme)

https://github.com/kaktaknet/discourse-rich-json-ld-microdata/blob/main/README.md

تم إنشاؤه بحب :heart: لمجتمع Discourse

إنه صحيح. أجمل توثيق Markdown رأيته على الإطلاق :trophy: !

إعجابَين (2)

شكراً. على الرغم من أن هذه الإضافة لا يكون لها أي تأثير مرئي على المنتدى للمستخدمين العاديين ولا تخدم إلا لجذب المزيد من الزوار من محركات البحث ومساعدة المساعدين الصوتيين، إلا أن تطبيقها لم يكن مهمة سهلة بالضبط. لكنني تمكنت من إنجازها.

إعجابَين (2)

إضافة رائعة! شكرًا لك على عملك. أحاول تثبيتها، ولكن لا يمكنني الحصول على “data-rich-microdata”

لقد قمت بالفعل باختبار “MetaGeneratorService.clear_all_cache”:
discourse(prod)⟩ MetaGeneratorService.clear_all_cache => []
و “tail -f log/production.log | grep RichMicrodata” يعطيني:

[RichMicrodata] تم الإنشاء للموضوع 14092، زاحف: صحيح، حجم الرأس: 5855
[RichMicrodata] إرجاع HTML (5855 حرفًا)، زاحف: صحيح
[RichMicrodata] بدأ مُنشئ HTML (server:before-head-close-crawler) لوحدة التحكم في المواضيع TopicsController
[RichMicrodata] إنشاء للموضوع 22861
[RichMicrodata::Coordinator] خطأ في TwitterCardBuilder: متغير محلي غير مُعرَّف أو طريقة `twitter_image’ لكائن من النوع DiscourseRichMicrodata::Builders::TwitterCardBuilder
[RichMicrodata] تم الإنشاء للموضوع 22861، زاحف: صحيح، حجم الرأس: 6815
[RichMicrodata] إرجاع HTML (6815 حرفًا)، زاحف: صحيح
[RichMicrodata] بدأ مُنشئ HTML (server:before-head-close-crawler) لوحدة التحكم في المواضيع TopicsController

إعجاب واحد (1)

الرجاء محاولة توفير رابط لمنشور المنتدى https://search.google.com/test/rich-results

إعجاب واحد (1)

جميل. ولكن هل هناك طريقة لإصلاح كل هذه الأخطاء المتعلقة بصورة تويتر؟

Screenshot_20251122_124238_Brave

سأتحقق من ذلك. على ما يبدو، المكون الإضافي للصور مطلوب. لقد فاتني ذلك. سأصلح الأمر.

إعجاب واحد (1)

تم التحديث، تحقق منه

إعجاب واحد (1)

مرحباً! أردت فقط مشاركة حالة غريبة: في منتدانا، نحن لا نفرض حقًا تعيين “اسم” للمستخدم، لذلك عندما تحاول جوجل الفهرسة، فإنها تشتكي مما يلي:

حقل مفقود “name” (في “author”)

العناصر ذات هذه المشكلة غير صالحة. العناصر غير الصالحة غير مؤهلة للنتائج الغنية في بحث جوجل

لست متأكدًا مما إذا كانت هناك طريقة لنجعل اسم المستخدم هو الاسم؟

لا توجد مثل هذه المشكلة في إعدادات المنتدى والسمة القياسية. إذا كانت لديك إعدادات منتدى أو سمة مخصصة، فيرجى التحقق منها بنفسك.

إعجاب واحد (1)

إذا كنت لا تمانع سؤالي، ما هو “المنتدى القياسي”؟ لا ينبغي أن تكون إعدادات السمة مشكلة، لقد اختبرت على “horizon” أيضًا والمشكلة هي أن “الاسم” الذي تم إنشاؤه لا يتم ملؤه (لأننا لا نطلب ملئه)

تم ضبط هذا على وضع “المناقشة” على الرغم من ذلك، سأجرب أوضاعًا أخرى لأرى

تعديل:

بعض المواضيع تحتوي على “الاسم” مملوءًا، بينما البعض الآخر لا يحتوي عليه. حتى بالنسبة للمستخدم نفسه الذي لم يقم بتعيين “اسم” محدد


أيضًا، ربما لا علاقة له بالموضوع، أرى بعض الأخطاء حول البيانات المصغرة (microdata) والمنطقة المحلية ZN

مرحباً، لقد قمت بتثبيت هذه الإضافة (plugin). أريد تعطيل التظليل الأحمر في الصورة المرفقة (Screenshot by Lightshot). كيف يمكنني تهيئة الإضافة للقيام بذلك؟ شكراً جزيلاً!