يرجى ترك عنوان URL هناك حتى لو تم حظره. يمكنك مناقشة ما إذا كان ذلك منطقيًا أم لا لحالات استخدام المنتدى الخاصة بك، ولكن حتى مع حظر الزحف، يمكن أن يساعد في إزالة الغموض.
هذا لا يزال مجرد طلب مهذب، وحتى جوجل لا تحترمه في كل مرة. على سبيل المثال، الروابط في Gmail تسمح لـ googlebot بالوصول إليها على الفور، والزيارات الكافية تؤدي إلى الفهرسة ونتائج البحث.
بالإضافة إلى ذلك… نحن/أنت لا نعرف كيف ستتغير المواقف في المستقبل. إذا تم إصلاحه الآن، فلا داعي للقلق بشأنه لاحقًا. بالتأكيد يتطلب وقت عمل، ولكنه يتطلب أيضًا استثمارًا ومناقشة بشأنه ![]()
الآن السمة datePublished لـ DiscussionForumPosting في الصفحة الأولى تختلف عن datePublished في الصفحة 2+!
الصفحة الأولى:
2015-07-05T22:02:58Zالصفحة 2+:
2015-07-05T22:02:57Z
لا أعتقد أن جوجل تثق في البيانات المتباينة، وبالتالي قد تقرر أن هذين الرابطين يحتويان على DiscussionForumPosting مختلفين لا يمكن دمجهما.
من الأفضل استخدام نفس مصدر البيانات في الصفحة الأولى و الصفحة 2+.
على سبيل المثال، استخدم دائمًا datePublished من الموضوع وليس من المنشور الأول؟
search.google.com/test/rich-results للصفحة الأولى
datePublished: 2015-07-05T22:02:58Z
search.google.com/test/rich-results للصفحة 2
datePublished: 2015-07-05T22:02:57Z
PR:
استخدم دائمًا
datePublishedمن الموضوع وليس منfirst_post. هذا يضمن اتساقdatePublishedفيالصفحة الأولىوالصفحة 2+.
لا حاجة لتكرارtextفيالصفحة 2+. خاصة لا تقم بتعيينtextفيالصفحة 2+إذا كان مجرد ملخص وبالتالي ليس متسقًا بنسبة 100٪ معtextفيالصفحة الأولى.
نتائج غير متوقعة في Google Search Console: احتفظ بسمةtextفي الصفحات اللاحقةالصفحة 2+.
إخفاء منشور “مغلق قبل x أيام” من عرض الزاحف
إذا تم إغلاق موضوع، تتم إضافة منشور خاص إليه:
على سبيل المثال، انظر Google structured data for forums and profile pages - #15
بالطبع، هذا المنشور ليس له نص سمة text فارغة. انظر validator.schema.org لـ …/t/-/286762 – انظر التعليق الأخير:
التقرير في Google Search Console
الخلاصة
لذلك، يجب استبعاد هذا النوع الخاص من منشورات النظام/الإعلانات من عرض الزاحف لأنها لا تحتوي على أي محتوى.
طلب سحب (PR)
يتم استبعاد الأنواع الخاصة من منشورات النظام/الإعلانات من عرض الزاحف لأنها لا تحتوي على أي محتوى.
المحتوى الفارغ يؤدي إلى مشكلة غير حرجة ‘حقل مفقود “text” (في “comment”)’ في Google Search Console.
هل سيكون من المنطقي تعيين بيانات التعريف لاسم المؤلف إلى حقل الملف الشخصي بالاسم الكامل عند توفره؟ على الأقل في المنتديات التي تم فيها تعطيل إعطاء الأولوية لاسم المستخدم في تجربة المستخدم (ولكنني سأجادل في كلتا الحالتين، فإن حقل عنوان URL يزيل الغموض على أي حال).
هل هناك أي شيء يمكن فعله لحل هذه المشكلة أم يتعين على فريق ديسكورس تحديث النواة؟
@rrlevering بخصوص “لا حاجة لسمة text في الصفحات اللاحقة” / فحص IsExternalContent():
لدي حالة اختبار هذه على نطاق مباشر:
يطبق Discourse DiscussionForumPosting على…
الصفحة الأولى- عنوان URL للصفحة: https://example.org/t/-/12345- سمة
url:https://example.org/t/-/12345 - سمة
text: – تم التعيين – - سمة
author: – تم التعيين –
- سمة
page=2- عنوان URL للصفحة: https://example.org/t/-/12345?page=2- سمة
url:https://example.org/t/-/12345 - سمة
text: – لم يتم التعيين على الإطلاق – - سمة
author: – تم التعيين –
- سمة
النتيجة: Google Search Console (اختبار مباشر)
الصفحة الأولى:
DiscussionForumPostingصالحpage=2:
DiscussionForumPostingغير صالح1 مشكلة حرجة–يجب تحديد "text" أو "image" أو "video"
لذلك، إما لا يوجد فحص على IsExternalContent() هنا أو يفترض الفحص أن page URL يساوي السمة url لـ
- عنوان URL للصفحة:
https://example.org/t/-/12345?page=2 - السمة
url:
https://example.org/t/-/12345
لذلك، في الوقت الحالي، يتعين علينا تكرار السمة text في الصفحات اللاحقة للحصول على DiscussionForumPosting صالح في Google Search Console.
مخطط مخطط غير صالح لـ DiscussionForumPosting - عناوين URL للموضوع/المنشور المحددة فقط
المواضيع المتأثرة: المواضيع التي يزيد مجموع مشاركاتها عن 20 مشاركة
عناوين URL المتأثرة: …/t/-/NNN/7 إلى …/t/-/NNN/20
تقرير في ‘Google Rich Result Test’
URL …/t/-/NNN/11: مواضيع مختلفة بإجمالي مشاركات مختلف (انقر للفتح)
- موضوع بإجمالي 18 مشاركة: نتيجة لـ …/t/-/283678/11 صالح
- موضوع بإجمالي 19 مشاركة: نتيجة لـ …/t/-/235984/11 صالح
- موضوع بإجمالي 20 مشاركة: نتيجة لـ …/t/-/264899/11 غير صالح
- موضوع بإجمالي 21 مشاركة: نتيجة لـ …/t/-/282382/11 غير صالح
– تم ‘إغلاق’ جميع المواضيع النموذجية لضمان عدم تغيير إجمالي المشاركات. الخطأ نفسه يؤثر أيضًا على المواضيع ‘المفتوحة’! –
عناوين URL …/t/-/16968/1 إلى …/t/-/16968/38: موضوع واحد بإجمالي 38 مشاركة حاليًا (انقر للفتح)
مخطط مخطط صالح:
– DiscussionForumPosting نفسه لا يزال يحتوي على سمة غير ضرورية position: 1. –
- نتيجة لـ …/t/-/16968:
Comment-positions 2 إلى 20 - نتيجة لـ …/t/-/16968/1:
Comment-positions 2 إلى 20 - …
- نتيجة لـ …/t/-/16968/6
Comment-positions 2 إلى 20.
مخطط مخطط غير صالح: author/datePublished مفقود
- نتيجة لـ …/t/-/16968/7
Comment-positions 2 إلى 21. - نتيجة لـ …/t/-/16968/8
Comment-positions 3 إلى 22. - …
- نتيجة لـ …/t/-/16968/20
Comment-positions 15 إلى 34.
مخطط مخطط صالح مرة أخرى: (هنا: @page > 1 هو true):
-
نتيجة لـ …/t/-/16968/21:
Comment-positions 16 إلى 35 -
نتيجة لـ …/t/-/16968/22:
Comment-positions 17 إلى 36 -
…
-
نتيجة لـ …/t/-/16968/24:
Comment-positions 19 إلى 38 -
نتيجة لـ …/t/-/16968/25: يشمل حاليًا
Comment-positions 19 إلى 38 -
…
-
نتيجة لـ …/t/-/16968/38 – آخر مشاركة حالية: يشمل حاليًا
Comment-positions 19 إلى 38 -
…
-
نتيجة لـ …/t/-/16968/999 – مشاركة عالية غير موجودة: يشمل حاليًا
Comment-positions 19 إلى 38
اعتبارات فنية
1. قد لا يكون `@topic_view.prev_page` هو الحل الأفضل لتحديد ما إذا كان سيتم عرض `author`/`datePublished` أم لا.
app/views/topics/show.html.erb#L53-L60
<% if @topic_view.prev_page %>
<meta itemprop='datePublished' content='<%= @topic_view.topic.created_at.to_formatted_s(:iso8601) %>'>
<span itemprop='author' itemscope itemtype="http://schema.org/Person">
<meta itemprop='name' content='<%= @topic_view.topic.user.username %>'>
<link itemprop='url' href='<%= Discourse.base_url %>/u/<%= @topic_view.topic.user.username %>'>
</span>
<meta itemprop='text' content='<%= @topic_view.topic.excerpt %>'>
<% end %>
2. قد يكون تنفيذ `@topic_view.prev_page` خاطئًا بحد ذاته.
lib/topic_view.rb#L113-L115
lib/topic_view.rb#L128-L130
lib/topic_view.rb#L193-L195
@post_number = [@post_number.to_i, 1].max
# ---
@page = @page.to_i > 1 ? @page.to_i : calculate_page
# ---
def prev_page
@page > 1 && posts.size > 0 ? @page - 1 : nil
end
هل هناك خطأ هنا؟
lib/topic_view.rb#L751-L755
def calculate_page
posts_count =
is_mega_topic? ? @post_number : unfiltered_posts.where("post_number <= ?", @post_number).count
((posts_count - 1) / @limit) + 1
end
- هل يمكن أن تعطي
calculate_pageنتائج غير متوقعة لأنها تستخدم@post_numberالحالي وتفشل بطريقة ما للقيم من 7 إلى 20؟ ((posts_count - 1) / @limit) + 1ينتج عنه شيء مثل:
((7 - 1) / 20) + 1 = 1.3 = 1- ما هو رقم الصفحة المتوقع؟ ربما يتم الحساب بقيم غير صحيحة، ثم تقريب الرقم كما هو مقصود عبر
floor/ceilوتحويل النوع إلى عدد صحيح:
(((posts_count - 1.0) / (@limit + 0.0)) + 1.0).floor.to_i - ربما تحقق من
unfiltered_posts.where("post_number <= ?", @post_number)لأن@topic.postsقد لا تحتوي على جميع المشاركات بدءًا من post_1 كما هو مقصود.
lib/topic_view.rb#L53-L55
lib/topic_view.rb#L119-L127
lib/topic_view.rb#L835-L841
def self.chunk_size
20
end
# ---
@chunk_size =
case
when @print
TopicView.print_chunk_size
else
TopicView.chunk_size
end
@limit ||= @chunk_size
# ---
def unfiltered_posts
result = filter_post_types(@topic.posts)
result = result.with_deleted if @guardian.can_see_deleted_posts?(@topic.category)
result = result.where("user_id IS NOT NULL") if @exclude_deleted_users
result = result.where(hidden: false) if @exclude_hidden
result
end
الخلاصة
في هذه الحالة الهامشية …
- المواضيع التي يزيد مجموع مشاركاتها عن 20 مشاركة
…/t/-/NNN/7إلى…/t/-/NNN/20
… لم تكن المشاركة الأولى جزءًا من العرض الحالي ولم يتم تشغيل @topic_view.prev_page لأن العرض كان لا يزال في الصفحة الأولى.
لذلك، كانت جميع سمات مخطط البيانات المصغرة DiscussionForumPosting التي تم عرضها فقط في سياق المشاركة الأولى أو عند @topic_view.prev_page == true مفقودة.
PR
يتم عرض بعض سمات مخطط البيانات المصغرة
DiscussionForumPostingفي سياق المشاركة الأولى. تأكد من تعيين هذه السمات أيضًا إذا لم تكن المشاركة الأولى جزءًا من العرض الحالي.
هممم… هذا غير متوقع. أنا آسف على الإزعاج، أعتقد أن فحص مقارنة عنوان URL هذا يتجاهل معلمات الاستعلام في المقارنة. دعني أطرح حلاً.
هل هناك أي تحديث هنا حول هذا الإصلاح؟
أعتقد أن الإصلاح الذي تم طرحه هذا الأسبوع للنظر في معلمات الاستعلام في “هل هذا عنوان URL خارجي” سيتم تطبيقه. لذلك، لن يتم الإبلاغ عن أخطاء في المنتديات التي تشير إلى OPs من عنوان URL مختلف بواسطة معلمة استعلام (foo مقابل foo?page=2) في GSC.
نعتقد أن الإصلاح الذي تم طرحه هذا الأسبوع يأخذ في الاعتبار معلمات الاستعلام في التحقق من “هل هذا عنوان URL خارجي”
@rrlevering في منصة منتديات أخرى، أوصيت بالتداخل في مخطط comment - Schema.org Property لكل منشور في سلسلة. لا يبدو أن Discourse يفعل ذلك. هل ما زلت توصي به؟
يقوم Discourse بتضمين مخطط التعليقات لكل منشور في سلسلة المناقشة. تحقق من Schema Markup Validator وافتح كائن DiscussionForumPosting وانظر التعليقات المتداخلة.
شكرا لك! لقد فاتني ذلك متداخلاً في منتدى المناقشة.




