بيانات مصغرة JSON-LD غنية لـ Discourse
| ملخص | يعزز الوسوم الوصفية القياسية في Discourse بمجموعة شاملة ومنسقة من وسوم Open Graph، وبطاقات Twitter، وعلامات Schema.org JSON-LD، مما يؤدي إلى أداء SEO متفوق، وتجارب مشاركة على وسائل التواصل الاجتماعي أكثر ثراءً، وتحسين قابلية الاكتشاف بواسطة الذكاء الاصطناعي ونماذج اللغات الكبيرة (LLM) | |
| رابط المستودع | 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 | |
| دليل التثبيت | كيفية تثبيت الإضافات في 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. دعم كامل للتحديد الدولي ![]()
- تتضمن ترجمات 100% باللغتين الإنجليزية والروسية
- كشف تلقائي للغة (المستخدم → الموقع → المتصفح → البديل)
- جميع وصف Schema.org محلية
- سهولة إضافة لغات أخرى
5. أداء ذكي
- تخزين مؤقت باستخدام Redis مع صلاحية ساعة واحدة (قابل للتكوين)
- إبطال تلقائي للذاكرة المؤقتة عند تغيير المحتوى
- < 5 مللي ثانية للصفحات المخزنة مؤقتًا
- ~50 مللي ثانية للتوليد الجديد
6. صيانة صفرية
- حقن تلقائي لكل من عروض المتصفح وعروض الزحف
- يعمل للمواضيع والفئات وملفات المستخدمين
- معالجة أخطاء سلسة - لا يكسر موقعك أبدًا
- تسجيل شامل لتصحيح الأخطاء
فوائد لمنتداك
ترتيبات بحث أفضل
- تزيد المقتطفات الغنية في جوجل من معدلات النقر بنسبة 30-50%
- لوحات Knowledge Graph للمستخدمين الخبراء
- الظهور في أقسام “يسأل الناس أيضًا”
- تحسن شريط التنقل (Breadcrumbs) في نتائج البحث التنقل
مشاركة احترافية على وسائل التواصل الاجتماعي
- بطاقات جذابة عند المشاركة على فيسبوك، تويتر، لينكدإن
- هوية بصرية صحيحة مع الشعارات والأوصاف
- زيادة التفاعل ومعدلات النقر
- يعمل عبر أكثر من 40 منصة اجتماعية
جاهز لمساعدي الذكاء الاصطناعي
- يظهر محتواك بدقة في استجابات ChatGPT و Claude
- إسناد صحيح مع روابط تعود إلى منتداك
- السياق الكامل يمنع هلاوس الذكاء الاصطناعي
- مستقبلي لتحسين محركات البحث التوليدي (GEO)
جمهور دولي
- كشف تلقائي للغة
- أوصاف محلية لملاءمة أفضل
- ترميز 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
استكشاف الأخطاء وإصلاحها
الوسوم الوصفية لا تظهر:
- تحقق من تفعيل الملحق في Admin → Plugins
- تحقق من السجلات:
./launcher logs app | grep RichMicrodata - امسح الذاكرة المؤقتة:
MetaGeneratorService.clear_all_cache
النتائج الغنية لا تظهر في جوجل:
- يستغرق جوجل من 2 إلى 4 أسابيع لإعادة الزحف والتحديث
- اختبر باستخدام اختبار النتائج الغنية
- تحقق من أخطاء التحقق في Search Console
راجع USAGE.md للحصول على استكشاف أخطاء مفصل.
مقاييس الأداء
- معدل الضربة في الذاكرة المؤقتة: 95%+ للمنتديات النموذجية
- وقت الاستجابة: < 5 مللي ثانية مخزنة، ~50 مللي ثانية جديدة
- العبء على الذاكرة: ضئيل (يستخدم Redis)
- عبء قاعدة البيانات: ضئيل (مخزنة لمدة ساعة واحدة)
خارطة الطريق
الإصدار الحالي: 2.0.0
Open Graph وبطاقات Twitter مكتملة
دعم كامل لـ Schema.org JSON-LD
توطين EN/RU
ترميز URL للأحرف الدولية
مخطط:
- حزم لغات إضافية (ES, DE, FR)
- دعم مخطط الفيديو
- مخطط الفعاليات للإعلانات
- مخطط المنتج لفئات السوق
الدعم
- المشاكل: مشاكل GitHub
- التوثيق: README.md
- المساهمة: CONTRIBUTING.md
الرخصة
رخصة MIT - برمجيات مجانية ومفتوحة المصدر
الائتانات
- المعايير: Schema.org, Open Graph Protocol, Twitter Cards
- المنصة: Discourse
- المجتمع: جميع المساهمين والمستخدمين
اختياري: عرض فوري في تيليجرام
يتضمن المستودع قواعد قوالب مثال في TELEGRAM_IV_RULES.txt لإنشاء قوالب عرض فوري جميلة في تيليجرام. استخدم هذه القواعد في instantview.telegram.org لتوفير تجربة قراءة سريعة التحميل وخالية من المشتتات للمستخدمين الذين يشاركون محتوى منتداك في تيليجرام.
غيّر ظهور منتداك اليوم. ثبّت في أقل من 5 دقائق، ولاحظ النتائج في جوجل خلال 2-4 أسابيع. ![]()



