The Economic Times ผ่านเกณฑ์ Core Web Vitals และได้รับอัตราตีกลับที่ดีขึ้น 43% โดยรวมได้อย่างไร

การเพิ่มประสิทธิภาพ Core Web Vitals ในเว็บไซต์ The Economic Times ปรับปรุงประสบการณ์ของผู้ใช้ได้อย่างมากและลดอัตราตีกลับของทั้งเว็บไซต์ได้เป็นอย่างมาก

Anshu Sharma
Anshu Sharma
Prashant Mishra
Prashant Mishra
Sumit Gugnani
Sumit Gugnani

ด้วยความเร็วอินเทอร์เน็ตที่เพิ่มขึ้นในแต่ละวัน ผู้ใช้คาดหวังให้เว็บไซต์ตอบสนองและทำงานได้เร็วกว่าที่เคย The Economic Times มีผู้ใช้ที่ใช้งานอยู่รายเดือนกว่า 45 ล้านคน การเพิ่มประสิทธิภาพสำหรับ Core Web Vitals ทั่วทั้งโดเมน รวมถึงในหน้า AMP และหน้าที่ไม่ใช่ AMP ช่วยให้เราลดอัตราตีกลับและปรับปรุงประสบการณ์การอ่านได้อย่างมาก

การวัดผลกระทบ

เรามุ่งเน้นที่ Largest Contentful Paint (LCP) และ Cumulative Layout Shift (CLS) เนื่องจากการแสดงผลเหล่านี้มีความสำคัญมากที่สุดในการมอบประสบการณ์การอ่านที่ยอดเยี่ยมแก่ผู้ใช้ หลังจากใช้การแก้ไขประสิทธิภาพต่างๆ ตามที่อธิบายไว้ด้านล่าง The Economic Times ก็สามารถปรับปรุงเมตริกรายงานการทดสอบของผู้ใช้ Chrome (CrUX) ได้อย่างมากภายในไม่กี่เดือน

โดยรวมแล้ว CLS เพิ่มขึ้น 250% จาก 0.25 เป็น 0.09 โดยรวมแล้ว LCP ดีขึ้น 80% จาก 4.5 วินาทีเป็น 2.5 วินาที

นอกจากนี้ ค่า LCP ในช่วง "แย่" ลดลง 33% ตั้งแต่เดือนตุลาคม 2020 ถึงกรกฎาคม 2021 ดังนี้

การกระจาย LCP ที่จัดกลุ่มตามเดือน เริ่มตั้งแต่เดือนตุลาคม 2020 และสิ้นสุดในเดือนกรกฎาคม 2021 จำนวนค่า LCP ที่จัดประเภทเป็น "ช้า" ลดลงจาก 15.03% เป็น 10.08%

นอกจากนี้ ค่า CLS ในช่วง "แย่" ยังลดลง 65% และค่า CLS ในช่วง "ดี" เพิ่มขึ้น 20% ในกรอบเวลาเดียวกัน

การกระจาย CLS ที่จัดกลุ่มตามเดือน เริ่มตั้งแต่เดือนตุลาคม 2020 และสิ้นสุดในเดือนกรกฎาคม 2021 จำนวนค่า CLS ที่จัดเป็นประเภท "แย่" ลดลงจาก 25.92% เป็น 9% และจำนวนค่า CLS ที่จัดอยู่ในประเภท "ดี" เพิ่มขึ้นจาก 62.62% เป็น 76.5%

ผลที่ได้คือ The Economic Times ซึ่งก่อนหน้านี้ไม่เป็นไปตามเกณฑ์ของ Core Web Vitals ขณะนี้ได้ผ่านเกณฑ์ Core Web Vitals ทั่วทั้งต้นทางและลดอัตราตีกลับโดยรวมลง 43%

ภาพเคลื่อนไหวก่อนและหลังหน้าบทความของ The Economic Times

LCP คืออะไรและเราปรับปรุงอย่างไร

องค์ประกอบที่ใหญ่ที่สุดคือองค์ประกอบที่เกี่ยวข้องมากที่สุดสำหรับการปรับปรุงประสบการณ์ของผู้ใช้และการจดจำความเร็วในการโหลด เมตริกประสิทธิภาพ เช่น First Contentful Paint (FCP) จะบันทึกเฉพาะประสบการณ์เริ่มต้นของการโหลดหน้าเว็บเท่านั้น ในทางกลับกัน LCP จะรายงานเวลาในการแสดงผลของรูปภาพ ข้อความ หรือวิดีโอขนาดใหญ่ที่สุดที่ผู้ใช้เห็น

นอกจากการเปลี่ยนไปใช้ผู้ให้บริการ DNS ที่เร็วขึ้นและการเพิ่มประสิทธิภาพรูปภาพแล้ว ต่อไปนี้คือเทคนิคส่วนหนึ่งที่เราใช้เพื่อปรับปรุง LCP

คำขอที่สำคัญก่อน

เนื่องจากเบราว์เซอร์ที่ทันสมัยทั้งหมดจำกัดจำนวนคำขอพร้อมกัน นักพัฒนาแอปจึงต้องให้ความสำคัญกับการโหลดเนื้อหาสำคัญก่อน ในการโหลดหน้าเว็บที่ซับซ้อน เราต้องดาวน์โหลดเนื้อหาต่างๆ เช่น องค์ประกอบส่วนหัว, CSS, ทรัพยากร JavaScript, รูปภาพหลัก, เนื้อหาบทความ, ความคิดเห็น, ข่าวสารอื่นๆ ที่เกี่ยวข้อง, ส่วนท้าย และโฆษณา เราประเมินองค์ประกอบที่จำเป็นสำหรับ LCP และกำหนดให้โหลดรายการเหล่านั้นก่อนเพื่อปรับปรุง LCP และเรายังเลื่อนการเรียกที่ไม่ได้เป็นส่วนหนึ่งของการแสดงหน้าเว็บเริ่มต้นออกไปด้วย

ลักษณะข้อความ

เราทดสอบกับพร็อพเพอร์ตี้ font-display เนื่องจากจะส่งผลต่อทั้ง LCP และ CLS เราลองใช้ font-display: auto; แล้ว จากนั้นเปลี่ยนไปใช้ font-display: swap; ซึ่งจะแสดงข้อความในตอนแรกที่มีแบบอักษรที่ตรงกันและเหมาะสมที่สุด จากนั้นจึงเปลี่ยนเป็นแบบอักษรเมื่อดาวน์โหลดมา ซึ่งทำให้การแสดงผลข้อความของเราเป็นไปอย่างรวดเร็วโดยไม่ขึ้นอยู่กับความเร็วของเครือข่าย

การบีบอัดที่ดียิ่งขึ้น

Brotli เป็นอัลกอริทึมในการบีบอัดอีกทางเลือกของ Gzip และ Deflate ที่พัฒนาโดย Google เราแทนที่แบบอักษรและเนื้อหา และเปลี่ยนการบีบอัดเซิร์ฟเวอร์จาก Gzip เป็น Brotli เพื่อให้มีขอบเขตการใช้งานที่เล็กลง

  • ไฟล์ JavaScript มีขนาดเล็กกว่า Gzip 15%
  • ไฟล์ HTML มีขนาดเล็กกว่า Gzip 18%
  • ไฟล์ CSS และแบบอักษรมีขนาดเล็กกว่า Gzip 17%

เชื่อมต่อกับโดเมนของบุคคลที่สามล่วงหน้า

คุณควรใช้ preconnect อย่างรอบคอบเนื่องจากอาจทำให้ CPU ทำงานหนักเกินไปและทำให้ทรัพยากรสำคัญอื่นๆ ล่าช้าลง โดยเฉพาะกับการเชื่อมต่อที่ปลอดภัย

แต่หากทราบว่าจะมีการดึงข้อมูลทรัพยากรในโดเมนของบุคคลที่สาม ระบบจะใช้ preconnect แทน แต่หากเกิดขึ้นเป็นครั้งคราวในเว็บไซต์ที่มีการเข้าชมสูง preconnect อาจทริกเกอร์การทำงาน TCP และ TLS ที่ไม่จำเป็น ดังนั้น dns-prefetch จึงเหมาะสำหรับทรัพยากรของบุคคลที่สาม เช่น โซเชียลมีเดีย ข้อมูลวิเคราะห์ และอื่นๆ เพื่อดำเนินการค้นหา DNS ล่วงหน้า

แบ่งโค้ดออกเป็นส่วนๆ

ในส่วนหัวของเว็บไซต์ เราโหลดเฉพาะทรัพยากรที่มีส่วนสำคัญของตรรกะทางธุรกิจหรือสำคัญสำหรับการแสดงผลหน้าครึ่งหน้าบนเท่านั้น นอกจากนี้ เรายังแบ่งโค้ดออกเป็นส่วนๆ ด้วยการแยกโค้ด ซึ่งช่วยเราปรับปรุง LCP ของหน้าเว็บให้ดียิ่งขึ้น

การแคชที่ดีขึ้น

สำหรับเส้นทางส่วนหน้าทั้งหมด เราได้เพิ่มเลเยอร์ Redis ซึ่งจะแสดงเทมเพลตจากแคช ซึ่งจะลดเวลาในการคำนวณบนเซิร์ฟเวอร์และสร้าง UI ทั้งหมดในแต่ละคำขอ ซึ่งเป็นการลด LCP ในคำขอที่ตามมา

สรุปเป้าหมายและความสำเร็จของ LCP

ก่อนเริ่มโครงการเพิ่มประสิทธิภาพ ทีมได้เปรียบเทียบคะแนน LCP ที่ 4.5 วินาที (สำหรับเปอร์เซ็นไทล์ที่ 75 ของผู้ใช้โดยอิงตามข้อมูลช่องในรายงาน CrUX) หลังโปรเจ็กต์การเพิ่มประสิทธิภาพ ระยะเวลาลดลงเหลือ 2.5 วินาที

การกระจาย LCP ตั้งแต่เดือนกันยายน 2020 ถึงมิถุนายน 2021 โดยรวมแล้ว เปอร์เซ็นไทล์ที่ 75 ของค่า LCP ที่สังเกตในรายงานประสบการณ์ของผู้ใช้ Chrome แสดงให้เห็นว่าค่า LCP ที่ "ไม่ดี" ลดลง 8.97% เวลา LCP ที่ลดลงโดยรวมที่เปอร์เซ็นไทล์ที่ 75 คือ 200 มิลลิวินาที โดย 77.63% ของค่า LCP อยู่ในช่วง "ดี"
แหล่งที่มา: รายงาน CrUX ของ LCP โดยรวมของ The Economic Times

CLS คืออะไรและเราปรับปรุงอย่างไร

คุณเคยสังเกตเห็นการเคลื่อนไหวที่ไม่คาดคิดของเนื้อหาของหน้าเว็บขณะเรียกดูเว็บไซต์หรือไม่ สาเหตุหนึ่งคือการโหลดสื่อแบบไม่พร้อมกัน (รูปภาพ วิดีโอ โฆษณา ฯลฯ) บนหน้าเว็บที่มีขนาดที่ไม่รู้จัก ทันทีที่ทรัพยากรสื่อโหลดขึ้นมา ทรัพยากรจะเปลี่ยนเลย์เอาต์ของหน้า

เราจะกล่าวถึงมาตรการต่างๆ ที่เราใช้เพื่อปรับปรุง CLS ในเว็บไซต์ The Economic Times

ใช้ตัวยึดตำแหน่ง

เราใช้ตัวยึดตำแหน่งที่มีการจัดรูปแบบสำหรับหน่วยโฆษณาและองค์ประกอบสื่อของมิติข้อมูลที่รู้จักเพื่อหลีกเลี่ยงการเปลี่ยนเลย์เอาต์เมื่อไลบรารีโฆษณาโหลดและแสดงโฆษณาในหน้าเว็บ เพื่อให้มั่นใจว่าการเปลี่ยนแปลงเลย์เอาต์จะถูกกำจัดออกโดยการจองพื้นที่สำหรับโฆษณา

การเปรียบเทียบแบบแสดงคู่กันของเว็บไซต์ The Economic Times ซึ่งแสดงบนโทรศัพท์มือถือ ทางด้านซ้าย ตัวยึดตำแหน่งสีเทาสงวนไว้สำหรับรูปภาพหลักของบทความ ทางด้านขวา ตัวยึดตำแหน่งจะถูกแทนที่ด้วยรูปภาพที่โหลด

มิติข้อมูลคอนเทนเนอร์ที่กำหนด

เราได้ระบุขนาดที่ชัดเจนสำหรับรูปภาพและคอนเทนเนอร์ทั้งหมดเพื่อให้เครื่องมือของเบราว์เซอร์ไม่ต้องคำนวณความกว้างและความสูงขององค์ประกอบ DOM เมื่อองค์ประกอบเหล่านั้นพร้อมใช้งาน เพื่อหลีกเลี่ยงการเปลี่ยนเลย์เอาต์ที่ไม่จำเป็นและใช้การทาสีเพิ่มเติม

สรุปเป้าหมายและความสำเร็จใน CLS

ก่อนเริ่มโครงการเพิ่มประสิทธิภาพ ทีมได้เปรียบเทียบคะแนน CLS ที่ 0.25 เราลดได้อย่างมากถึง 90% เหลือ 0.09

การกระจาย CLS ที่แสดงในรายงานประสบการณ์ของผู้ใช้ Chrome 76% ของค่า CLS คือ "ดี", 15% เป็น "พอใช้" และ 9% เป็น "แย่" เปอร์เซ็นไทล์ที่ 75 ของประสบการณ์ของผู้ใช้โดยรวมในเว็บไซต์ The Economic Times พบ CLS ที่ 0.09

First Input Delay (FID) คืออะไร และเราปรับปรุงฟีเจอร์นี้อย่างไร

First Input Delay คือเมตริกที่ติดตามการตอบสนองของเว็บไซต์ต่อข้อมูลจากผู้ใช้ สาเหตุหลักของคะแนน FID ที่ต่ำคือ JavaScript มีภาระงานหนักที่ทำให้เทรดหลักของเบราว์เซอร์ไม่ว่าง ซึ่งอาจทำให้การโต้ตอบของผู้ใช้ล่าช้า เราได้ปรับปรุง FID ในหลายด้าน

แยกงาน JavaScript ที่ใช้เวลานาน

งานที่ใช้เวลานานคืองานที่ยาว 50 มิลลิวินาทีขึ้นไป งานที่ใช้เวลานานจะอยู่ในเทรดหลักของเบราว์เซอร์และป้องกันไม่ให้ตอบสนองต่อข้อมูลจากผู้ใช้ เราแบ่งงานที่ใช้เวลานานออกเป็นงานย่อยๆ ตามที่ผู้ใช้ร้องขอได้ ซึ่งช่วยลดการขยายของ JavaScript

เวลา CPU ที่แบ่งตามประเภทกิจกรรมในแผงประสิทธิภาพของเครื่องมือสำหรับนักพัฒนาเว็บของ Chrome ใช้เวลา 143 มิลลิวินาทีที่ใช้ในการกำหนดเวลาการโหลดทรัพยากร ใช้เวลา 4,553 มิลลิวินาทีใน JavaScript ใช้เวลา 961 มิลลิวินาทีในการทำงานการแสดงผล ใช้เวลาทาสี 191 มิลลิวินาที 1,488 มิลลิวินาทีสำหรับงานของระบบ และไม่มีการใช้งาน 3,877 มิลลิวินาที กรอบเวลาทั้งหมดคือ 11,212 มิลลิวินาที

เลื่อน JavaScript ที่ไม่ได้ใช้

เราให้ความสำคัญกับเนื้อหาของหน้าเว็บมากกว่าสคริปต์ของบุคคลที่สาม เช่น การวิเคราะห์ เพื่อให้หน้าเว็บตอบสนองมากยิ่งขึ้น แต่บางไลบรารีก็มีข้อจำกัดเนื่องจากต้องโหลดในเอกสาร <head> เพื่อให้สามารถติดตามเส้นทางของผู้ใช้ได้อย่างถูกต้อง

ลดการใช้โพลีฟิล

เราลดการพึ่งพา Polyfill และไลบรารีบางรายการลง เนื่องจากเบราว์เซอร์ให้การสนับสนุน API ที่ทันสมัย และมีผู้ใช้เบราว์เซอร์รุ่นเก่า เช่น Internet Explorer น้อยลง

โฆษณาการโหลดแบบ Lazy Loading

การโหลดโฆษณาครึ่งหน้าล่างแบบ Lazy Loading ช่วยลดเวลาในการบล็อกเทรดหลัก และปรับปรุง FID ให้ดีขึ้นด้วย

สรุปเป้าหมายและความสำเร็จของ FID

จากการทดสอบตามปกติ เราสามารถลด FID ของเราจาก 200 มิลลิวินาทีเหลือน้อยกว่า 50 มิลลิวินาทีในวันนี้

การกระจาย FID ที่แสดงในรายงานประสบการณ์ของผู้ใช้ Chrome 86% ของค่า CLS คือ &quot;ดี&quot;, 10% เป็น &quot;พอใช้&quot; และ 4% เป็น &quot;แย่&quot; เปอร์เซ็นไทล์ที่ 75 ของประสบการณ์ของผู้ใช้โดยรวมในเว็บไซต์ The Economic Times พบว่า FID อยู่ที่ 44 มิลลิวินาที

การป้องกันการถดถอย

The Economics Times วางแผนที่จะเปิดตัวการตรวจสอบประสิทธิภาพโดยอัตโนมัติในเวอร์ชันที่ใช้งานจริงเพื่อหลีกเลี่ยงความถดถอยด้านประสิทธิภาพของหน้าเว็บ บริษัทวางแผนที่จะประเมิน Lighthouse-CI เพื่อทำการทดสอบในห้องทดลองแบบอัตโนมัติ ซึ่งสามารถป้องกันการถดถอยในสายงานการผลิตได้