استخدام العرض الديناميكي كحل بديل
في بعض المواقع الإلكترونية، تُنشئ لغة JavaScript محتوًى إضافيًا في إحدى الصفحات عند تنفيذها في المتصفّح. تُسمّى هذه العملية العرض من جهة العميل. وينفّذ محرّك بحث Google لغة JavaScript، إلا أنّ هناك ميزات خاصة بلغة JavaScript تم فرض قيود عليها في "بحث Google"، وبالتالي، قد تواجه بعض الصفحات مشاكل بشأن عدم ظهور المحتوى في رمز HTML المعروض. وقد تلجأ محرّكات بحث أخرى إلى تجاهل لغة JavaScript، لذا لن يظهر لها المحتوى الذي تم إنشاؤه باستخدام JavaScript.
يُعد العرض الديناميكي حلاً بديلاً للمواقع الإلكترونية التي لا يتوفر فيها المحتوى الذي تم إنشاؤه باستخدام JavaScript لمحرّكات البحث. يرصد خادم يستخدم العرض الديناميكي برامج التتبع التي قد تواجه مشاكل بخصوص المحتوى الذي تم إنشاؤه باستخدام JavaScript ويقدم نسخة المحتوى المعروضة من جهة الخادم بدون لغة JavaScript لهذه البرامج، بينما يقدم النسخة المعروضة من جهة العميل للمستخدمين.
إنّ العرض الديناميكي هو حل بديل وليس حلاً ننصح به، لأنّه يؤدي إلى تعقيدات إضافية ومتطلبات إضافية للموارد.
المواقع الإلكترونية التي يجب أن تستخدم العرض الديناميكي
العرض الديناميكي هو حل بديل للمحتوى العلني بلغة JavaScript القابل للفهرسة والسريع التغيّر، أو المحتوى الذي يستخدم ميزات JavaScript غير المتوافقة مع برامج الزحف التي تهمّك. ولا تحتاج بعض المواقع الإلكترونية إلى استخدام العرض الديناميكي، إذ تتوفر حلول أفضل كما هو موضّح في هذه المقالة المتعلّقة بالعرض على الويب.
التعرّف على آلية عمل العرض الديناميكي
يتطلّب العرض الديناميكي من خادم الويب اكتشاف برامج الزحف (من خلال التحقّق من وكيل المستخدم على سبيل المثال). ويتم توجيه طلبات برامج الزحف إلى عارض بينما يتم عرض طلبات المستخدمين بشكل طبيعي. ومن بين مهام العارض الديناميكي عرض نسخة من المحتوى مناسبة لبرنامج الزحف إذا احتاجت إلى ذلك، مثل عرض نسخة HTML ثابتة. ويمكنك اختيار تفعيل العارض الديناميكي لجميع الصفحات أو لكل صفحة على حدة.

العرض الديناميكي ليس إخفاءً للهوية
لا يعتبر Googlebot العرض الديناميكي إخفاءً للهوية بشكل عام. ولن يعتبر Googlebot العرض الديناميكي إخفاءً للهوية طالما أنّ العرض الديناميكي يقدّم محتوى مشابهًا.
عند إعداد العرض الديناميكي، قد يعرض موقعك الإلكتروني صفحات خطأ. ولا يعتبر Googlebot صفحات الخطأ هذه كإخفاء للهوية ويتعامل مع الخطأ كأي صفحات خطأ أخرى.
إنّ استخدام العرض الديناميكي لتقديم محتوى مختلف تمامًا للمستخدمين وبرامج الزحف يمكن أن يُعدّ إخفاءً للهوية، مثل موقع إلكتروني يقدّم صفحة حول القطط للمستخدمين وصفحة حول الكلاب لبرامج الزحف.
تنفيذ العرض الديناميكي
لإعداد العرض الديناميكي على المحتوى الخاص بك، يُرجى اتّباع إرشاداتنا العامة. وعليك الرجوع إلى تفاصيل عملية الإعداد لأنّها تختلف كثيرًا بين عملية تنفيذ وأخرى.
- ثبِّت عارضًا ديناميكيًا (مثلاً، Puppeteer أو Rendertron أو prerender.io) واضبطه لتحويل المحتوى إلى لغة HTML ثابتة حتى يسهل على برامج الزحف استخدامها.
- حدِّد برامج وكيل المستخدم التي تريدها أن تتلقّى لغة HTML الثابتة، وراجِع تفاصيل عملية الضبط المحدّدة لمعرفة طريقة تعديل برامج وكيل المستخدم الحالية أو إضافة برامج أخرى. إليك مثال على قائمة تتضمّن برامج وكيل المستخدم الشائعة في البرمجيات الوسيطة Rendertron:
export const botUserAgents = [ 'googlebot', 'bingbot', 'linkedinbot', 'mediapartners-google', ];
- إذا كان العرض المسبق يبطِّئ أداء خادمك أو إذا كان عدد طلبات العرض المسبق مرتفعًا جدًا، ننصحك بتخصيص ذاكرة تخزين مؤقت للمحتوى المعروض مسبقًا أو التأكّد من أنّ مصدر الطلبات هو برامج زحف معتمدة.
- حدِّد ما إذا كانت برامج وكيل المستخدم تتطلّب محتوًى يتوافق مع أجهزة الكمبيوتر المكتبي أو الأجهزة الجوّالة. واستخدِم
العرض الديناميكي لتقديم
النسخة المناسبة لأجهزة الكمبيوتر المكتبي أو الأجهزة الجوّالة. يوضّح المثال التالي استخدام
الإعدادات لتحديد ما إذا كان وكيل المستخدم يتطلب محتوًى متوافقًا مع أجهزة الكمبيوتر المكتبي أو الأجهزة الجوّالة:
isPrerenderedUA = userAgent.matches(botUserAgents) isMobileUA = userAgent.matches(['mobile', 'android'])
if (!isPrerenderedUA) { } else { servePreRendered(isMobileUA) } - اضبط إعدادات خادمك لتقديم نص HTML ثابت إلى برامج الزحف التي اخترتها. ويمكنك فعل ذلك بعدّة طرق حسب التكنولوجيا التي تستخدمها، وفي ما يلي بعض الأمثلة:
- طلبات الخادم الوكيل الواردة من برامج الزحف إلى العارض الديناميكي
- يمكنك العرض مسبقًا كجزء من عملية النشر وتهيئة الخادم لتقديم لغة HTML ثابتة إلى برامج الزحف
- دمج العرض الديناميكي مع الرمز المخصّص للخادم
- عرض المحتوى الثابت من خدمة العرض المسبق إلى برامج الزحف
- استخدام برمجيات وسيطة على خادمك (مثل البرمجيات الوسيطة Rendertron)
التأكّد من الإعدادات
بعد الانتهاء من تنفيذ العرض الديناميكي، تأكَّد من أنّ كلّ الأمور تسير على ما يرام عبر التحقّق من عنوان URL باستخدام الاختبارات التالية:
- اختبِر المحتوى المتوافق مع الأجهزة الجوّالة باستخدام فحص التوافق مع الأجهزة الجوّالة للتأكّد من أنّ محرّك البحث Google يستطيع رؤية المحتوى.
doneتمت العملية بنجاح: المحتوى المتوافق مع الأجهزة الجوّالة مطابق لما تتوقّع أن يراه المستخدم.
error إعادة المحاولة: إذا كان المحتوى المعروض غير مطابق لما تتوقّع أن يراه المستخدم، يمكنك الاطّلاع على قسم تحديد المشاكل وحلّها.
- اختبِر المحتوى على الكمبيوتر المكتبي باستخدام أداة فحص عنوان URL للتأكد من أنّ المحتوى مرئي في الصفحة المعروضة (الصفحة المعروضة هي الصفحة التي يراها محرّك بحث Google).
done تمت العملية بنجاح: المحتوى المتوافق مع أجهزة الكمبيوتر المكتبي مطابق لما تتوقّع أن يراه المستخدم.
error إعادة المحاولة: إذا كان المحتوى المعروض غير مطابق لما تتوقّع أن يراه المستخدم، يمكنك الاطّلاع على قسم تحديد المشاكل وحلّها.
- في حال استخدام البيانات المنظَّمة، تحقَّق مما إذا كان يتم عرضها بشكل صحيح باستخدام
اختبار النتائج المنسّقة.
done تمت العملية بنجاح: تظهر البيانات المنظَّمة بالشكل الذي تتوقّعه.
error إعادة المحاولة: إذا لم تظهر البيانات المنظَّمة بالشكل الذي تتوقّعه، يمكنك الاطّلاع على قسم تحديد المشاكل وحلّها.
تحديد المشاكل وحلّها
في حال ظهور أخطاء في المحتوى عند استخدام فحص التوافق مع الأجهزة الجوّالة أو عدم ظهور المحتوى ضمن نتائج "بحث Google"، حاوِل حلّ المشاكل الأكثر شيوعًا. إذا استمرّت المشاكل، يمكنك نشر موضوع جديد في منتدى المساعدة الخاص بـ "مجموعة خدمات بحث Google".
المحتوى غير مكتمل أو يبدو مختلفًا
error سبب المشكلة: من الممكن أنّه قد تم ضبط العارض بشكل غير صحيح أو قد يكون تطبيق الويب غير متوافق مع حل العرض الذي تستخدمه. وتتسبّب المُهل في بعض الأحيان في عرض المحتوى بطريقة غير صحيحة.
doneحلّ المشكلة: يمكنك مراجعة المستندات للتعرّف على حلّ مشكلة العرض التي تواجهك وتصحيح الأخطاء في إعداد العرض الديناميكي.
أوقات استجابة عالية
error سبب المشكلة: عند استخدام متصفّح بلا واجهة مستخدم رسومية لعرض الصفحات عند الطلب، يتسبّب ذلك عادةً في حدوث أوقات استجابة عالية، ما قد يدفع برامج الزحف إلى إلغاء الطلب، وعدم فهرسة المحتوى، وتقليل معدّل الزحف أثناء الزحف إلى المحتوى الخاص بك وفهرسته.
done حلّ المشكلة
- خصِّص ذاكرة تخزين مؤقّت لنسخة HTML المعروضة مسبقًا أو أنشِئ نسخة HTML ثابتة للمحتوى كجزء من عملية التصميم.
- احرص على تفعيل ذاكرة التخزين المؤقت في الإعدادات (على سبيل المثال، من خلال توجيه برامج الزحف إلى ذاكرة التخزين المؤقّت).
- استخدِم أدوات اختبار مثل فحص التوافق مع الأجهزة الجوّالة أو webpagetest (باستخدام سلسلة مخصّصة لوكيل المستخدم من قائمة وكلاء المستخدمين في برامج الزحف من Google) لتتأكّد من أنّ برامج الزحف تصل إلى المحتوى الخاص بك بسرعة. وينبغي ألا تنتهي مهلة طلباتك.
لا يتم عرض مكوّنات الويب على النحو المتوقّع
error سبب المشكلة: Shadow DOM معزول عن بقية الصفحة. لا يمكن لحلول العرض (مثل Rendertron) رؤية المحتوى داخل shadow DOM المعزول. لمزيد من المعلومات، راجِع أفضل الممارسات لمكوّنات الويب.
done حلّ المشكلة
- حمِّلرموز webcomponents.js polyfill للعناصر المخصّصة وshadow DOM.
- استخدِم فحص التوافق مع الأجهزة الجوّالة أو أداة فحص عنوان URL للتأكّد مما إذا كان المحتوى يظهر في نص HTML المعروض الخاص بحلّ العرض الذي تستخدمه.
عدم توفّر البيانات المنظَّمة
error سبب المشكلة: قد تحدث أخطاء في البيانات المنظَّمة في حال عدم توفّر وكيل المستخدم للبيانات المنظَّمة أو عدم تضمين علامات النص البرمجي JSON-LD في النتيجة.
done حلّ المشكلة
- استخدِم اختبار النتائج المنسّقة للتأكّد من توفّر البيانات المنظَّمة في الصفحة. يمكنك بعد ذلك ضبط وكيل المستخدم لاختبار المحتوى المعروض مسبقًا باستخدام برنامج Googlebot لأجهزة الكمبيوتر المكتبي أو الأجهزة الجوّالة.
- تأكّد من تضمين علامات نص JSON-LD البرمجي في نص HTML الديناميكي المعروض الخاص بالمحتوى. وللمزيد من المعلومات، يمكنك الرجوع إلى مستندات حل العرض.