← กลับไปหน้าบทความ

5 ก.พ. 2569อ่าน 8 นาทีn3ver25

เว็บของคุณต้องใช้ SSR ไหม หรือเว็บธรรมดาก็พอ

ไม่ใช่ทุกเว็บที่ต้องรันฝั่งเซิร์ฟเวอร์ แต่เว็บที่หวังคนจากการค้นหาและจากลิงก์ที่แชร์ในไลน์ ควรอ่านข้อนี้ก่อนตัดสินใจ

ภาพประกอบการเลือกวิธีการรันเว็บ

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

สามวิธีที่เว็บหนึ่งหน้าจะไปโผล่บนจอ

ตัดศัพท์ออกให้หมดแล้วเหลือแค่คำถามเดียว คือข้อความบนหน้าเว็บถูกประกอบขึ้นตอนไหน

  • ประกอบในเครื่องคนดู เซิร์ฟเวอร์ส่งหน้าเปล่ากับโค้ดไปให้ แล้วโค้ดค่อยเติมข้อความเข้าไป วิธีนี้เรียกกันว่า CSR
  • ประกอบที่เซิร์ฟเวอร์ตอนมีคนขอ เซิร์ฟเวอร์ส่งหน้าที่มีข้อความครบมาเลย วิธีนี้คือ SSR
  • ประกอบไว้ล่วงหน้าตั้งแต่ตอนสร้างเว็บ เก็บเป็นไฟล์รอไว้ ใครขอก็ส่งไฟล์เดิมไป วิธีนี้คือ SSG

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

ปัญหาอยู่ตรงที่ไม่ใช่คนอย่างเดียวที่อ่านเว็บคุณ

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

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

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

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

n3ver25

เมื่อไหร่ที่ควรรันฝั่งเซิร์ฟเวอร์

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

เมื่อไหร่ที่ไม่ต้อง

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

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

ราคาที่ต้องจ่ายเพิ่ม

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

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

เว็บที่คุณกำลังอ่านอยู่นี้ใช้อะไร

หน้านี้ประกอบเสร็จมาจากฝั่งเซิร์ฟเวอร์ เขียนด้วย Angular และรันบน Cloudflare Workers ซึ่งเป็นเครือข่ายที่รันโค้ดใกล้กับคนเปิดแทนที่จะรันจากเครื่องกลางเครื่องเดียว หน้าที่ประกอบแล้วถูกเก็บไว้ที่ขอบเครือข่าย คนถัดไปที่เปิดหน้าเดียวกันจึงได้ของที่พร้อมแล้ว

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

ถ้ายังไม่แน่ใจว่างานของคุณอยู่ฝั่งไหน วิธีตัดสินที่เร็วที่สุดคือถามว่าอยากให้คนเจอเว็บนี้จากตรงไหน ถ้าคำตอบมีคำว่ากูเกิลหรือไลน์อยู่ในนั้น คุณต้องการมัน

อ่านต่อ

สามชิ้นที่คนอ่านจบเรื่องนี้แล้วมักอยากรู้ต่อ

n3ver25

Full-stack web developer

ฟรีแลนซ์รับทำเว็บไซต์ เขียนโค้ดเองทั้งหน้าบ้านและหลังบ้าน ทำเว็บมาต่อเนื่อง 6 ปี