تنفيذ العرض الديناميكي

تواجه معالجة جافا سكريبت صعوبات في الوقت الراهن ولا تستطيع بعض برامج الزحف بمحركات البحث معالجتها على نحو صحيح أو فوري. ونأمل حل هذه المشكلة في المستقبل ولكننا حتى ذلك الحين ننصح باستخدام العرض الديناميكي كحل بديل. ويُقصد بالعرض الديناميكي التبديل بين المحتوى المعروض بواسطة البرنامج وشكله قبل العرض لوكلاء مستخدمين محدّدين.

المواقع الإلكترونية التي ينبغي أن تستخدم العرض الديناميكي

يناسب العرض الديناميكي المحتوى سريع التغيّر والقابل للفهرسة والعام بلغة جافا سكريبت أو المحتوى الذي يستخدم ميزات جافا سكريبت غير المتوافقة مع برامج الزحف التي تريدها. ولا تحتاج جميع المواقع الإلكترونية إلى العرض الديناميكي مع ملاحظة أنه ليس سوى حل بديل لبرامج الزحف.

التعرّف على طريقة عمل العرض الديناميكي

يتطلّب العرض الديناميكي من خادم الويب اكتشاف برامج الزحف (من خلال التحقّق من وكيل المستخدم على سبيل المثال). ويتم توجيه طلبات برامج الزحف إلى عارض بينما يتم عرض طلبات المستخدمين بشكل طبيعي. ومن بين مهام العارض الديناميكي عرض نسخة من المحتوى مناسبة لبرنامج الزحف إذا احتاجت إلى ذلك مثل عرض نسخة HTML ثابتة. ويمكنك اختيار تفعيل العارض الديناميكي لجميع الصفحات أو لكل صفحة على حدة.

مخطَّط يوضَح طريقة عمل العرض الديناميكي. يوضح المخطَّط الخادم الذي يعرض محتوى أوليًّا بلغة HTML وجافا سكريبت على المتصفِّح مباشرة. وفي المقابل، يوضح المخطَّط الخادم الذي يعرض محتوى أوليًّا بلغة HTML وجافا سكريبت على عارض يحوِّل لغة HTML وجافا سكريبت الأولية إلى لغة HTML ثابتة. وبعد تحويل المحتوى، يقدِّم العارض المحتوى بلغة HTML ثابتة لبرنامج الزحف.

العرض الديناميكي ليس إخفاءً للهوية

لا يعتبر Googlebot العرض الديناميكي إخفاءً للهوية بشكل عام. ولن يعتبر Googlebot العرض الديناميكي إخفاءً للهوية طالما أن العرض الديناميكي يقدّم محتوى مشابهًا.

عند إعداد العرض الدينامكي، قد يعرض موقعك الإلكتروني صفحات خطأ. ولا يعتبر Googlebot صفحات الخطأ هذه كإخفاء للهوية ويتعامل مع الخطأ كأي صفحات خطأ أخرى.

ويمكن أن يُعدّ العرض الديناميكي لتقديم محتوى مختلف تمامًا للمستخدمين وبرامج الزحف إخفاءً للهوية. على سبيل المثال، يمكن أن يُعدّ الموقع الإلكتروني الذي يقدّم صفحة حول القطط للمستخدمين وصفحة حول الكلاب لبرامج الزحف إخفاءً للهوية.

تنفيذ العرض الديناميكي

لإعداد العرض الديناميكي على المحتوى الخاص بك، يرجى اتّباع الإرشادات العامة. وعليك الرجوع إلى تفاصيل الضبط لأنها تختلف كثيرًا بين عملية تنفيذ وأخرى.

  1. ثبِّت عارضًا ديناميكيًا واضبطه لتحويل المحتوى إلى لغة HTML ثابتة حتى يسهل على برامج الزحف استخدامها. ومن برامج العرض الديناميكي المعروفة Puppeteer وRendertron وprerender.io.
  2. حدِّد وكلاء المستخدمين الذين ترى أنه ينبغي لهم تلقي لغة HTML الثابتة وراجع تفاصيل التهيئة المحدَّدة للتعرّف على طريقة تحديث وكلاء المستخدمين أو إضافة وكلاء آخرين. وفي ما يلي مثال على قائمة من وكلاء المستخدمين المنتشرين في البرمجيات الوسيطة Rendertron:
    export const botUserAgents = [
      'googlebot',
      'google-structured-data-testing-tool',
      'bingbot',
      'linkedinbot',
      'mediapartners-google',
    ];
  3. إذا كان العرض المسبق يبطئ خادمك أو يوجد عدد كبير من طلبات العرض المسبق، فكِّر في تخصيص ذاكرة تخزين مؤقت للمحتوى المعروض مُسبقًا أو التحقّق من أن مصدر الطلبات هو برامج الزحف المسموح لها بذلك.
  4. حدِّد إن كان وكلاء المستخدمين يحتاجون إلى محتوى يتوافق مع أجهزة سطح المكتب أو الأجهزة الجوّالة. واستخدِم العرض الديناميكي لتقديم النسخة المناسبة لأجهزة سطح المكتب أو الأجهزة الجوّالة. يوضح المثال التالي استخدام التهيئة لتحديد إن كان وكيل المستخدم يتطلب محتوى متوافقًا مع أجهزة سطح المكتب أم الأجهزة الجوّالة:
    isPrerenderedUA = userAgent.matches(botUserAgents)
    isMobileUA = userAgent.matches(['mobile', 'android'])
    
    if (!isPrerenderedUA) { } else { servePreRendered(isMobileUA) }
  5. اضبط إعدادات خادمك لتقديم لغة HTML ثابتة إلى برامج الزحف التي اخترتها. ويمكنك فعل ذلك بعدّة طرق حسب التكنولوجيا التي تستخدمها، وفي ما يلي بعض الأمثلة:
    • طلبات الخادم الوكيل الواردة من برامج الزحف إلى العارض الديناميكي
    • يمكنك العرض مسبقًا كجزء من عملية التطوير وتهيئة الخادم لتقديم لغة HTML ثابتة إلى برامج الزحف.
    • دمج العرض الديناميكي مع الرمز المخصّص للخادم.
    • عرض المحتوى الثابت من خدمة العرض المسبق إلى برامج الزحف.
    • استخدام البرمجيات الوسيطة مع خادمك (مثل البرمجيات الوسيطة Rendertron).

التحقّق من التهيئة

بعد الانتهاء من تنفيذ العرض الديناميكي، تحقّق من أن جميع الأمور تسير على ما يرام باستخدام الاختبارات التالية في التحقّق من عنوان URL:

  1. اختبِر المحتوى المتوافق مع الأجهزة الجوّالة باستخدام فحص التوافق مع الأجهزة الجوّالة للتأكّد من أنّ محرّك البحث Google يستطيع رؤية المحتوى.

    تمت العملية بنجاح: المحتوى المتوافق مع الأجهزة الجوّالة مطابق لما تتوقّع أن يراه المستخدم.

    إعادة المحاولة: إذا كان المحتوى المعروض غير مطابق لما تتوقّع أن يراه المستخدم، يمكنك الاطّلاع على قسم تحديد المشاكل وحلّها.

  2. اختبِر المحتوى المتوافق مع أجهزة سطح المكتب باستخدام أداة فحص عنوان URL للتأكد من أن هذا المحتوى مرئي في الصفحة المعروضة (الصفحة المعروضة هي الصفحة كما يراها Googlebot).

    تمت العملية بنجاح: المحتوى المتوافق مع أجهزة الكمبيوتر مطابق لما تتوقّع أن يراه المستخدم.

    إعادة المحاولة: إذا كان المحتوى المعروض غير مطابق لما تتوقّع أن يراه المستخدم، يمكنك الاطّلاع على قسم تحديد المشاكل وحلّها.

  3. في حال استخدام بيانات منظَّمة، تأكّد من صحة عرضها باستخدام أداة اختبار البيانات المنظَّمة.

    تمت العملية بنجاح: تظهر البيانات المنظَّمة بالشكل الذي تتوقّعه.

    إعادة المحاولة: إذا لم تظهر البيانات المنظَّمة بالشكل الذي تتوقّعه، يمكنك الاطّلاع على قسم تحديد المشاكل وحلّها.

تحديد المشاكل وحلّها

في حال ظهور أخطاء في المحتوى عند استخدام فحص التوافق مع الأجهزة الجوّالة أو عدم ظهور المحتوى ضمن نتائج "بحث Google"، حاوِل حلّ المشاكل الأكثر شيوعًا المدرَجة أدناه. إذا استمرّت المشاكل، يمكنك نشر موضوع جديد في منتدى المساعدة في مجموعة خدمات "بحث Google".

المحتوى غير مكتمل أو يبدو مختلفًا

سبب المشكلة: من الممكن أنه قد تم ضبط العارض بشكل غير صحيح أو قد يكون تطبيق الويب غير متوافق مع حل العرض الذي تستخدمه. وتتسبّب المُهل في بعض الأحيان في عرض المحتوى بطريقة غير صحيحة.

حلّ المشكلة: يمكنك مراجعة المستندات للتعرّف على حلّ مشكلة العرض التي تواجهك وتصحيح الأخطاء في إعداد العرض الديناميكي.

أوقات استجابة عالية

سبب المشكلة: عند استخدام متصفّح بلا واجهة مستخدم رسومية لعرض الصفحات عند الطلب، يتسبّب ذلك عادةً في حدوث أوقات استجابة عالية، ما قد يدفع برامج الزحف إلى إلغاء الطلب، وعدم فهرسة المحتوى، وتقليل معدّل الزحف أثناء الزحف إلى المحتوى الخاص بك وفهرسته.

حلّ المشكلة

  1. خصِّص ذاكرة تخزين مؤقّت لنسخة HTML للعرض المسبق أو أنشِئ نسخة HTML ثابتة للمحتوى كجزء من عملية التصميم.
  2. تأكّد من تفعيل ذاكرة التخزين المؤقت في التهيئة (مثل توجيه برامج الزحف إلى ذاكرة التخزين المؤقت التي لديك).
  3. تحقّق من أنّ برامج الزحف تصل إلى المحتوى الخاص بك بسرعة باستخدام أدوات اختبار مثل فحص التوافق مع الأجهزة الجوّالة أو webpagetest (باستخدام سلسلة مخصّصة لوكيل المستخدم من قائمة وكلاء المستخدمين في برامج الزحف من Google). وينبغي ألا تنتهي مهلة طلباتك.

لا يتم عرض مكوّنات الويب على النحو المتوقّع

سبب المشكلة: Shadow DOM معزول عن سائر الصفحة. لا يمكن لحلول العرض (مثل Rendertron) رؤية المحتوى داخل shadow DOM المعزول. لمزيد من المعلومات، راجِع أفضل الممارسات لمكوّنات الويب.

حلّ المشكلة

  1. حمِّلرموز webcomponents.js polyfills للعناصر المخصّصة وshadow DOM.
  2. استخدِم فحص التوافق مع الأجهزة الجوّالةأو أداة فحص عنوان URL للتحقّق مما إذا كان المحتوى يظهر في HTML الذي يعرضه حلّ العرض.

عدم توفّر البيانات المنظَّمة

سبب المشكلة: قد تحدث أخطاء في البيانات المنظَّمة في حال عدم توفّر وكيل المستخدم للبيانات المنظَّمة أو عدم تضمين علامات النص البرمجي JSON-LD في النتيجة.

حلّ المشكلة

  1. استخدِم أداة اختبار البيانات المنظَّمة للتأكد من وجود البيانات المنظَّمة في الصفحة. يمكنك بعد ذلك تهيئة وكيل المستخدِم لأداة اختبار البيانات المنظمة لاختبار المحتوى الذي سبق عرضه.
  2. تأكّد من تضمين علامات نص JSON-LD البرمجي في نص HTML الديناميكي المعروض مسبقًا للمحتوى. وللمزيد من المعلومات، يمكنك الرجوع إلى مستندات حل العرض.