เลือกซื้อความเร็วบน eBay.com

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

ความเร็วเป็นโครงการริเริ่มทั่วทั้งบริษัทของ eBay ในปี 2019 โดยมีทีมต่างๆ มุ่งมั่นที่จะทำให้เว็บไซต์และแอปทำงานได้เร็วที่สุดสำหรับผู้ใช้ eBay พบว่าการปรับปรุงเวลาในการโหลดหน้าค้นหาให้เร็วขึ้นทุกๆ 100 มิลลิวินาทีจะช่วยให้การ "เพิ่มลงในรถเข็น" มีจำนวนเพิ่มขึ้น 0.5%

100มิลลิวินาที

การปรับปรุงเวลาในการโหลด

0.5%

จำนวน "เพิ่มลงในรถเข็น" เพิ่มขึ้น

การใช้งบประมาณด้านประสิทธิภาพ (ซึ่งมาจากการศึกษาคู่แข่งด้วยรายงานประสบการณ์ของผู้ใช้ Chrome) และมุ่งเน้นที่เมตริกประสิทธิภาพที่เน้นผู้ใช้เป็นหลัก ทำให้ eBay ปรับปรุงความเร็วของเว็บไซต์ได้อย่างมาก

ความพยายามในการเพิ่มประสิทธิภาพทําให้หน้าแรกได้รับการปรับปรุง 10%, หน้าค้นหาได้รับการปรับปรุง 13% และหน้าสินค้าได้รับการปรับปรุง 3%
การปรับปรุงความเร็วของ eBay

…และข้อมูลรายงานประสบการณ์ของผู้ใช้ Chrome ก็แสดงให้เห็นถึงการปรับปรุงเหล่านี้ด้วย

ภาพหน้าจอของมุมมอง PageSpeed Insights สำหรับข้อมูลรายงานประสบการณ์ของผู้ใช้ Chrome ซึ่งไฮไลต์ FCP ที่รวดเร็ว 70% และ FID ที่รวดเร็ว 88% สำหรับ eBay.com
ข้อมูลรายงานประสบการณ์ของผู้ใช้ Chrome สําหรับ First Contentful Paint และ First Input Delay สําหรับต้นทาง eBay.com

เรายังต้องดำเนินการอีกมากมาย แต่นี่คือสิ่งที่ eBay ได้เรียนรู้จนถึงตอนนี้

"การตัด" ประสิทธิภาพของเว็บ

การปรับปรุงที่ eBay ทำสำเร็จได้นั้นเกิดจากการลดหรือ "ตัด" (ขนาดและเวลา) ขององค์ประกอบต่างๆ ที่มีส่วนร่วมในเส้นทางของผู้ใช้ โพสต์นี้ครอบคลุมหัวข้อที่เกี่ยวข้องกับชุมชนนักพัฒนาเว็บโดยรวม ไม่ใช่หัวข้อเฉพาะของ eBay

ลดเพย์โหลดในทรัพยากรข้อความทั้งหมด

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

"ตัด" ในที่นี้คือไบต์ที่เสียไปในเพย์โหลดการตอบกลับ

การเพิ่มประสิทธิภาพเส้นทางที่สำคัญสำหรับเนื้อหาด้านบน

พิกเซลบนหน้าจอแต่ละพิกเซลมีความสําคัญไม่เท่ากัน เนื้อหาด้านบนมีความสำคัญมากกว่าเนื้อหาด้านล่าง เว็บแอปและแอป iOS/Android/เดสก์ท็อปทราบเรื่องนี้ดี แต่บริการล่ะ สถาปัตยกรรมบริการของ eBay มีเลเยอร์ที่เรียกว่า Experience Services ซึ่งส่วนหน้า (แอปและเว็บเซิร์ฟเวอร์เฉพาะแพลตฟอร์ม) สื่อสารด้วย เลเยอร์นี้ออกแบบมาโดยเฉพาะให้อิงตามมุมมองหรืออุปกรณ์ ไม่ใช่อิงตามเอนทิตี เช่น สินค้า ผู้ใช้ หรือคําสั่งซื้อ จากนั้น eBay ได้นําเสนอแนวคิดเส้นทางสําคัญสําหรับบริการประสบการณ์ เมื่อได้รับคําขอ บริการเหล่านี้จะดึงข้อมูลสําหรับเนื้อหาด้านบนโฆษณาทันที โดยเรียกใช้บริการอื่นๆ ที่อยู่ต้นทางควบคู่กัน เมื่อข้อมูลพร้อมแล้ว ระบบจะล้างข้อมูลทันที ระบบจะส่งข้อมูลที่อยู่ด้านล่างส่วนที่เป็นโฆษณาในลักษณะเป็นกลุ่มในภายหลังหรือจะโหลดแบบเลื่อนลงก็ได้ ผลลัพธ์ที่ได้คือ ผู้ใช้จะเห็นเนื้อหาด้านบนโฆษณาได้เร็วขึ้น

"การตัด" ในที่นี้คือเวลาที่บริการใช้ในการแสดงเนื้อหาที่เกี่ยวข้อง

การเพิ่มประสิทธิภาพรูปภาพ

รูปภาพเป็นหนึ่งในปัจจัยที่ทําให้หน้าเว็บมีขนาดใหญ่ขึ้น การเพิ่มประสิทธิภาพเล็กๆ น้อยๆ ก็สามารถช่วยได้มาก eBay เพิ่มประสิทธิภาพรูปภาพ 2 อย่าง

ขั้นแรก eBay ได้กำหนดมาตรฐานรูปแบบรูปภาพ WebP สำหรับผลการค้นหาในแพลตฟอร์มทั้งหมด ซึ่งรวมถึง iOS, Android และเบราว์เซอร์ที่รองรับ หน้าผลการค้นหาเป็นหน้าที่มีรูปภาพมากที่สุดใน eBay และ eBay ใช้ WebP อยู่แล้ว แต่ไม่ได้อยู่ในรูปแบบที่สอดคล้องกัน

ภาพหน้าจอของแผงเครือข่ายใน DevTools ที่กรองเพื่อแสดงคำขอรูปภาพ WebP จาก eBay.com
ระบบแสดงรูปภาพ WebP แก่เบราว์เซอร์ที่รองรับบน eBay.com

ประการที่ 2 แม้ว่ารูปภาพข้อมูลผลิตภัณฑ์ของ eBay จะได้รับการเพิ่มประสิทธิภาพอย่างมาก (ทั้งขนาดและรูปแบบ) แต่รูปภาพที่ได้รับการดูแลจัดการก็ไม่มีมาตรฐานเดียวกัน (เช่น โมดูลด้านบนในหน้าแรก) eBay มีรูปภาพที่ได้รับการดูแลจัดการด้วยตนเองจำนวนมาก ซึ่งอัปโหลดผ่านเครื่องมือต่างๆ ก่อนหน้านี้การเพิ่มประสิทธิภาพขึ้นอยู่กับผู้อัปโหลด แต่ตอนนี้ eBay จะบังคับใช้กฎภายในเครื่องมือเพื่อให้รูปภาพทั้งหมดที่อัปโหลดได้รับการเพิ่มประสิทธิภาพอย่างเหมาะสม

"การตัด" ในที่นี้คือจำนวนไบต์รูปภาพที่ส่งไปยังผู้ใช้ซึ่งสิ้นเปลือง

การคาดการณ์การโหลดล่วงหน้าของชิ้นงานแบบคงที่

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

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

eBay ทำการคาดการณ์การเรียกข้อมูลล่วงหน้าของชิ้นงานแบบคงที่ Home จะโหลดชิ้นงานล่วงหน้าสําหรับ Search, Search จะโหลดชิ้นงานล่วงหน้าสําหรับ Item และอื่นๆ เรากำลังพิจารณาการเรียกข้อมูลล่วงหน้าที่อิงตามแมชชีนเลิร์นนิงและการวิเคราะห์

"การตัด" ในที่นี้คือเวลาของเครือข่ายสําหรับชิ้นงานแบบคงที่ของ CSS และ JavaScript ในการนําทางครั้งแรก

การเรียกข้อมูลผลการค้นหายอดนิยมล่วงหน้า

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

ระดับแรกเกิดขึ้นที่ฝั่งเซิร์ฟเวอร์ ซึ่งบริการรายการจะแคชรายการยอดนิยม 10 รายการในผลการค้นหา เมื่อผู้ใช้ไปที่รายการใดรายการหนึ่ง eBay จะประหยัดเวลาในการประมวลผลเซิร์ฟเวอร์ แอปเฉพาะแพลตฟอร์มใช้ประโยชน์จากการแคชฝั่งเซิร์ฟเวอร์และพร้อมให้บริการทั่วโลก

อีกระดับหนึ่งเกิดขึ้นในแคชของเบราว์เซอร์ ซึ่งพร้อมให้บริการในออสเตรเลีย การดึงข้อมูลรายการล่วงหน้าเป็นการเพิ่มประสิทธิภาพขั้นสูงเนื่องจากรายการมีลักษณะแบบไดนามิก นอกจากนี้ ยังมีรายละเอียดปลีกย่อยอีกมากมาย เช่น การแสดงผลของหน้าเว็บ ความจุ รายการการประมูล และอื่นๆ ดูข้อมูลเพิ่มเติมได้ในงานนำเสนอของ Meetup เกี่ยวกับวิศวกรรมด้านประสิทธิภาพของ LinkedIn หรือติดตามการโพสต์บล็อกโดยละเอียดเกี่ยวกับหัวข้อนี้จากวิศวกรของ eBay

eBay จะโหลดรายการยอดนิยม 5 รายการในหน้าผลการค้นหาล่วงหน้าเพื่อให้โหลดรายการอื่นๆ ได้อย่างรวดเร็ว ซึ่งเกิดขึ้นในช่วงเวลาที่ไม่ได้ใช้งานด้วย requestIdleCallback() ส่งผลให้ค่ามัธยฐานของเวลาเหนือเส้นแบ่งหน้าเร็วขึ้น 759 มิลลิวินาที ซึ่งเป็นเมตริกที่กําหนดเองซึ่งคล้ายกับ First Meaningful Paint eBay พบว่าการโหลดล่วงหน้าส่งผลดีต่อ Conversion

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

การดาวน์โหลดรูปภาพการค้นหาอย่างเร่งด่วน

ในหน้าผลการค้นหา เมื่อมีการค้นหาในระดับสูง ระบบจะดำเนินการ 2 อย่าง ขั้นตอนแรกคือขั้นตอนการแสดงผล/การจัดอันดับ ซึ่งระบบจะแสดงรายการที่เกี่ยวข้องที่สุดซึ่งตรงกับคำค้นหา ขั้นตอนที่ 2 คือการเพิ่มรายการที่เรียกคืนด้วยข้อมูลเพิ่มเติมที่เกี่ยวข้องกับบริบทของผู้ใช้ เช่น ค่าจัดส่ง ตอนนี้ eBay จะส่งรูปภาพสินค้า 10 รายการแรกไปยังเบราว์เซอร์พร้อมกันเป็นกลุ่มพร้อมกับส่วนหัวทันที เพื่อให้การดาวน์โหลดเริ่มได้ก่อนที่มาร์กอัปที่เหลือจะมาถึง รูปภาพจึงจะปรากฏเร็วขึ้น การเปลี่ยนแปลงนี้เปิดตัวแล้วทั่วโลกสำหรับแพลตฟอร์มเว็บ

"การตัด" ที่นี่คือเวลาเริ่มต้นการดาวน์โหลดรูปภาพผลการค้นหา

การแคชไปยังเซิร์ฟเวอร์ปลายทางสําหรับข้อมูลการแนะนำอัตโนมัติ

เมื่อผู้ใช้พิมพ์ตัวอักษรในช่องค้นหา ระบบจะแสดงคำแนะนำแบบป๊อปอัป คำแนะนำเหล่านี้จะไม่เปลี่ยนแปลงสำหรับชุดตัวอักษรอย่างน้อย 1 วัน เนื้อหาเหล่านี้เหมาะอย่างยิ่งที่จะแคชและแสดงจาก CDN (สูงสุด 24 ชั่วโมง) แทนที่จะส่งคำขอไปยังศูนย์ข้อมูล ตลาดต่างประเทศจะได้รับประโยชน์อย่างยิ่งจากการแคช CDN

ภาพหน้าจอของช่องค้นหาของ eBay ที่แสดงคําแนะนําการเติมข้อความอัตโนมัติสําหรับคําค้นหา

แต่มีข้อจํากัดอยู่ eBay มีองค์ประกอบบางอย่างของการปรับตามโปรไฟล์ของผู้ใช้ในป๊อปอัปคำแนะนำ ซึ่งแคชได้ไม่มีประสิทธิภาพ แต่โชคดีที่ปัญหานี้ไม่ได้เกิดขึ้นในแอปเฉพาะแพลตฟอร์ม เนื่องจากอินเทอร์เฟซผู้ใช้สำหรับการปรับเปลี่ยนในแบบของคุณและคำแนะนำสามารถแยกกันได้ สำหรับเว็บในตลาดต่างประเทศ เวลาในการตอบสนองสำคัญกว่าประโยชน์เล็กๆ น้อยๆ ของการปรับเปลี่ยนในแบบของคุณ เมื่อปัญหานี้ได้รับการแก้ไขแล้ว ตอนนี้ eBay แสดงการแนะนำอัตโนมัติจากแคช CDN ทั่วโลกสำหรับแอปเฉพาะแพลตฟอร์มและตลาดที่ไม่ใช่สหรัฐอเมริกาสำหรับ eBay.com

"การตัด" ในที่นี้คือเวลาในการตอบสนองของเครือข่ายและเวลาในการประมวลผลของเซิร์ฟเวอร์สําหรับการแนะนำอัตโนมัติ

การแคชไปยังเซิร์ฟเวอร์ปลายทางสําหรับผู้ใช้หน้าแรกที่ไม่รู้จัก

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

eBay ตัดสินใจแคชเนื้อหาของผู้ใช้ที่ไม่รู้จัก (HTML) ในเครือข่าย Edge (PoPs) ของตนเป็นระยะเวลาสั้นๆ ตอนนี้ผู้ใช้ครั้งแรกจะได้รับเนื้อหาในหน้าแรกจากเซิร์ฟเวอร์ที่อยู่ใกล้ๆ แทนที่จะได้รับจากศูนย์ข้อมูลที่ห่างไกล eBay ยังทดสอบฟีเจอร์นี้ในตลาดต่างประเทศอยู่ ซึ่งจะส่งผลได้มากกว่า

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

การเพิ่มประสิทธิภาพสําหรับแพลตฟอร์มอื่นๆ

การปรับปรุงการแยกวิเคราะห์แอป iOS/Android

แอป iOS/Android สื่อสารกับบริการแบ็กเอนด์ซึ่งมีรูปแบบการตอบกลับเป็น JSON โดยทั่วไป เพย์โหลด JSON เหล่านี้อาจมีขนาดใหญ่ eBay ได้เปิดตัวอัลกอริทึมการแยกวิเคราะห์ที่มีประสิทธิภาพซึ่งเพิ่มประสิทธิภาพให้กับเนื้อหาที่ต้องแสดงทันที แทนที่จะแยกวิเคราะห์ JSON ทั้งหมดเพื่อแสดงผลบางอย่างบนหน้าจอ

ตอนนี้ผู้ใช้จะเห็นเนื้อหาได้เร็วขึ้น นอกจากนี้ สําหรับแอป Android ทาง eBay จะเริ่มเริ่มต้นคอนโทรลเลอร์มุมมองการค้นหาทันทีที่ผู้ใช้เริ่มพิมพ์ในช่องค้นหา (iOS มีการเพิ่มประสิทธิภาพนี้แล้ว) ซึ่งก่อนหน้านี้จะเกิดขึ้นหลังจากที่ผู้ใช้กดปุ่มค้นหาเท่านั้น ตอนนี้ผู้ใช้จะไปยังผลการค้นหาได้เร็วขึ้น "เวลาในการตัด" หมายถึงเวลาที่อุปกรณ์ใช้ในการแสดงเนื้อหาที่เกี่ยวข้อง

การปรับปรุงเวลาเริ่มต้นของแอป Android

ซึ่งจะใช้กับการเพิ่มประสิทธิภาพเวลาการเริ่มแอปแบบ Cold Start สําหรับแอป Android เมื่อแอปเริ่มทำงานแบบ Cold Start จะมีการเริ่มต้นจำนวนมากทั้งในระดับระบบปฏิบัติการและระดับแอปพลิเคชัน การลดเวลาในการเริ่มต้นที่ระดับแอปพลิเคชันช่วยให้ผู้ใช้เห็นหน้าจอหลักได้เร็วขึ้น eBay ได้ทำการโปรไฟล์และพบว่าการเริ่มต้นบางอย่างไม่จำเป็นต่อการแสดงเนื้อหา และสามารถดำเนินการแบบล่าช้าได้

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

สรุป

"การลด" ประสิทธิภาพทั้งหมดที่ eBay ทำร่วมกันมีส่วนทำให้ตัวเลขเพิ่มขึ้น และเกิดขึ้นในช่วงเวลาหนึ่งๆ การเปิดตัวเกิดขึ้นตลอดทั้งปี โดยแต่ละรุ่นจะลดเวลาในการตอบสนองได้หลายสิบมิลลิวินาที จนในที่สุดก็มาถึงจุดที่ eBay อยู่ในปัจจุบัน

ภาพหน้าจอของรายงาน UX ของ Chrome ที่แสดงการปรับปรุงข้อมูลในช่องสำหรับ eBay.com
ผลที่ความพยายามในการเพิ่มความเร็วของ eBay มีต่อเมตริกภาคสนามเมื่อเวลาผ่านไป ดังที่แสดงในแดชบอร์ดรายงาน UX ของ Chrome

ประสิทธิภาพคือฟีเจอร์และข้อได้เปรียบในการแข่งขัน ประสบการณ์การใช้งานที่เพิ่มประสิทธิภาพแล้วจะช่วยให้ผู้ใช้มีส่วนร่วมมากขึ้น มี Conversion และ ROI สูงขึ้น ในกรณีของ eBay การเพิ่มประสิทธิภาพเหล่านี้มีตั้งแต่งานที่ทําได้ง่ายไปจนถึงงานที่ซับซ้อน

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มความเร็วด้วยวิธีต่างๆ และคอยติดตามบทความโดยละเอียดเพิ่มเติมจากวิศวกรของ eBay เกี่ยวกับงานด้านประสิทธิภาพในอนาคตอันใกล้