تحسين متغيّرات التصميم التراكمية في Telegraph Media Group

في غضون بضعة أشهر، تمكّن الموقع الإلكتروني الرائد للأخبار في المملكة المتحدة من تحسين CLS في الشريحة المئوية التسعون بنسبة% 250 من 0.25 إلى 0.1.

اختبار الثبات البصري

يمكن أن تكون تغييرات التصميم مزعجة جدًا. في Telegraph Media Group (TMG)، يُعدّ ثبات الأداء المرئي مهمًا بشكل خاص لأنّ القراء يستخدمون تطبيقاتنا بشكل أساسي لقراءة الأخبار. إذا تغيّر التنسيق أثناء قراءة مقالة، من المرجّح أن يفقد القارئ مكانه. وقد تكون هذه التجربة محبطة ومشتتة للانتباه.

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

في TMG، لدينا فِرق متعدّدة تساهم في إنشاء الرموز البرمجية من جهة العميل:

  • الهندسة الأساسية: تنفيذ حلول تابعة لجهات خارجية لتعزيز ميزات محدّدة، مثل اقتراحات المحتوى والتعليقات
  • التسويق: إجراء اختبارات أ/ب لتقييم كيفية تفاعل القرّاء مع الميزات أو التغييرات الجديدة
  • الإعلانات: إدارة طلبات الإعلانات وعروض الأسعار المُسبَقة للإعلانات
  • المتطلبات التحريرية: تضمين الرموز البرمجية في المقالات، مثل التغريدات أو الفيديوهات، بالإضافة إلى التطبيقات المصغّرة المخصّصة (مثل أداة تتبُّع حالات فيروس كورونا)

قد يكون من الصعوبة بمكانٍ ضمان عدم تسبب كل فريق من هذه الفِرق في حدوث تغييرات مفاجئة في تنسيق الصفحة. باستخدام مقياس التغيير التراكمي في التنسيق لقياس عدد المرات التي يحدث فيها ذلك للقراء، حصلت الفِرق على المزيد من الإحصاءات حول تجربة المستخدِم الفعلية وهدف واضح للسعي لتحقيقه. وقد أدّى ذلك إلى تحسين متغيّرات التصميم التراكمية (CLS) في الشريحة المئوية الخامسة والسبعين من 0.25 إلى 0.1 وزيادة نسبة الصفحات التي اجتازت الاختبار من ‎57% إلى ‎72%.

250%

تحسين متغيّر التصميم التراكمية (CLS) في الشريحة المئوية الخامسة والسبعين

زيادة بنسبة %15

المزيد من المستخدمين الذين حقّقوا نتيجة CLS جيدة

نقطة البداية

باستخدام لوحات بيانات CrUX، تمكّنا من تحديد أنّ صفحاتنا كانت تتغيّر أكثر مما نريد.

لوحة بيانات CrUX تعرض ما يتراوح بين %55 و%60 من الصفحات ذات الأداء الجيد، و%15 من الصفحات التي تحتاج إلى تحسين، و%25 من الصفحات ذات الأداء السيئ.
نتائج متغيّرات التصميم التراكمية بين حزيران (يونيو) 2020 وشباط (فبراير) 2021

أردنا أن يحصل ‎75% على الأقل من القرّاء على تجربة "جيدة"، لذلك بدأنا في تحديد أسباب عدم ثبات التنسيق.

كيفية قياس تغييرات التنسيق

لقد استخدمنا أدوات Chrome DevTools وWebPageTest للمساعدة في تحديد سبب اختلاف التنسيق. في DevTools، استخدمنا قسم تجربته ضمن علامة التبويب الأداء لتمييز الحالات الفردية لتغيير التنسيق وكيفية أثرها في النتيجة الإجمالية.

الصفحة الأولى من Telegraph مع إعلان في العنوان مميّز بطبقة زرقاء
تحديد تغيير في التنسيق ناتج عن تحميل الإعلان من جهة العميل فوق العنوان باستخدام قسم "التجربة" في "أدوات مطوّري البرامج في Chrome"

يُبرز WebPageTest بشكلٍ مفيد مواضع تغيُّر التنسيق في عرض المخطط الزمني عند تحديد "تمييز التغيُّرات في التنسيق".

عرض شريط أفلام WebPageTest لموقع Telegraph الإلكتروني مع تمييز layoutshift بطبقة مثبّتة حمراء
WebPageTest يُبرز موضع تغيُّر التنسيق

بعد مراجعة كلّ تغيير في النماذج الأكثر زيارة، توصّلنا إلى قائمة بالأفكار حول كيفية تحسينها.

الحدّ من تغييرات التصميم

ركّزنا على أربعة مجالات يمكننا فيها تقليل عمليات تغيير التنسيق: - الإعلانات - الصور - العناوين - المحتوى المضمّن

الإعلانات

يتم تحميل الإعلانات بعد عملية الرسم الأولية من خلال JavaScript. بعض الحاويات التي تم تحميلها لم يكن لها أي ارتفاع محجوز.

صورة متحرّكة لموقع Telegraph الإلكتروني يتم دفع قائمة القصص للأسفل عندما يتم تحميل إعلان فوقها.
يتم نقل قسم "مزيد من القصص" أسفل الإعلان بعد تحميله.

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

صورة متحرّكة لموقع Telegraph الإلكتروني يتم وضع مستطيل نائب للإعلان فوق قائمة القصص. يتم تحميل الإعلان بدلاً من العنصر النائب بدون التسبب في تغيير التنسيق.
من خلال حجز مساحة للإعلان، يظلّ قسم "مزيد من القصص" أدناه ثابتًا قبل تحميل الإعلان وبعده.

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

صورة متحركة لعرض موقع Telegraph الإلكتروني على جهاز لوحي تكون مساحة العنصر النائب أكبر من الإعلان، لذا يتم نقل المحتوى للأعلى بعد تحميل الإعلان.
تصغير خانة الإعلان بعد تحميلها للقراء على الأجهزة اللوحية

لقد أعدنا النظر في المساحة وضبطنا ارتفاعها لاستخدام الحجم الأكثر شيوعًا.

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

الصور

يتم تحميل الكثير من الصور على الموقع الإلكتروني بشكل بطيء، كما أنّه تم حجز مساحة لها.

صورة متحركة لبطاقات معاينة المقالات أثناء التحميل
تحميل الصور بأسلوب "التحميل الكسول" بدون إزعاج التنسيق

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

صورة متحركة لتحميل صفحة المقالة عند تحميل الصورة الرئيسية في أعلى الصفحة، ينتقل النص للأسفل.
تغيير في التنسيق بسبب الصورة الرئيسية للمقالة:

من خلال إضافة سمتَي العرض والارتفاع إلى الصور، تم ضمان عدم تغيُّر التنسيق.

صورة متحركة لتحميل صفحة المقالة مع عنصر نائب محجوز للصورة الرئيسية عند تحميل الصورة الرئيسية في أعلى الصفحة، لا يحدث أي تغيير في التنسيق.
يتم تحميل الصورة الرئيسية للمقالة بدون تغيير التنسيق.

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

ALT_TEXT_HERE
يتم تحميل رأس الصفحة بشكل غير أنيق.

سمح نقل العنوان إلى أعلى العلامة بعرض الصفحة بدون هذا التحول.

ALT_TEXT_HERE
لم يعُد تنسيق الصفحة مضطربًا بسبب القسم العلوي من الصفحة أثناء تحميلها.

التضمينات

تتميز بعض عمليات التضمين المستخدَمة بشكل متكرّر بنسبة عرض إلى ارتفاع محدّدة. على سبيل المثال، فيديوهات YouTube أثناء تحميل المشغّل، نسحب الصورة المصغّرة من YouTube ونستخدمها كعنصر نائب أثناء تحميل الفيديو.

تظهر في خانة مشغّل الفيديو صورة مصغّرة بدقة منخفضة أثناء تحميل مشغّل الفيديو.
يتم تحميل صورة مصغّرة بدقة منخفضة في خانة مشغّل الفيديو أثناء تحميل مشغّل الفيديو.

قياس التأثير

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

رسم بياني في SpeedCurve يعرض انخفاضًا حادًا في نتيجة CLS
تتبُّع مستوى تقدّم متغيّرات التصميم التراكمية (CLS) بشكل اصطناعي باستخدام SpeedCurve

بعد ذلك، يمكننا التحقّق من النتائج في بيانات RUM (التي يوفّرها mPulse) بعد وصول الرمز إلى مرحلة الإنتاج.

رسم بياني في mPulse يعرض انخفاضًا في نتيجة CLS
التحقّق من تحسينات مقياس CLS على مستوى الموقع الإلكتروني باستخدام بيانات mPulse RUM قبل إجراء التغييرات وبعدها

من خلال التحقّق من بيانات RUM، نحصل على مستوى جيد من الثقة بأنّ التغييرات التي نجريها لها تأثير إيجابي على القرّاء.

إنّ الأرقام النهائية التي اطّلعنا عليها هي لبيانات RUM التي تجمعها Google. وينطبق ذلك بشكل خاص الآن لأنّها ستؤثّر قريبًا في ترتيب الصفحة. في البداية، استخدمنا تقرير تجربة المستخدِم على Chrome، سواءً في البيانات الشهرية على مستوى المصدر المتوفّرة من خلال لوحة بيانات CrUX، أو من خلال طلب بيانات BigQuery لاسترداد بيانات p75 السابقة. بهذه الطريقة، تمكّنا بسهولة من معرفة أنّه بالنسبة إلى جميع الزيارات التي تم قياسها باستخدام CrUX، تحسّنت قيمة متغيّر التصميم التراكمية (CLS) في الشريحة المئوية الخامسة والسبعين بنسبة% 250 من 0.25 إلى 0.1، كما زادت نسبة الزيارات التي اجتازت الفحص من% 57 إلى%72.

تعرض لوحة بيانات CrUX قيمة 0.1 لمقياس CLS الذي يمثّل نسبة %75 من طلبات البحث على telegraph.co.uk.
النتائج من لوحة بيانات Crux
تعرِض أداة BigQuery تحسُّنًا في قيم p75 من شهر لآخر، من 0.25 إلى 0.1.
تنفيذ BigQuery لعرض قيم p75 من عام 2021 حتى اليوم

بالإضافة إلى ذلك، تمكّنا من الاستفادة من واجهة برمجة التطبيقات لتقرير تجربة المستخدم في Chrome وإنشاء بعض لوحات البيانات الداخلية المُقسَّمة إلى نماذج.

لوحة بيانات داخلية تعرض متوسط النتيجة الجيدة 76.2 والنتيجة التي تحتاج إلى تحسين 9.3 والنتيجة السيئة 14.6
لوحات البيانات الداخلية التي تستخدِم واجهة برمجة التطبيقات Chrome UX Report API لعرض متوسط النتيجة والصفحات الأسوأ أداءً باستخدام هذا النموذج

تجنُّب التراجع في مقياس CLS

يُعدّ تجنُّب التراجعات أحد الجوانب المهمة لإجراء تحسينات على الأداء. لقد أعددنا بعض ميزانيات الأداء الأساسية لقياس مقاييسنا الرئيسية، وأدرجنا مقياس متغيّرات التصميم التراكمية (CLS) فيها.

لوحة بيانات ميزانية الأداء التي تعرض عمليات تحقّق اصطناعية تقيس متغيّرات التصميم التراكمية (CLS) في بعض نماذج الزيارات العالية. تم ضبط الميزانية حاليًا على 0.025.

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

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

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

الخاتمة

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

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