Telegraph Media Group में कुल लेआउट शिफ़्ट को बेहतर बनाया जा रहा है

कुछ ही महीनों में, यूके की मुख्य समाचार वेबसाइट अपने 75वें पर्सेंटाइल सीएलएस को 250% बढ़ाकर, 0.25 से 0.1 करने में कामयाब रही.

विज़ुअल स्टैबिलिटी चैलेंज

लेआउट शिफ़्ट से आपको परेशानी हो सकती है. Telegraph Media Group (TMG) में विज़ुअल स्टैबिलिटी बहुत ज़रूरी है क्योंकि लोग मुख्य रूप से समाचार देखने के लिए हमारे ऐप्लिकेशन का इस्तेमाल करते हैं. अगर किसी लेख को पढ़ते समय लेआउट बदल जाता है, तो हो सकता है कि पाठक उस लेख से अपनी जगह खो दे. यह परेशान और ध्यान भटकाने वाला हो सकता है.

इंजीनियरिंग के नज़रिए से यह पक्का करना मुश्किल हो सकता है कि पेज शिफ़्ट न हों और पाठक के काम में रुकावट न आए. खास तौर पर तब, जब आपके ऐप्लिकेशन के कुछ हिस्से एसिंक्रोनस रूप से लोड होते हैं और पेज पर डाइनैमिक रूप से जोड़े जाते हैं.

TMG में, हमारी कई टीमें कोड क्लाइंट-साइड का योगदान देती हैं:

  • मुख्य इंजीनियरिंग. कॉन्टेंट को बेहतर बनाने के लिए तीसरे पक्ष के समाधानों को लागू करना, जैसे कि कॉन्टेंट के सुझाव देना और टिप्पणी करना.
  • मार्केटिंग. A/B टेस्ट करके पता लगाना कि हमारे पाठक नई सुविधाओं या बदलावों से कैसे इंटरैक्ट करते हैं.
  • विज्ञापन. विज्ञापन के अनुरोधों को मैनेज करना और प्री-बिडिंग वाले विज्ञापन को मैनेज करना.
  • एडिटोरियल. ट्वीट या वीडियो जैसे लेखों के साथ-साथ कस्टम विजेट (जैसे, कोरोना वायरस केस ट्रैकर) में कोड एम्बेड करना.

यह पक्का करना मुश्किल हो सकता है कि इन टीमों में पेज का लेआउट कमज़ोर न हो. कुल लेआउट शिफ़्ट की मेट्रिक का इस्तेमाल करके, यह पता लगाया गया कि हमारे पाठकों के लिए ऐसा कितनी बार होता है. इससे टीम को, उपयोगकर्ता अनुभव के बारे में ज़्यादा अहम जानकारी मिली. साथ ही, टीम को ऐसा करने का एक अच्छा लक्ष्य भी मिला. इससे हमारा 75वां पर्सेंटाइल सीएलएस, 0.25 से बढ़कर 0.1 हो गया और पासिंग बकेट 57% से बढ़कर 72% हो गई.

250%

सीएलएस में 75वां पर्सेंटाइल सुधार

15%

अच्छे सीएलएस स्कोर वाले ज़्यादा उपयोगकर्ता

हमने शुरुआत कहां से की थी

CrUX डैशबोर्ड की मदद से, हम यह पता लगा पाए कि पेजों पर हमारी उम्मीद से ज़्यादा बार बदलाव हो रहा था.

CrUX डैशबोर्ड, 55% से 60% अच्छे, 15% खराब स्कोर, और 25% खराब स्कोर को दिखाता है.
जून 2020 से फ़रवरी 2021 के बीच, हमने कुल लेआउट शिफ़्ट का स्कोर तय किया.

आम तौर पर, हम चाहते थे कि हमारे कम से कम 75% पाठकों को "अच्छा" अनुभव मिले. इसलिए, हमने लेआउट में गड़बड़ी की वजहों का पता लगाना शुरू किया.

हम लेआउट शिफ़्ट को कैसे मेज़र करते हैं

लेआउट शिफ़्ट होने की वजह जानने के लिए, हमने Chrome DevTools और WebPageTest का इस्तेमाल किया है. DevTools में, हमने परफ़ॉर्मेंस टैब के अनुभव सेक्शन का इस्तेमाल किया है, ताकि लेआउट शिफ़्ट होने के अलग-अलग इंस्टेंस को हाइलाइट किया जा सके. साथ ही, यह भी पता लगाया जा सके कि पूरे स्कोर में उनका योगदान कैसे रहा.

Telegraph का पहला पेज, जिसके हेडर में एक विज्ञापन है और जिसके ऊपर नीले रंग का ओवरले है.
Chrome DevTools के अनुभव सेक्शन का इस्तेमाल करके, हेडर के ऊपर विज्ञापन लोड करने वाले क्लाइंट-साइड की वजह से हुए लेआउट शिफ़्ट की पहचान करना.

WebPageTest यह हाइलाइट करता है कि "लेआउट शिफ़्ट हाइलाइट करें" चुनने पर, टाइमलाइन व्यू में लेआउट में कहां बदलाव होता है.

Telegraph वेबसाइट का WebPage Test का फ़िल्मस्ट्रिप व्यू. इसमें लेआउटशिफ़्ट को लाल ओवरले से हाइलाइट किया गया है.
WebPage Test को हाइलाइट करता है कि लेआउट कहां शिफ़्ट किया गया है.

सबसे ज़्यादा देखे गए टेंप्लेट में हर शिफ़्ट की समीक्षा करने के बाद, हम आपके लिए ऐसे आइडिया लाए हैं जिन्हें बेहतर बनाने के तरीके बताए गए हैं.

लेआउट शिफ़्ट को कम किया जा रहा है

हमने उन चार चीज़ों पर ध्यान दिया जिनमें लेआउट शिफ़्ट कम किया जा सकता है: - विज्ञापन - इमेज - हेडर - एम्बेड

विज्ञापन

विज्ञापनों को JavaScript के ज़रिए शुरुआती पेंट के बाद लोड किया जाता है. उन्होंने जो कंटेनर लोड किए उनमें से कुछ की ऊंचाई पहले से तय नहीं थी.

Telegraph की वेबसाइट का ऐनिमेशन. जब कोई विज्ञापन उसके ऊपर लोड होता है, तो स्टोरी की सूची नीचे की ओर जाती है.
विज्ञापन लोड होने के बाद, विज्ञापन के नीचे मौजूद "ज़्यादा खबरें" ब्लॉक नीचे की ओर शिफ़्ट हो जाता है.

हालांकि, हमें सही ऊंचाई नहीं पता, लेकिन स्लॉट में लोड किए गए सबसे सामान्य विज्ञापन आकार का इस्तेमाल करके जगह बुक की जा सकती है.

Telegraph की वेबसाइट का ऐनिमेशन. विज्ञापन के लिए प्लेसहोल्डर रेक्टैंगल, खबरों की सूची के ऊपर होता है. विज्ञापन, लेआउट शिफ़्ट किए बिना प्लेसहोल्डर की जगह पर लोड हो जाता है.
विज्ञापन के लिए जगह रिज़र्व करने पर, विज्ञापन लोड होने से पहले और बाद में नीचे मौजूद "ज़्यादा खबरें" ब्लॉक दिखता है.

कुछ मामलों में हमने विज्ञापन की औसत ऊंचाई को गलत समझा. टैबलेट रीडर के लिए, स्लॉट छोटा हो रहा था.

Telegraph की वेबसाइट के टैबलेट व्यू का ऐनिमेशन. प्लेसहोल्डर स्लॉट विज्ञापन से बड़ा होता है, इसलिए विज्ञापन लोड होने के बाद कॉन्टेंट ऊपर शिफ़्ट हो जाता है.
टैबलेट के साइज़ के डिवाइसों पर पाठकों के लिए लोड होने के बाद, विज्ञापन स्लॉट का बंद हो जाना.

हमने स्लॉट दोबारा देखा और सबसे सामान्य साइज़ का इस्तेमाल करने के लिए, ऊंचाई को अडजस्ट किया.

Telegraph की वेबसाइट के टैबलेट व्यू का ऐनिमेशन. प्लेसहोल्डर के विज्ञापन के साइज़ से मेल खाने पर, विज्ञापन लोड होने पर कोई लेआउटशिफ़्ट नहीं होता.
यह पक्का करना कि हमने विज्ञापन के स्लॉट के लिए जो जगह बुक की है वह विज्ञापन की सबसे सामान्य ऊंचाई से मेल खाती है.

इमेज

वेबसाइट पर कई इमेज लेज़ी लोड होती हैं और उनके लिए जगह बनाई जाती है.

लेख की झलक दिखाने वाले कार्ड लोड होने का ऐनिमेशन.
लेआउट में रुकावट डाले बिना, इमेज को लेज़ी लोड करना.

हालांकि, लेखों में सबसे ऊपर दी गई इनलाइन इमेज में कंटेनर में कोई स्पेस नहीं था और न ही उसमें टैग से जुड़ी चौड़ाई और ऊंचाई वाले एट्रिब्यूट थे. इस वजह से, लेआउट के लोड होने के दौरान वह शिफ़्ट हो गया.

लेख के पेज लोड होने का ऐनिमेशन. जब मुख्य इमेज, पेज के सबसे ऊपर लोड होती है, तो टेक्स्ट नीचे की ओर जाता है.
लेख की मुख्य इमेज की वजह से लेआउट शिफ़्ट होने की वजह.

इमेज में सिर्फ़ चौड़ाई और ऊंचाई एट्रिब्यूट जोड़ने से, यह पक्का हो गया है कि लेआउट शिफ़्ट नहीं हुआ.

मुख्य इमेज के लिए रिज़र्व किए गए प्लेसहोल्डर के साथ, लेख के पेज लोड होने का ऐनिमेशन. पेज के सबसे ऊपर मुख्य इमेज लोड होने पर, लेआउट शिफ़्ट नहीं होता.
लेख का मुख्य इमेज लोड होना, जिसकी वजह से लेआउट शिफ़्ट न हुआ हो.

हेडर, मार्कअप में कॉन्टेंट के नीचे था और उसे सीएसएस का इस्तेमाल करके सबसे ऊपर रखा गया था. मूल आइडिया था, नेविगेशन से पहले कॉन्टेंट लोड होने को प्राथमिकता देना. हालांकि, इस वजह से पेज में कुछ समय के लिए बदलाव आया.

ALT_TEXT_HERE
पेज का हेडर, जो गलत तरीके से लोड हो रहा है.

हेडर को मार्कअप के ऊपर ले जाने से पेज इस शिफ़्ट के बिना रेंडर हो पाता है.

ALT_TEXT_HERE
पेज लोड होने के हेडर की वजह से, लेआउट में अब रुकावट नहीं आती.

एम्बेड की गई चीज़ें

अक्सर इस्तेमाल किए जाने वाले कुछ एम्बेड का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) तय होता है. उदाहरण के लिए, YouTube वीडियो. प्लेयर के लोड होने के दौरान, हम YouTube से थंबनेल लेते हैं और वीडियो लोड होने के दौरान उसका इस्तेमाल प्लेसहोल्डर की तरह करते हैं.

वीडियो प्लेयर लोड होने के दौरान, वीडियो प्लेयर का स्लॉट कम रिज़ॉल्यूशन वाला थंबनेल लोड करता है.
वीडियो प्लेयर लोड होने के दौरान, वीडियो प्लेयर का स्लॉट कम रिज़ॉल्यूशन वाला थंबनेल लोड करता है.

वीडियो पर पड़ने वाले असर को मापना

हमने लेख की शुरुआत में बताए गए टूल का इस्तेमाल करके, सुविधा के स्तर पर असर को आसानी से मेज़र किया. हालांकि, हमें टेंप्लेट और साइट, दोनों लेवल पर सीएलएस को मेज़र करना था. एआई की मदद से, हमने SpeedCurve का इस्तेमाल किया. इससे प्री-प्रोडक्शन और प्रोडक्शन, दोनों में हुए बदलावों की पुष्टि की गई.

SpeedCurve चार्ट, सीएलएस स्कोर में तेज़ी से गिरावट दिखा रहा है.
SpeedCurve का इस्तेमाल करके, एआई की मदद से सीएलएस की प्रोग्रेस को ट्रैक करना.

कोड के प्रोडक्शन में पहुंचने के बाद, हम अपने आरयूएम डेटा (mPulse से मिला) के नतीजों की पुष्टि कर सकते हैं.

सीएलएस स्कोर में गिरावट दिखाने वाला mPulse चार्ट.
बदलाव करने से पहले और बाद में, mPulse RUM डेटा की मदद से पूरी साइट के सीएलएस सुधारों की पुष्टि करना.

आरयूएम डेटा की जांच करने से हमें इस बात का पूरा भरोसा मिलता है कि हम जो बदलाव कर रहे हैं उनका हमारे पाठकों पर अच्छा असर पड़ रहा है.

हमने जो आखिरी आंकड़े देखे हैं वे Google के इकट्ठा किए गए आरयूएम डेटा से जुड़े हैं. यह खास तौर पर अब ज़रूरी है, क्योंकि जल्द ही पेज की रैंकिंग पर इनका असर होगा. शुरुआत में हमने Chrome UX रिपोर्ट का इस्तेमाल, CrUX डैशबोर्ड से मिले हर महीने के ऑरिजिन लेवल के डेटा के लिए किया. साथ ही, पुराने p75 डेटा को पाने के लिए, BigQuery की क्वेरी करके भी ऐसा किया. इस तरह हम आसानी से यह देख पाए कि CrUX से मेज़र किए गए सभी ट्रैफ़िक के लिए, हमारे 75वें पर्सेंटाइल सीएलएस में 0.25 से 0.1 से 250% की बढ़ोतरी हुई और हमारा पासिंग बकेट 57% से 72%तक बढ़ गया.

telegraph.co.uk के लिए p75 CLS दिखाने वाला CrUX डैशबोर्ड 0.1 है.
Crux डैशबोर्ड से मिले नतीजे.
BigQuery, हर महीने 0.25 से 0.1 तक की p75 वैल्यू को बेहतर बना रहा है.
BigQuery, 2021 की अब तक की p75 वैल्यू दिखाता है.

इसके अलावा, हम Chrome UX Report API का इस्तेमाल भी कर सकते थे. साथ ही, टेंप्लेट में बंटे हुए कुछ इंटरनल डैशबोर्ड भी बना सकते थे.

इंटरनल डैशबोर्ड का मतलब है कि आपका औसत स्कोर 76.2 है. सुधार की ज़रूरत 9.3 है, और स्कोर 14.6 खराब है.
Chrome UX रिपोर्ट एपीआई का इस्तेमाल करके, इंटरनल डैशबोर्ड पर हमारे औसत स्कोर और सबसे खराब परफ़ॉर्मेंस वाले पेजों को हाइलाइट किया जाता है. ये डैशबोर्ड, इस टेंप्लेट का इस्तेमाल करके हासिल किए जाते हैं.

सीएलएस रिग्रेशन से बचना

परफ़ॉर्मेंस को बेहतर करने का एक अहम पहलू, रिग्रेशन को रोकना है. हमने अपनी मुख्य मेट्रिक के लिए कुछ बुनियादी परफ़ॉर्मेंस बजट सेट अप किए हैं और उनमें सीएलएस को शामिल किया है.

परफ़ॉर्मेंस बजट का डैशबोर्ड, जो हमारे कुछ ज़्यादा ट्रैफ़िक टेंप्लेट पर सीएलएस को मेज़र करने के लिए, एआई की मदद से की गई जांच दिखाता है. फ़िलहाल, बजट 0.025 पर सेट है.

अगर जांच, बजट से ज़्यादा हो जाती है, तो Slack चैनल पर मैसेज भेजा जाएगा, ताकि हम इस समस्या की जांच कर सकें. हमने साप्ताहिक रिपोर्ट भी सेट की हैं, ताकि टेम्प्लेट का बजट में बने रहने पर भी हमें ऐसे किसी भी बदलाव के बारे में जानकारी रहे जिसका नकारात्मक प्रभाव पड़ा हो.

हम अपने बजट को बढ़ाने की योजना बना रहे हैं, ताकि RUM डेटा के साथ-साथ सिंथेटिक डेटा का भी इस्तेमाल किया जा सके. इसके लिए, mPulse का इस्तेमाल किया जाएगा, ताकि स्टैटिक सूचना और गड़बड़ी की पहचान, दोनों को सेट किया जा सके. इससे हमें किसी भी सामान्य बदलाव के बारे में पता चल जाएगा.

यह ज़रूरी है कि हम सीएलएस को ध्यान में रखते हुए, नई सुविधाओं को आज़माएं. मैंने कई ऐसे बदलावों के बारे में बताया है जिन्हें पाठकों के लिए रिलीज़ किए जाने के बाद हमें ठीक करना पड़ा. आने वाले समय में किसी भी नई सुविधा के समाधान के डिज़ाइन में, लेआउट की स्थिरता पर ध्यान दिया जाएगा, ताकि हम शुरुआत से अनचाहे लेआउट शिफ़्ट से बच सकें.

नतीजा

हमने अब तक जो सुधार किए हैं उन्हें लागू करना काफ़ी आसान है और हमारा काफ़ी असर भी पड़ा है. मैंने इस लेख में जिन बदलावों के बारे में बताया है उन्हें डिलीवर करने में ज़्यादा समय नहीं लगा. इन्हें आम तौर पर इस्तेमाल किए जाने वाले सभी टेंप्लेट पर लागू किया गया. इसका मतलब है कि हमारे पाठकों पर काफ़ी सकारात्मक असर पड़ा.

साइट के अभी भी कुछ क्षेत्रों में सुधार की ज़रूरत है. हम ऐसे तरीके खोज रहे हैं जिनसे हम अपने क्लाइंट-साइड लॉजिक सर्वर-साइड को ज़्यादा कारगर बना सकें. इससे सीएलएस को और बेहतर बनाया जा सकेगा. हम अपनी मेट्रिक को ट्रैक करते रहेंगे और उन पर नज़र रखेंगे, ताकि उन्हें लगातार बेहतर बनाया जा सके और अपने पाठकों को सबसे अच्छा उपयोगकर्ता अनुभव दिया जा सके.