مرحباً! في NLnet Labs، قمنا بإعداد Discourse لمنتجاتنا (community.nlnetlabs.nl). سأل أحد المستخدمين عن كيفية الحصول على موجز RSS لموضوع معين (على سبيل المثال، Cascade - NLnet Labs Community)، حيث لم يتمكن قارئ RSS الخاص به من العثور عليه.
حاولت استخدام صفحة الموضوع المحددة هذه مع قارئ موجز RSS المفضل لدي، ووجد خلاصتين: “أحدث المشاركات في مجتمع NLnet Labs” (/posts.rss) و “أحدث المواضيع في مجتمع NLnet Labs” (/latest.rss). أنا أعلم أن /c/cascade/10.rss هو موجز RSS صالح، لكن قارئي لم يتمكن من العثور عليه تلقائيًا. هذا محبط بعض الشيء، حيث سنحتاج إلى البدء في إبلاغ هذه العناوين بنفسنا.
لقد بحثت في الاكتشاف التلقائي لموجز RSS لموقعي الشخصي، لذا لدي بعض الخبرة في هذا الشأن. تحققت من head صفحة الويب؛ ولاحظت الروابط التالية:
<link rel="alternate" type="application/rss+xml" title="Latest posts" href="https://community.nlnetlabs.nl/posts.rss">
<link rel="alternate" type="application/rss+xml" title="Latest topics" href="https://community.nlnetlabs.nl/latest.rss">
<link rel="alternate nofollow" type="application/rss+xml" title="RSS feed of topics in the 'Cascade' category" href="https://community.nlnetlabs.nl/c/cascade/10.rss">
إذًا، فإن head يتضمن رابطًا ثالثًا لموجز RSS الخاص بالموضوع؛ ولكن يبدو أن بعض قراء موجز RSS لا يحبون السمة rel=”nofollow”.
يشير إلى أن المؤلف أو الناشر الأصلي للمستند الحالي لا يؤيد المستند المشار إليه.
ولكن أيضًا:
فيما يتعلق بـ form و a و area، تخبر الكلمة الرئيسية nofollow زواحف محركات البحث بتجاهل علاقة الارتباط. قد تشير علاقة nofollow إلى أن مالك المستند الحالي لا يؤيد المستند المشار إليه. غالبًا ما يتم تضمينها من قبل مُحسِّني محركات البحث الذين يتظاهرون بأن مزارع الروابط الخاصة بهم ليست صفحات بريد عشوائي.
لم أتمكن من العثور على أي مناقشة حول هذا الموضوع في Discourse Meta، على الرغم من دمج طلب السحب هذا في عام 2022. من الواضح أن هناك سوء فهم في الاتفاقيات المتعلقة بروابط <link> لموجزات RSS، بين بعض قراء موجز RSS و Discourse. لذا أسأل:
هل لا تزال rel=”nofollow” تخدم غرضها الأصلي لتحسين تحديد أولويات زواحف الموقع، أم تم استبدالها بتقنيات أخرى؟
هل هذا السلوك (أي تجاهل الروابط rel=”nofollow”) في الاكتشاف التلقائي لقارئ موجز RSS شائع؟ هل يمكن للآخرين تكراره؟ أنا لست على دراية بمعيار موثوق به بشأن الاكتشاف التلقائي لموجز RSS.
هل هناك استعداد لدعم حالة الاستخدام هذه، حتى يتمكن قراء موجز RSS من اكتشاف المشاركات الصحيحة تلقائيًا؟ وجود روابط <link> الخاصة بالموضوع هذه، حتى لو لم يستخدمها قارئي، يجعلني أعتقد ذلك؛ ربما تم التغاضي عن فقدان الوظيفة عند إضافة rel=”nofollow”.
نعم - هذه بالفعل نتيجة لكيفية تعامل Discourse حاليًا مع خلاصات RSS الخاصة بالمواضيع، وليست خطأ في قارئ الخلاصات الخاص بك. السبب الجذري هو أن Discourse يضيف rel="nofollow" إلى العنصر <link> الخاص بخلاصات RSS للمواضيع/الفئات. تتجاهل العديد من قارئات الخلاصات الروابط التي تحتوي على nofollow، مما يمنع الاكتشاف التلقائي، على الرغم من أن الخلاصات نفسها صالحة وتعمل عند الوصول إليها مباشرة.
الحل العملي هو استخدام مكوّن سمة (Theme Component) لإضافة روابط خلاصات RSS خاصة بالمواضيع بدون nofollow. إليك مثال بسيط:
اتضح أن هناك بالفعل معيارًا للاكتشاف التلقائي لخلاصات RSS: \u003chttps://www.rssboard.org/rss-autodiscovery#element-link-rel\u003e. ينص صراحةً على عدم السماح بأي شيء في السمة rel باستثناء alternate. لذا فإن HTML الذي يولده Discourse يخرق المعيار. هذا لا يعني أنه يجب تغييره بالتأكيد، ولكنه أمر مهم للملاحظة. ربما نجح إضافة rel=”nofollow” مع زواحف تلك المواقع لأنها كانت متوافقة مع معيار الاكتشاف التلقائي، مما يجعلها غير قابلة للتمييز عن قارئات خلاصات RSS الخاصة بالمستخدمين، وكسر التغيير كلاهما.
الطريقة الصحيحة التالية لاستخدام rel=”nofollow هي استخدام ترويسة HTTP Link: <...> ; rel="canonical" على جميع عناوين URL لخلاصة RSS.
سيؤدي هذا إلى زحف جوجل إلى جميع عناوين URL لخلاصة RSS مرة واحدة ثم إسقاطها في النهاية.
على سبيل المثال، بالنسبة للاستدعاءات إلى عنوان URL https://meta.discourse.org/t/rss-feeder-auto-discovery-can-miss-topic-specific-feeds/392890.rss
أضف ترويسة HTTP هذه: Link: <https://meta.discourse.org/t/rss-feeder-auto-discovery-can-miss-topic-specific-feeds/392890> ; rel="canonical"
لتوضيح الأمر: هل تعتقد أن هناك سلوكًا بديلاً مناسبًا يمكن لـ Discourse التحول إليه، والذي سيسمح له بالامتثال للمواصفات؟ سيكون ذلك رائعًا. سيسعد مستخدمو RSS
تعديل: شكرًا لك أيضًا على تقديم تقرير خطأ في Feeder وذكر تحديث المواصفات. من الجيد إجراء مناقشة واضحة ومشاركة حيث يمكن أخذ المشكلات الطفيفة كهذه على محمل الجد.