- หน้าบทความหนึ่งบนเว็บไซต์ The New York Times ทำให้เกิดคำขอเครือข่าย 422 ครั้งและการรับส่งข้อมูล 49MB จนแม้แค่การเปิดอ่านบทความธรรมดาก็ต้องใช้ทรัพยากรมากเกินไป
- ระหว่างการโหลดหน้า มีคำขอประมูลโฆษณาจำนวนมากและสคริปต์ติดตามทำงานพร้อมกัน ส่งผลให้ CPU ของเบราว์เซอร์และแบตเตอรี่ถูกใช้ไปโดยไม่จำเป็น
- การออกแบบ UX แบบเป็นปฏิปักษ์ลักษณะนี้ต่อยอดไปเป็นแบนเนอร์คุกกี้ ป๊อปอัปสมัครสมาชิก วิดีโอเล่นอัตโนมัติ และโฆษณาที่กินพื้นที่หน้าจอ ซึ่งรบกวนประสบการณ์การอ่านของผู้ใช้
- โมเดลธุรกิจที่ยึด ‘เวลาที่อยู่บนหน้า’ และ ‘อัตราการมองเห็น’ เพื่อเพิ่มรายได้จากโฆษณาสูงสุด กำลังแลกมาด้วยการเสียสละประสบการณ์ของผู้อ่าน และแม้แต่วิศวกรก็ยังติดอยู่ในโครงสร้างนี้
- บทความยกตัวอย่างหน้าเว็บข่าวน้ำหนักเบาที่เน้นข้อความเป็นหลัก เช่น text.npr.org เพื่อเน้นย้ำการฟื้นคืนประสบการณ์เว็บที่เรียบง่าย ให้เกียรติผู้ใช้ และทำให้ผู้อ่านกับธุรกิจอยู่ร่วมกันได้
ความจริงของเว็บเพจ 49MB
- เมื่อเข้าเว็บไซต์ The New York Times จะเกิดคำขอ 422 ครั้งและข้อมูล 49MB และต้องใช้เวลา 2 นาทีจึงจะนิ่ง
- ขนาดนี้ใหญ่กว่าความจุทั้งหมดของ Windows 95 (ฟลอปปีดิสก์ 28 แผ่น) และเทียบได้กับเพลง MP3 ประมาณ 10–12 เพลง
- เท่ากับว่าต้องดาวน์โหลดข้อมูลระดับอัลบั้มหนึ่งชุดเพียงเพื่ออ่านข้อความไม่กี่ย่อหน้า
- แม้ประสิทธิภาพฮาร์ดแวร์จะก้าวหน้าอย่างมากเมื่อเทียบกับอดีต แต่เว็บเฟรมเวิร์กที่ขับเคลื่อนด้วยโฆษณาและการติดตามกลับหักล้างความก้าวหน้านั้น
ภาระของ CPU และโครงสร้างการติดตาม
- เว็บไซต์ข่าวรันระบบประมูลโฆษณาแบบโปรแกรมแมติกภายในเบราว์เซอร์
- มีคำขอประมูลแบบอะซิงโครนัสไปยัง Rubicon Project, Amazon Ad Systems และอื่น ๆ พร้อมกัน
- เบราว์เซอร์ต้องดาวน์โหลด พาร์ส และคอมไพล์ JavaScript หลาย MB ซึ่งนำไปสู่ภาระบน main thread
- ผู้ใช้ขอเพียงข้อความ แต่เบราว์เซอร์กลับต้องประมวลผลสคริปต์ติดตามขนาด 5MBก่อน แล้วจึงค่อยแทรกโฆษณา
- พร้อมกันนั้นยังมีบีคอนติดตามพฤติกรรม (คำขอ POST) และการรีไดเร็กต์พิกเซลที่มองไม่เห็น (
doubleclick.net, casalemedia) ทำงานเพื่อระบุตัวตนข้ามเว็บไซต์
- กระบวนการเหล่านี้ทำให้มือถือร้อนและแบตเตอรี่หมดไว และผู้ใช้ก็ถูกดึงเข้าสู่ตลาดซื้อขายข้อมูลความถี่สูงโดยไม่รู้ตัว
UX แบบเป็นปฏิปักษ์และต้นทุนของการโต้ตอบ
- เมื่อเข้าหน้าเพจจะมีแบนเนอร์คุกกี้ GDPR, โมดัลสมัครรับจดหมายข่าว, ป๊อปอัปขออนุญาตแจ้งเตือนโผล่มาต่อเนื่อง
- ผู้ใช้ต้องคลิกและเลื่อนหลายครั้งก่อนจะเข้าถึงเนื้อหาได้
- สิ่งนี้ขัดกับหลัก**‘ต้นทุนของการโต้ตอบ (Interaction Cost)’** และ**‘การออกแบบแบบมินิมัล’**ของ NNgroup
- ในกรณีของ Economic Times ผู้ใช้ต้องปิดโมดัลสามชั้นและข้ามแบนเนอร์ด้านบนก่อนจึงจะเข้าถึงเนื้อหาหลักได้
- แม้ตามเกณฑ์ Core Web Vitals ของ Google เอง อินเทอร์สทิเชียลที่รบกวนการใช้งานลักษณะนี้ก็ถูกระบุว่าเป็นปัจจัยหักคะแนน SEO
เลย์เอาต์ที่ไม่เสถียรและการแทรกโฆษณา
- ระหว่างที่ผู้อ่านกำลังอ่านย่อหน้า หากการประมูลโฆษณาเสร็จสิ้น จะมีโฆษณา iframe ถูกแทรกเข้ามา ทำให้ข้อความเลื่อนลง 250 พิกเซล
- สิ่งนี้ถูกวัดเป็นCumulative Layout Shift (CLS) และเชื่อมโยงโดยตรงกับอัตราการออกจากหน้า
- Google หักคะแนนปัญหานี้อย่างเป็นทางการ แต่ก็มีความย้อนแย้งตรงที่ผลิตภัณฑ์โฆษณาของ Google เองก็ก่อปัญหาแบบเดียวกัน
- วิดีโอเล่นอัตโนมัติยังคงเล่นต่อแม้ผู้ใช้จะเลื่อนหน้าจอไปแล้ว โดยตรึงอยู่ด้านล่างของหน้าจอ และปุ่มปิดก็เล็กพร้อมพื้นที่คลิกที่แคบ
- บทความชี้ว่านี่เป็นตัวอย่างของการละเมิดกฎของ Fitts
การสิ้นเปลืองพื้นที่บนมือถือ
- จาก viewport มือถือเฉลี่ย 800px นั้น โลโก้ แถบแชร์ และ UI ของเบราว์เซอร์กินพื้นที่ไปมาก
- เนื้อหาจริงที่แสดงได้มีเพียง11% ตามเกณฑ์ของหน้า Guardian
- สัดส่วน**โฆษณา·โมดัล 89% เทียบกับเนื้อหา 11%**เพิ่มทั้งความล้าทางสายตาและความถี่ในการเลื่อนของผู้ใช้
- ยังมีวิธีแบบ วางปุ่ม ‘X’ ไว้ใกล้พื้นที่คลิกโฆษณา เพื่อหลอกให้กดพลาด หรือที่เรียกว่ากลยุทธ์ ‘fat-finger tax’
- เว็บไซต์ข่าวอินเดียบางแห่ง เช่น Jagran ยังขัดขวางการเข้าถึงบทความด้วยโมดัลชวนติดตั้งแอปและป๊อปอัปสมัครสมาชิก
ข้อเสนอเพื่อการปรับปรุง
- โครงสร้างที่บังคับให้ต้องกดปิด 3–4 ครั้งก่อนเห็นเนื้อหาคือการสิ้นเปลืองทรัพยากรทางการรับรู้ของผู้ใช้
- ควรปรับให้ป๊อปอัปแสดงหลังอยู่บนหน้า 60 วินาที หรือเลื่อนถึง 50% ของหน้าเท่านั้น
- การยินยอมคุกกี้และการสมัครรับจดหมายข่าวสามารถรวมไว้เป็นส่วนด้านล่างที่ไม่บล็อกการใช้งานได้
- ควรจองช่องโฆษณาด้วยคอนเทนเนอร์ความสูงคงที่เพื่อป้องกันเลย์เอาต์ขยับ
- ตัวอย่าง:
min-height: 250px; background: var(--skeleton-loader);
- หากโหลดโฆษณาไม่สำเร็จ ให้ใช้
ResizeObserver ย่อเฉพาะในพื้นที่ที่ผู้ใช้ยังมองไม่เห็น
การมีอยู่ของเว็บไซต์ข่าวน้ำหนักเบา
- text.npr.org, lite.cnn.com, cbc.ca/lite เป็นต้น มีเวอร์ชันน้ำหนักเบาที่ไม่มีการติดตามและไม่มีโมดัลให้บริการ
- การเสพข่าวผ่านฟีด RSS ก็ยังคงมีใช้งานอย่างคึกคัก
- ตัวอย่างเหล่านี้แสดงให้เห็นว่ายังมีความต้องการต่อประสบการณ์เว็บที่เรียบง่ายและเน้นเนื้อหาเป็นศูนย์กลาง
บทสรุป: ความสนใจของผู้อ่านคือทรัพยากร
- UI ข่าวในปัจจุบันมองผู้อ่านเป็นเป้าหมายที่ต้องจับกุม และถูกออกแบบมาเพื่อเพิ่มการมองเห็นโฆษณาให้สูงสุด
- แต่ความสามารถในการทำกำไรกับการเข้าถึงที่ดีสามารถอยู่ร่วมกันได้ และวิศวกรเองก็ไม่พอใจกับโครงสร้างนี้
- ต้นตอของปัญหาคือแรงจูงใจทางธุรกิจระยะสั้นที่ยึด CPM เป็นศูนย์กลาง
- จึงเกิดเป็นระบบที่ปฏิบัติต่อความสนใจของผู้อ่านเหมือนทรัพยากรที่สกัดได้ และ
การใช้ RSS, ปิดแท็บ, และการเพิ่มขึ้นของอัตราการออกจากหน้าถูกเสนอว่าเป็นรูปแบบการต่อต้านที่ทรงพลังที่สุด
1 ความคิดเห็น
ความเห็นจาก Hacker News
พอมีตั๋วแจ้งว่าเซิร์ฟเวอร์ช้าเลยไปตรวจดู ก็พบว่าวิดีโอทั้งหมดบนหน้าเพจกำลัง preload ล่วงหน้าทีละส่วน
ที่ยังพอรอดได้ก็เพราะออฟฟิศเชื่อมตรงกับดาต้าเซ็นเตอร์ด้วยไฟเบอร์ออปติก
ผมคิดว่าไม่ควรให้นักพัฒนาเว็บได้ใช้เครือข่ายเร็วเกิน 128kbit ถ้าเร็วกว่านั้นทุกอย่างจะพังหมด
ถ้าใช้ร่วมกับฟีเจอร์จำกัด CPU ก็เหมาะมากสำหรับตรวจสอบประสิทธิภาพเว็บไซต์ในสภาพแวดล้อมสเปกต่ำ
การใช้ dev server ที่ช้าจะช่วยฝึกให้ลดทรัพยากรที่ไม่จำเป็นไปเองตามธรรมชาติ
มันทำงานได้ดีแม้ในสภาพแวดล้อมที่ช้ามากอย่าง Gopher, Gemini, หรือ Bitlbee บน IRC
นักพัฒนาแอป Electron เองก็ควรทดสอบบนพีซีที่มี RAM 2GB และ Celeron รุ่นเก่าด้วย ถึงจะเรียกว่าเป็นแอปที่เสร็จสมบูรณ์จริง
แต่ถ้าวัดตามปริมาณข้อมูลที่ส่ง 36.3MB จากทั้งหมด 44.47MB เป็น วิดีโอสำหรับงานข่าว
หมายความว่าปัญหาไม่ใช่โฆษณาที่มากเกินไปอย่างเดียว แต่เป็นโครงสร้างคอนเทนต์ที่เน้นวิดีโอด้วย
บังคับให้ผู้ใช้ดาวน์โหลด 36MB ก่อนจะกดคลิกอะไรด้วยซ้ำ มันยอมรับได้ยากมาก
ผมไม่อ่านเลยเพราะเต็มไปด้วยโฆษณาและก้อน JavaScript เลยเอาแค่พาดหัวไปค้นอ่านในเว็บไซต์อื่นแทน
โดยพื้นฐานแล้วผมท่องเว็บโดย ปิด JavaScript ไว้ และแทบไม่เห็นโฆษณา
พอปิด JS หน้าเว็บก็เร็วขึ้นมาก และลดความเสี่ยงข้อมูลส่วนตัวรั่วไหลด้วย
ผมไม่คิดว่าวิธีนี้ผิดจริยธรรม เพราะเว็บไซต์ต่างหากที่เริ่มเล่นไม่แฟร์ก่อน
ถึงขั้นว่าการไม่เข้าเว็บเลยอาจดีกับพวกเขามากกว่าด้วยซ้ำ
ขอแค่คอนเทนต์แสดงและใช้งานได้ก็พอ
NYT จึงมุ่งไปที่ “คนส่วนใหญ่ที่ไม่สนเทคโนโลยี” กลุ่มนี้
ปัญหาพื้นฐานของอุตสาหกรรมหนังสือพิมพ์คือ โมเดลเศรษฐกิจที่พึ่งโฆษณากำลังพังทลาย
เมื่อก่อนเก็บเงินจากผู้อ่านแค่ค่าพิมพ์ ที่เหลือให้โฆษณาช่วยจ่าย
แต่ตอนนี้ Facebook Marketplace, Craigslist และที่อื่น ๆ แย่งโฆษณาเหล่านั้นไปหมด
สุดท้ายข่าวจึงกลายเป็น สินค้าตลาดเฉพาะ และการขายข้อมูลผู้อ่านก็เป็นเฮือกสุดท้าย
เพราะตอนนั้นจำกัดทั้งเดือนแค่ 250MB ทุกวันนี้คิดแล้วยังไม่น่าเชื่อ
เว็บไซต์อย่าง HN ที่ระวังการใช้ JS ทุกบรรทัดกลับรู้สึกเหมือนของขวัญจากพระเจ้า
เราควรทำให้เว็บอืดน้อยกว่านี้
ทั้งที่ UX แบบนี้ไม่น่าทำเงินได้ แต่ก็ยังทำซ้ำอยู่เรื่อย ๆ
เมื่อก่อน Win95 เองก็เคยถูกเรียกว่า “บวม” แต่ทุกวันนี้หน้าเว็บใหญ่กว่านั้นมาก
ปัญหาไม่ใช่แค่ตัวโฆษณา แต่คือ ความสิ้นเปลืองทรัพยากรและความรบกวนสมาธิ
ถ้าเปิด JS แล้วหน้าจอเริ่มวุ่นวาย ผมก็ปิดหนีทันที
เงินไม่กี่เซ็นต์ที่ได้จากการทำให้ผู้ใช้หงุดหงิดมันคุ้มจริงหรือ
ดูเหมือนคนส่วนใหญ่จะยอมรับมันไปเฉย ๆ
ผมเป็นนักพัฒนาวัยปลาย 30 ที่โตมากับยุค “อินเทอร์เน็ตเสรี” เลยแทบไม่มีความอดทนต่อโฆษณาเลย
ผมคิดถึงอินเทอร์เฟซแบบบรรทัดคำสั่งอย่าง Amadeus terminal สมัยก่อน
ก็เลยคิดอยู่ว่าถ้าอยากให้เว็บกลับมาเป็นศูนย์กลางของผู้ใช้อีกครั้ง ต้องทำอย่างไร
ทั้งป้ายชื่อฟิลด์ผิด, placeholder ถูกตัด, date picker โผล่เป็นภาษาจีน
และหลังเลือกที่นั่งแล้วก็ขึ้นข้อความว่า “เลือกไม่ได้” UX พังหมดแล้ว
เพราะแค่ HTML form ง่าย ๆ ก็ทำเว็บที่ใช้งานได้ดีพอแล้ว
การใช้ JS เกินเหตุเป็นผลจากการถูกปลูกฝังมากกว่า
ผมใช้ Hagezi ultimate list บล็อกโฆษณาแทบทั้งหมด และบนเดสก์ท็อปก็ใช้ uBlock ปรับละเอียดเพิ่ม
ผมยังบล็อกโดเมนฟอนต์ของ Google และ Adobe เองด้วย เพื่อให้เร็วขึ้นและเป็นส่วนตัวขึ้น
การที่โปรแกรมที่ผู้ใช้ไม่ได้ตรวจสอบมารันบนคอมพิวเตอร์ของผมนั้น เป็นโครงสร้างที่ผิดมาตั้งแต่ต้น
ถ้าปิด JS แล้วเว็บพัง นั่นเป็นเพราะนักพัฒนาออกแบบผิด
ถ้าตอนนั้นแยก HTML ออกจากโค้ดที่รันได้ โลกคงดีกว่านี้มาก
เรนเดอร์ที่เซิร์ฟเวอร์แล้วส่งผลลัพธ์มาอย่างเดียวก็พอ
หน้าเว็บขนาด 49MB ก็เป็นแค่ ภาพสะท้อนของลำดับความสำคัญ เท่านั้น
ทุกวันนี้อินเทอร์เน็ตเร็วกลายเป็นเรื่องปกติแล้ว ผู้ใช้ส่วนใหญ่จึงไม่รู้สึกว่าเป็นปัญหา
ผมใช้ uBlock Origin hard mode เพื่อบล็อกทรัพยากรพวกนี้ทิ้งทั้งหมด