FID (First Input Delay, ความล่าช้าในการตอบสนองการโต้ตอบครั้งแรก) เป็นตัวชี้วัดประสิทธิภาพหลักที่ใช้วัดความรวดเร็วของการตอบสนองเว็บเพจต่อการโต้ตอบของผู้ใช้ โดยจะบันทึกระยะเวลาที่เบราว์เซอร์ใช้ในการตอบสนองต่อการกระทำแรกของผู้ใช้เมื่อพวกเขาโต้ตอบกับหน้าเว็บ (เช่น การคลิกปุ่ม การเลือกรายการจากเมนูแบบเลื่อนลง การป้อนข้อความ) พูดง่ายๆ ก็คือ FID สะท้อนว่า "หลังจากผู้ใช้คลิกแล้ว หน้าเว็บจะใช้เวลานานเท่าใดจึงจะมีปฏิกิริยาตอบสนอง"
ตัวชี้วัดนี้ไม่ได้ทดสอบความเร็วในการโหลดหน้าเว็บ แต่เน้นไปที่ความรู้สึกหน่วงที่ผู้ใช้ประสบได้ง่ายที่สุดในการใช้งานจริง เมื่อผู้ใช้คลิกปุ่ม แต่หน้าเว็บไม่มีปฏิกิริยาตอบสนอง และใช้เวลาหลายร้อยมิลลิวินาทีหรือนานกว่านั้นในการเปลี่ยนหน้าหรือแสดงเนื้อหา ความล่าช้านี้จะนำไปสู่ความรู้สึกหงุดหงิดและความไม่ไว้วางใจได้โดยตรง FID ถูกออกแบบมาเพื่อวัดประสบการณ์ที่แย่นี้โดยเฉพาะ
ในการใช้งานจริง ผู้ใช้มักจะพยายามโต้ตอบกับเว็บทันทีหลังจากเปิดหน้าเว็บ เช่น การคลิกเมนูนำทาง การส่งแบบฟอร์ม หรือการเลื่อนดูเนื้อหา หากหน้าเว็บดูเหมือนโหลดเสร็จแล้ว แต่ไม่มีการตอบสนองเมื่อคลิก ผู้ใช้จะรู้สึกโดยสัญชาตญาณว่า "เว็บไซต์นี้มีปัญหา" หรือ "เครือข่ายของฉันช้า" FID มีผลกระทบโดยตรงต่อความประทับใจแรกของผู้ใช้เกี่ยวกับความน่าเชื่อถือและความราบรื่นของเว็บไซต์ โดยเฉพาะอย่างยิ่งบนอุปกรณ์เคลื่อนที่ ซึ่งทรัพยากรมีจำกัด ความล่าช้านี้จะเห็นได้ชัดเจนยิ่งขึ้น
ในแง่ของ SEO Google ได้นำ FID เข้ามาเป็นส่วนหนึ่งของ Core Web Vitals (ตัวชี้วัดเว็บหลัก) อย่างเป็นทางการในปี 2021 และกลายเป็นหนึ่งในปัจจัยสำคัญที่มีผลต่ออันดับการค้นหา เว็บไซต์ที่มี FID แย่ แม้จะมีเนื้อหาคุณภาพสูง ก็อาจถูกลดอันดับในการค้นหาเนื่องจากประสบการณ์ผู้ใช้ที่ไม่ดี สำหรับเว็บไซต์อีคอมเมิร์ซ เครื่องมือออนไลน์ หรือเว็บไซต์ที่คล้ายแอปพลิเคชันซึ่งต้องการการโต้ตอบบ่อยครั้ง คุณภาพของ FID อาจส่งผลโดยตรงต่ออัตราการแปลงและการรักษาผู้ใช้
เมื่อผู้ใช้คลิกองค์ประกอบบนหน้าเว็บ เบราว์เซอร์จำเป็นต้องรันโค้ด JavaScript ที่เกี่ยวข้องเพื่อตอบสนองต่อการกระทำนั้น แต่ถ้าเทรดหลัก (main thread) ของเบราว์เซอร์กำลังยุ่งอยู่กับการประมวลผลงานอื่นๆ (เช่น การแยกวิเคราะห์ไฟล์ JS ขนาดใหญ่ การรันแอนิเมชั่นที่ซับซ้อน หรือการเรนเดอร์เนื้อหา) การคลิกของผู้ใช้จะถูก "จัดคิวรอ" จนกว่าเทรดหลักจะว่าง ระยะเวลารอคอยนี้คือ FID
ตัวอย่างจริง: หน้าแรกของเว็บไซต์ข่าวโหลดสคริปต์โฆษณาของบุคคลที่สามและโค้ดวิเคราะห์ข้อมูลจำนวนมาก เมื่อผู้ใช้คลิกปุ่ม "อ่านต่อ" เทรดหลักของเบราว์เซอร์กำลังรันสคริปต์เหล่านี้ ทำให้เหตุการณ์การคลิกถูกหน่วงเวลา 300 มิลลิวินาทีจึงจะตอบสนอง ผู้ใช้จะรู้สึกว่าปุ่ม "ไม่ทำงาน" และอาจคลิกซ้ำหรือละทิ้งการเข้าชมไปเลย
มาตรฐาน FID ที่ Google กำหนดไว้นั้นชัดเจนมาก:
สิ่งสำคัญที่ต้องทราบคือ FID สามารถวัดได้จากข้อมูลการเข้าชมของผู้ใช้จริงเท่านั้น เครื่องมือในห้องปฏิบัติการ (เช่น Lighthouse) ไม่สามารถวัด FID ได้โดยตรง เนื่องจากเป็นการสะท้อนความล่าช้าในการโต้ตอบของผู้ใช้จริงบนอุปกรณ์จริง คุณสามารถตรวจสอบข้อมูล FID จริงของเว็บไซต์ได้ผ่าน Google Search Console, Chrome User Experience Report (CrUX) หรือเครื่องมือติดตามของบุคคลที่สาม (เช่น Seoinfra)
FID ที่สูงเกินไปมักเกิดจากสถานการณ์ทั่วไปดังต่อไปนี้:
การรันไฟล์ JavaScript ขนาดใหญ่ : เมื่อหน้าแรกโหลดและรันโค้ด JS ขนาดใหญ่พร้อมกัน (เช่น การเริ่มต้นเฟรมเวิร์ก สคริปต์โฆษณา ปลั๊กอินของบุคคลที่สาม) เทรดหลักจะถูกใช้งานเป็นเวลานาน ทำให้การโต้ตอบของผู้ใช้ถูกบล็อก
Long Tasks (งานที่ยาวนาน) : เบราว์เซอร์ถือว่างานที่กินเวลานานกว่า 50 มิลลิวินาทีเป็น "งานที่ยาวนาน" หากมีงานที่ยาวนานหลายอย่างในระหว่างการโหลดหน้าเว็บ การคลิกครั้งแรกของผู้ใช้อาจไปชนกับงานที่กำลังรันอยู่และถูกหน่วงเวลา
ทรัพยากรของบุคคลที่สามมากเกินไป : สคริปต์ของบุคคลที่สาม เช่น ปุ่มแชร์โซเชียล ปลั๊กอินแชท โค้ดวิเคราะห์ข้อมูล มักจะแข่งขันกันเพื่อใช้ทรัพยากรเทรดหลักขณะโหลดหน้าเว็บ ทำให้การตอบสนองต่อการโต้ตอบช้าลง
ข้อจำกัดด้านประสิทธิภาพของอุปกรณ์เคลื่อนที่ : โค้ดเดียวกันอาจทำงานได้อย่างราบรื่นบนคอมพิวเตอร์ประสิทธิภาพสูง แต่บนโทรศัพท์ราคาถูก อาจทำให้เกิดความล่าช้า FID อย่างรุนแรงเนื่องจากกำลังประมวลผลไม่เพียงพอ
แนวคิดหลักในการปรับปรุง FID คือ การลดเวลาการบล็อกเทรดหลัก เพื่อให้เบราว์เซอร์สามารถตอบสนองต่อการโต้ตอบของผู้ใช้ได้อย่างรวดเร็ว
แยกและโหลด JavaScript แบบ Lazy Loading : แยกโค้ด JS ที่ไม่สำคัญออกเป็นส่วนเล็กๆ โดยใช้แอตทริบิวต์ async หรือ defer เพื่อโหลดแบบอะซิงโครนัส หรือโหลดแบบไดนามิกหลังจากที่ผู้ใช้โต้ตอบแล้ว ตัวอย่างเช่น ปลั๊กอินแชทสามารถโหลดได้หลังจากที่ผู้ใช้คลิก "ติดต่อเรา" แทนที่จะรันทันทีที่หน้าเว็บเปิดขึ้น
ลด Long Tasks : ใช้เทคนิค Code Splitting เพื่อแยกงานขนาดใหญ่ออกเป็นงานย่อยๆ หลายงาน เพื่อหลีกเลี่ยงไม่ให้งานเดียวใช้เทรดหลักเป็นเวลานาน เฟรมเวิร์กสมัยใหม่เช่น React, Vue รองรับ Dynamic Import เพื่อให้บรรลุเป้าหมายนี้
จัดลำดับความสำคัญของทรัพยากรหลัก : ใช้คำแนะนำทรัพยากร (เช่น preload, prefetch) เพื่อให้ความสำคัญกับการโหลดสคริปต์หลักที่ผู้ใช้อาจโต้ตอบ และโหลดโค้ดของบุคคลที่สามที่ไม่สำคัญแบบ Lazy Loading
ลดผลกระทบจากสคริปต์ของบุคคลที่สาม : ตรวจสอบและลบปลั๊กอินของบุคคลที่สามที่ไม่จำเป็น หรือใช้ทางเลือกที่น้ำหนักเบากว่า หากจำเป็นต้องใช้ สามารถแยกออกจากเทรดหลักได้โดยใช้ iframe หรือ Web Worker เพื่อหลีกเลี่ยงการบล็อกเทรดหลัก
ปรับให้เหมาะสมสำหรับอุปกรณ์เคลื่อนที่ : เน้นการทดสอบประสิทธิภาพบนอุปกรณ์ราคาถูก โดยใช้ฟังก์ชัน CPU Throttling ของ Chrome DevTools เพื่อจำลองสถานการณ์จริง และตรวจสอบให้แน่ใจว่าโค้ดยังคงตอบสนองได้อย่างรวดเร็วภายใต้สภาพแวดล้อมที่มีข้อจำกัดด้านประสิทธิภาพ
FID มีความสำคัญอย่างยิ่งสำหรับเว็บไซต์และนักพัฒนาประเภทต่อไปนี้:
แพลตฟอร์ม E-commerce และบริการออนไลน์ : ผู้ใช้ต้องคลิกที่สินค้า ส่งแบบฟอร์ม หรือดำเนินการชำระเงินบ่อยครั้ง ความล่าช้าใดๆ อาจส่งผลให้สูญเสียคำสั่งซื้อ
เว็บไซต์เนื้อหา : แม้ว่าเว็บไซต์ข่าว บล็อก และสื่อต่างๆ จะมีการโต้ตอบค่อนข้างง่าย แต่หากการคลิกครั้งแรก (เช่น การขยายเมนู การเล่นวิดีโอ) ตอบสนองช้า ก็จะลดระยะเวลาที่ผู้ใช้อยู่บนเว็บไซต์ลงอย่างมาก
เครื่องมือ SaaS และเว็บแอปพลิเคชัน : ผลิตภัณฑ์ประเภทนี้มีการโต้ตอบหนาแน่นโดยเนื้อแท้ FID ที่สูงเกินไปจะส่งผลกระทบโดยตรงต่อความสามารถในการใช้งานของผลิตภัณฑ์และความพึงพอใจของผู้ใช้
ทีมปรับปรุง SEO : เนื่องจาก FID เป็นหนึ่งในตัวชี้วัดเว็บหลักของ Google ทีมใดๆ ที่ต้องการปรับปรุงอันดับการค้นหาจะต้องให้ความสำคัญกับการปรับปรุงนี้
FID ไม่ใช่ตัวชี้วัดทางเทคนิคที่เป็นนามธรรม แต่เป็นการสะท้อนประสบการณ์การใช้งานจริงของผู้ใช้โดยตรง เมื่อผู้ใช้คลิกที่หน้าเว็บ พวกเขาคาดหวังการตอบสนองทันที ไม่ใช่การรอคอยที่ไม่มีที่สิ้นสุด การปรับปรุง FID โดยเนื้อแท้แล้วคือการปรับปรุงความไว้วางใจและความอดทนของผู้ใช้ต่อเว็บไซต์ของคุณ