Back-Forward Cache ช่วย Yahoo! ได้อย่างไร JAPAN News มีรายได้เพิ่มขึ้น 9% ในอุปกรณ์เคลื่อนที่

Yuriko Hirota
Yuriko Hirota

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

บทความ web.dev เกี่ยวกับ bfcache

Yahoo! JAPAN News เป็นหนึ่งในแพลตฟอร์มข่าวที่ได้รับความนิยมสูงสุดในญี่ปุ่น ได้ทุ่มเทปรับปรุงอัตรา Hit ของ bfcache และส่งผลให้ประสบการณ์ของผู้ใช้และธุรกิจได้รับการปรับปรุงอย่างมาก กล่าวโดยละเอียดคือ ผลการทดสอบ A/B ที่ทําแสดงให้เห็นว่าหน้าเว็บที่ใช้ bfcache มีรายได้จากโฆษณาเพิ่มขึ้น 9%

กรณีศึกษานี้จะอธิบายวิธีที่ Yahoo! JAPAN News นำตัวบล็อกสำหรับ bfcache ออก และวิธีที่ bfcache ช่วยปรับปรุงประสบการณ์ของผู้ใช้อย่างมาก

การนำตัวบล็อกสำหรับ bfcache ออก

bfcache พร้อมใช้งานตั้งแต่ Chrome 86 และพร้อมใช้งานบนเบราว์เซอร์รุ่นใหม่ทั้งหมดเช่นกัน อย่างไรก็ตาม หากต้องการใช้ประโยชน์จาก bfcache อย่างเต็มที่ คุณจะต้องนำตัวบล็อกที่อาจเกิดขึ้นในเว็บไซต์ออก ปัจจัยหลักที่บล็อกซึ่ง Yahoo! JAPAN News พบปัญหาต่อไปนี้

  1. การใช้ตัวแฮนเดิล unload
  2. การใช้คำสั่ง no-store ในส่วนหัว Cache-control

คุณสามารถตรวจสอบตัวบล็อกหลักที่มีอยู่ในเว็บไซต์ได้โดยไปที่ เครื่องมือสำหรับนักพัฒนาเว็บใน Chrome > แอปพลิเคชัน > แคชย้อนกลับ/ส่งต่อ (รายละเอียดเพิ่มเติม) หรือใช้ notRestoredReasons API เพื่อดูภาพรวมที่ครอบคลุมมากขึ้นเกี่ยวกับตัวบล็อกตามการใช้งานจริงในสนาม

วิธีที่ Yahoo! JAPAN News ได้นําตัวบล็อกออกแล้ว

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

หากคุณมีส่วนหัว CCNS นี่เป็นโอกาสที่ดีในการพูดคุยเกี่ยวกับกลยุทธ์ Cache-control ที่เหมาะกับเว็บไซต์ของคุณ ความแตกต่างหลักระหว่าง no-store กับ no-cache มีดังนี้

Cache-control: no-store Cache-control: no-cache
  • ไม่อนุญาตให้เก็บการตอบกลับไว้ในแคช
  • ดังนั้น ระบบจะดึงข้อมูลการตอบกลับทั้งหมดในคําขอแต่ละรายการ
  • ควรใช้สำหรับคำตอบส่วนตัว
  • ระบบอนุญาตให้จัดเก็บคำตอบไว้ในแคช ตราบใดที่มีการตรวจสอบคำตอบกับเซิร์ฟเวอร์อีกครั้งก่อนใช้งานแต่ละครั้ง
  • หน้านี้ควรเป็นหน้าคำตอบสาธารณะที่คุณต้องการตรวจสอบอีกครั้งทุกครั้ง (เช่น หน้าแรกของเว็บไซต์ข่าว แม้ว่าเวลาในการแคชที่สั้นมากจะช่วยปรับปรุงประสิทธิภาพและลดภาระงานจากเซิร์ฟเวอร์หลักได้ก็ตาม)

หากคุณสนใจดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือก Cache-control โฟลว์ชาร์ตนี้ช่วยคุณได้

ผลกระทบของ bfcache ต่อตัวเลข

Yahoo! จะวัดผลลัพธ์ของ bfcache JAPAN News ทำการทดสอบ A/B เป็นเวลา 2 สัปดาห์ โดยแสดงหน้าเว็บเวอร์ชันที่มีการแก้ไข bfcache ให้กับกลุ่มหนึ่ง และแสดงหน้าเว็บเวอร์ชันที่ไม่มีสิทธิ์ใช้ bfcache ให้กับอีกกลุ่มหนึ่ง ทีมเลือกเส้นทาง URL ที่มีการเข้าชมจำนวนมากเพื่อให้การทดสอบได้ผลลัพธ์ที่มีความหมาย ไม่มีความแตกต่างด้านภาพหรือการทำงานอื่นๆ ระหว่างทั้ง 2 เวอร์ชัน

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

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

รายละเอียดเกี่ยวกับผลกระทบที่ Yahoo! สังเกตได้มีดังนี้ JAPAN News กับการทดสอบ A/B ของ bfcache (ดูข้อมูลเพิ่มเติมได้ในบทความกรณีศึกษา)

เมตริก % การเพิ่มขึ้น (อุปกรณ์เคลื่อนที่) % การเพิ่มขึ้น (เดสก์ท็อป)
อัตรา Hit ของ bfcache +54.03 จุด (0.04% → 54.07%) +47.28 จุด (0.02% → 47.30%)
การดูหน้าเว็บ +2.26% +0.65%
รายได้จากโฆษณา +9.0% +0.6%

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

bfcache ช่วยปรับปรุงประสบการณ์ของผู้ใช้บนเว็บไซต์ให้ราบรื่น

เมื่อหน้าเว็บโหลดทันที การไปยังส่วนต่างๆ จะราบรื่นยิ่งขึ้น

ใน Yahoo! JAPAN News ระบุเส้นทางหลักอย่างหนึ่งของผู้ใช้ดังนี้

  1. ไปที่รายการบทความ
  2. คลิกบทความที่ต้องการอ่าน
  3. กลับไปที่รายการบทความ
  4. คลิกบทความอื่นเพื่ออ่าน

ก่อนที่จะมี bfcache เมื่ออ่านบทความจบ (ขั้นตอนที่ 2) ผู้ใช้ต้องรอให้หน้ารายการบทความโหลดอีกครั้ง ซึ่งอาจทำให้เกิดความไม่สะดวกสำหรับผู้ใช้ที่ต้องการกลับไปที่รายการบทความเพื่อเลือกอ่านบทความอื่น

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

ภาพสไลด์ 2 รูปของการไปยังส่วนหลังจากบทความไปยังหน้าข้อมูลบทความ ด้านบนคือแถบแสดงภาพสไลด์ของกระบวนการที่จัดการด้วย bfcache ซึ่งใช้เวลา 0.3 วินาที ส่วนด้านล่างคือกระบวนการเดียวกันที่จัดการโดยไม่มี bfcache ซึ่งใช้เวลา 3.3 วินาที

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

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

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

สรุปสั้นๆ เกี่ยวกับประโยชน์ของการใช้ bfcache สำหรับ Yahoo! JAPAN News ประกอบด้วย

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

บทสรุป

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

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