وجد أحد عملائنا مشكلة متعلقة بـ SEO يمكنني إعادة إنتاجها هنا على Meta.
عندما يزور الزحف (crawler) موقع Discourse، يقوم بإدراج روابط الترقيم ?page=XX على النحو التالي:
<link rel="next" href="/t/slug/123?page=2">
و
<span itemprop='name'><b><a rel="next" itemprop="url" href="/t/slug/123?page=2">الصفحة التالية</a></b></span>
عند تحميل مثل هذه الصفحة في متصفح، يقوم Discourse بإجراء إعادة توجيه عبر JavaScript إلى عنوان URL من الشكل /t/slug/123/NN حيث NN هو رقم المنشور.
لذا، فإن https://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294?page=2 يعيد التوجيه إلى https://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294/23
وhttps://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294?page=3 يعيد التوجيه إلى https://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294/45
ومع ذلك، في بعض الأحيان تحتوي الصفحة على عنوان URL أساسي (canonical URL) لا يتطابق مع الصفحة الأصلية التي تم طلبها.
في المثال أعلاه، يعيد ?page=3 التوجيه إلى المنشور رقم 45، وتحتوي صفحة المنشور 45 على عنوان URL أساسي ?page=2
<link rel="canonical" href="https://meta.discourse.org/t/post-rate-limit-trigger-for-a-topic-thats-heating-up/98294?page=2" />
ونقتبس من تقرير العميل المتعلق بـ SEO:
هذا يخلق سلسلة من الوسوم الأساسية وإعادة التوجيه، وسيبدأ جوجل في عدم الثقة في الوسوم الأساسية المُطبَّقة.
لا أستطيع معرفة مصدر هذه المشكلة. في بعض الأحيان يحتوي عنوان URL الأساسي على رقم صفحة أعلى، وفي أحيان أخرى يشير إلى رقم صفحة أقل (كما في هذا المثال)، وفي أحيان أخرى يكون صحيحًا.
ظننت أن الأمر قد يكون مرتبطًا بالمنشورات المحذوفة أو الهمسات (whispers)، لكن موضوعًا يحتوي على العديد من المنشورات المحذوفة لا يظهر هذا السلوك بحد ذاته (مثل https://meta.discourse.org/t/topic-list-previews/101646?page=5 الذي ينتقل إلى المنشور رقم 471 (!) والذي يحتوي على عنوان URL أساسي صحيح ?page=5). أعتقد أن هذا قد يكون خطأً بحساب خارج النطاق (off-by-one error).