لاحظت سلوكًا غريبًا مع المواضيع القديمة التي نُشرت تلقائيًا من WordPress إلى Discourse (ليُستخدم كقسم تعليقات).
عادةً، عند نشر منشور بهذه الطريقة، يقوم Discourse بإضافة X-Robots-Tag: noindex بشكل صحيح إلى رأس HTTP، ويحدد عنوان URL canonical الذي يشير مرة أخرى إلى منشور المدونة على WordPress.
ومع ذلك، اكتشفت أن المواضيع الأقدم تفقد هذه العلامات. يختفي رأس noindex، ولم يعد وسم canonical موجودًا. إليك بعض الأمثلة على المواضيع التي يحدث فيها ذلك:
تذكّر أنني لا أملك وسيلة لمعرفة العدد الدقيق للمواضيع المتأثرة حتى الآن، لكن يبدو أن العدد كبير نسبيًا.
سيكون رائعًا إذا وُجد مربع اختيار في إعدادات التصنيف (أو الوسم؟) يؤدي تفعيله إلى إضافة noindex تلقائيًا لجميع المواضيع المنشورة تحت ذلك التصنيف. شيء مثل:
لديك إعداد الموقع “تعيين عنوان URL الأصلي للتضمين” مفعّل، وقد كان مفعّلًا دائمًا.
لديك مواضيع متعددة نُشرت من ووردبريس إلى ديسكورد عبر إضافة ووردبريس ديسكورد على مدى فترة زمنية.
حتى وقت قريب، كانت جميع مواضيع ديسكورد المنشورة كما هو موضح في النقطة 2 تحتوي على وسم link rel="canonical" مع تعيين السمة href إلى عنوان URL الخاص بووردبريس في رأس الصفحة (head).
في وقت ما مؤخرًا، تعتقد أن مجموعة فرعية من تلك المواضيع التي كانت تتوافق سابقًا مع النقطة 3 أصبحت تحتوي الآن على وسم link rel="canonical" مع تعيين السمة href إلى عنوان URL الخاص بديسكورد.
ثياغو، إذا كان لديك وصول إلى الخادم، هل يمكنك من فضلك الحصول على معرف (ID) للموضوع الذي لا يعمل فيه الرابط القياسي (canonical url)، ثم تنفيذ ما يلي في وحدة تحكم Rails ومشاركة النتيجة.
./launcher enter app
rails c
TopicEmbed.with_deleted.find_by(topic_id: أضف معرف الموضوع هنا)
تلك هي المشكلة. لكي تعمل ميزة عنوان URL الأساسي للدمجات، يجب أن يكون للموضوع سجل topic_embed. هل يمكنك التفكير في أي سبب قد يمنع هذه المواضيع من امتلاك سجلات دمج؟
بصراحة، لا أعرف ما الذي قد يكون تسبّب في عدم وجود سجلات topic_embed لتلك المواضيع.
ولكن عند النظر إلى الصورة الأوسع، أليس من المنطقي أكثر اتباع الإعداد الذي اقترحته سابقًا؟ إذا أضفنا خانة اختيار مباشرة في إعدادات التصنيف لتطبيق noindex على جميع المواضيع بداخله، فلن نضطر للاعتماد على ميزة التضمين أو القلق بشأن وجود تلك السجلات من الأساس.
في حين أن هذا قد يكون منطقيًا لموقعك، إلا أنه سيكون ميزة مختلفة عن طريقة عمل عناوين URL الأصلية للتضمين. يمكنك بناؤه، لكن سيتعين عليك ذلك كإضافة مخصصة.
تعمل عناوين URL الأصلية للتضمين كما هو متوقع، غير أنه يبدو أنه في مرحلة ما تم حذف سجلات التضمين، أو تم تنفيذ عملية أخرى على موقعك. لا يقوم Discourse بحذف سجلات تضمين المواضيع بشكل نهائي، لذا فلا بد أن يكون قد حدث شيء آخر هناك. ما لم تقم ببعض العمل المخصص، فستحتاج إلى إعادة نشر تلك المواضيع لإنشاء سجلات التضمين مرة أخرى.
في حين أن هذا السلوك يختلف عن تضمين المواضيع، فإن التحكم في الفهرسة على مستوى التصنيف يُعد مطلبًا أساسيًا لتحسين محركات البحث (SEO) لأي نظام إدارة محتوى حديث. هناك عدة مواضيع أخرى في قسم الميتا تتناول هذه النقطة، وجعلها ميزة أصلية سيحل عدة حالات استخدام دفعة واحدة.
قد أحاول بناء ملحق باستخدام الذكاء الاصطناعي لأن لغة روبي ليست بيئتي المفضلة، لكن هذه الميزة يجب أن تكون أصلية في الأساس.
بشأن السجلات المفقودة: لم نقم بتشغيل أي أوامر أو عمليات في قاعدة البيانات قد تسبب ذلك. كما أن إعادة النشر ليست خيارًا عمليًا. لدينا ما يقرب من 50,000 منشور، ولا نعرف حتى أيها يتأثر. إصلاح هذا الأمر سيتطلب سكريبتات معقدة عبر واجهة برمجة التطبيقات (API) للبحث عن المنشورات affected وحذفها وإعادة نشرها…