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

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

विज़ुअल स्टैबिलिटी से जुड़ी चुनौती

लेआउट में होने वाले बदलाव, काफ़ी परेशानी पैदा कर सकते हैं. 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 वेबसाइट का WebPageTest फ़िल्मस्ट्रिप व्यू, जिसमें लेआउटशिफ़्ट को लाल ओवरले से हाइलाइट किया गया है.
WebPageTest, लेआउट के बदलने की जगह को हाइलाइट कर रहा है.

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

लेआउट शिफ़्ट को कम करना

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

विज्ञापन

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

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

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

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

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

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

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

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

इमेज

वेबसाइट पर मौजूद कई इमेज, धीरे-धीरे लोड होती हैं. साथ ही, उनके लिए जगह भी पहले से तय होती है.

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

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

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

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

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

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

ALT_TEXT_HERE
पेज का हेडर ठीक से लोड नहीं हो रहा है.

हेडर को मार्कअप के सबसे ऊपर ले जाने से, पेज को इस बदलाव के बिना रेंडर किया जा सका.

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

एम्बेड करता है

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

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

असर का आकलन करना

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

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

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

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

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

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

CrUX डैशबोर्ड में, telegraph.co.uk के लिए 75वां पर्सेंटाइल सीएलएस 0.1 है.
Crux डैशबोर्ड के नतीजे.
BigQuery में, हर महीने p75 वैल्यू में सुधार दिख रहा है. यह वैल्यू 0.25 से 0.1 तक पहुंच गई है.
BigQuery रन, जिसमें 2021 से अब तक की p75 वैल्यू दिख रही हैं.

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

इंटरनल डैशबोर्ड, जिसमें 76.2 का औसत अच्छा स्कोर, 9.3 का सुधार की ज़रूरत है स्कोर, और 14.6 का खराब स्कोर दिख रहा है.
Chrome UX Report API का इस्तेमाल करने वाले इंटरनल डैशबोर्ड, जो हमारे औसत स्कोर और उस टेंप्लेट का इस्तेमाल करके सबसे खराब परफ़ॉर्म करने वाले पेजों को हाइलाइट करते हैं.

सीएलएस में गिरावट से बचना

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

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

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

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

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

नतीजा

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

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