[ทิป WordPress] เว็บใหญ่แล้วไปไหนดี: แก้ปัญหาเว็บล่มบ่อย ๆ หรือโหลดช้าแบบฟรี ๆ ด้วย Cache & CDN

designil

ทางทีมงาน Designil ได้พัฒนาเว็บไซต์ให้กับธุรกิจทั้งเล็กและใหญ่มากแล้วกว่า 8 ปีครับ ซึ่งเว็บไซต์ส่วนใหญ่ของเราใช้ระบบหลังบ้านเป็น WordPress ด้วยความที่มันใช้งานง่ายสำหรับลูกค้า และมีความปลอดภัยสูง เพราะ WordPress เป็น Open Source มีนักพัฒนาหลายร้อยหลายพันคนทั่วโลกช่วยตรวจโค้ดตลอดทุกอัพเดท ส่วนใหญ่คนที่โดนแฮคจะมาจากการไม่ยอมอัพเดทระบบเลย หรือจากปลั๊กอินอื่น ๆ ที่นำมาลงเองครับ สำหรับคนที่ใช้งาน WordPress อยู่ ขอเชิญชวนมางาน WordCamp Bangkok 2019 ที่จะจัดขึ้นในเดือนกุมภาพันธ์นี้ครับ ถือเป็นโอกาสดีที่จะได้พบเพื่อนใหม่ ๆ หรืออาจจะได้เจอคู่คิดในธุรกิจของเราก็ได้

สิ่งหนึ่งที่เราพบหลังจากทำเว็บไซต์ให้กับลูกค้าหลากหลายขนาดมามากว่า 100 เว็บไซต์ ก็คือ พอเว็บโตขึ้นเรื่อย ๆ คนเข้าเยอะขึ้นเรื่อย ๆ โฮสต์ที่เคยเร็วก็เริ่มโหลดช้า แถมบางทีคนเข้าเยอะมาก ๆ ก็ล่มไปซะเฉย ๆ บทความนี้เลยจะมาเล่าทางแก้ปัญหาแบบง่าย ๆ สามารถทำตามได้โดยไม่ยากจนเกินไป เหมาะสำหรับเจ้าของเว็บไซต์ที่ไม่มีความรู้ด้าน Technical มากนักครับ

Cache คืออะไร ทำงานอย่างไร

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

Cache WordPress วิธีการทำงาน
ระบบแคชทำงานอย่างไรใน WordPress

ถ้าเว็บเราไม่มี Cache มาก่อน พอเปิดใช้ก็จะพบว่าเว็บเร็วขึ้นมาก ๆ แถมยังลดการใช้การประมวลผล Server ไปได้มาก ซึ่งทำให้โฮสต์ล่มยากขึ้นด้วยนั่นเอง (เว็บ Designil นี้ก็ใช้แคชอยู่ครับ เพราะเคยปิดแล้วล่มทุกครั้งที่โพสบทความใหม่)

สิ่งหนึ่งที่เราต้องรู้เกี่ยวกับระแบบ Cache ก็คือ การลบ Cache ครับ เป็นสิ่งที่ระบบ Cache ทุกที่ต้องมี ไม่อย่างนั้นเวลาเราอัพเดทข้อมูลหลังบ้าน ผู้ใช้ที่เข้ามาอ่านก็จะไม่เห็นข้อมูลใหม่ของเรา ซึ่งระบบ Cache ที่ฉลาดก็จะมีการสร้าง Cache ใหม่ตามเวลาที่เรากำหนดไว้ หรือทุกครั้งที่เรามีการอัพเดทเนื้อหาบนเว็บ เราต้องระวังไม่ไปกดลบแคชทั้งเว็บ (Clear Cache / Delete Cache) ตอนที่คนกำลังเข้าเว็บเยอะ ๆ ครับ เพราะมันจะทำให้ระบบต้องประมวลผลทุกหน้าใหม่ทั้งหมด ถ้าข้อมูลเว็บเราเยอะมากก็อาจจะทำให้ Server ทำงานหนักจนเว็บล่มไปเลยก็ได้ครับ

แนะนำปลั๊กอิน Cache ของ WordPress

สำหรับการใช้ระบบแคช เราสามารถลงปลั๊กอิน WordPress ได้เลย แทบไม่ต้องตั้งค่าอะไรยุ่งยากเลยครับ

ปลั๊กอิน Cache ฟรีที่คนใช้บ่อย ๆ คือ W3 Total Cache (แอดใช้ตัวนี้อยู่), WP Super Cache, WP Fastest Cache ครับ ทั้ง 3 ตัวนี้ฟรี 100%

สำหรับคนที่อยากลองใช้ปลั๊กอินแคชเสียเงิน แอดเคยได้ยินว่า WP Rocket (ปีละประมาณ 1,200 บาท) ก็ทำงานได้ดีครับ ความแตกต่างหลัก ๆ เลยก็คือ ปลั๊กอินเสียเงินจะใช้งานได้ง่ายกว่า และเราสามารถถาม-ตอบปัญหากับทางทีมงานได้เร็วกว่าตัวฟรี

อย่างไรก็ตาม เท่าที่แอดใช้ปลั๊กอินฟรีมา ไม่เคยเจอปัญหาว่าเซ็ตอัพยากมากครับ บางตัวลงแล้วใช้งานได้เลยทันทีก็มี แนะนำว่าลองใช้ตัวฟรีที่แนะนำไปด้านบนก่อน ถ้าเจอปัญหาจริง ๆ ค่อยย้ายไปตัวเสียเงินครับ

CDN คืออะไร ทำงานอย่างไร

ทีนี้อีกปัญหาที่เจอกันบ่อย ๆ คือ เรามีลูกค้าอยู่ในหลายประเทศทั่วโลก แต่เว็บเราโฮสต์ไว้ในไทย เลยทำให้ลูกค้าต่างชาติโหลดเว็บได้ช้ามาก ๆ กรณีนี้ระบบ Cache จะไม่สามารถช่วยเราได้ครับ วิธีแก้ปัญหานี้ก็คือการใช้ CDN

CDN (Content Delivery Network) คล้ายกับการทำงานของ Cache แต่แทนที่จะเก็บ Cache ไว้ในเว็บของเรา เค้าก็เอาไปเก็บใน Server ที่เค้ามีอยู่ทั่วโลกแทน พอคนเข้าเว็บมาจากประเทศไหน ก็จะได้รับข้อมูลจาก Server ที่ใกล้ที่สุดไป ซึ่งทำให้เว็บไซต์ของเราโหลดเร็วขึ้นอย่างมากสำหรับคนที่อยู่ไกล

Server ทั้งหมดของ Cloudflare ผู้ให้บริการ CDN เจ้าใหญ่

ผลพลอยได้ของการใช้ CDN ก็คือ Server ของเราถูกใช้ประมวลผลน้อยลง เพราะบริการ CDN จะทำหน้าที่ส่งคนเข้าเว็บไซต์ไปที่ไฟล์ Cache ที่เค้าเก็บไว้ ทำให้คนเข้าเว็บส่วนใหญ่ไม่ต้องวิ่งผ่านระบบ WordPress ของเราเลย เหมาะมากโดยเฉพาะถ้าเราใช้ Hosting ที่มีการจำกัด Bandwidth ไว้ อย่างเว็บ Designil อันนี้ก็ใช้ Cloudflare ช่วยลดการใช้ Bandwidth ไปได้ถึง 85% เลยครับ

CloudFlare ช่วยลดการใช้ Bandwidth ไปได้มากเลยครับ

นอกจากนั้น ระบบ CDN เช่น CloudFlare ก็มีฟีเจอร์เสริมอีกมากมาย ตัวอย่างเช่น บริการ HTTPS ฟรี ที่แอดเคยเขียนถึงไป นั่นเองครับ (แต่ถ้าเราใช้โฮสต์ใหม่ ๆ ที่มี HTTPS ฟรีให้อยู่แล้ว แนะนำให้ใช้ของโฮสต์จะดีกว่า เพราะไม่ต้องผูกติดกับ CloudFlare)

แนะนำระบบ CDN สำหรับ WordPress

แน่นอนว่าที่หนึ่งนี่แอดต้องยกให้ CloudFlare เลยครับ เพราะใช้งานได้ง่าย (อ่านวิธีติดตั้งได้ในบทความ HTTP ฟรี ที่แอดใส่ลิงค์ไว้ด้านบน), มีแพลนฟรี หรือจะเสียเงินซื้อฟีเจอร์เพิ่มขึ้นก็ได้ครับ (แต่แอดใช้ตัวฟรีมาหลายปีก็ยังไม่เจอปัญหาอะไร), มีฟีเจอร์เสริม ไม่ว่าจะเป็น HTTPS ฟรี หรือระบบป้องกันการโจมตีแบบ DDoS แล้วที่เด็ดสุด คือ มี Server ตั้งอยู่ที่ไทย ด้วยครับ ทำให้คนไทยก็เข้าได้ไวด้วย

สำหรับตัวอื่น ๆ ก็มี MaxCDN (ถูกซื้อไปโดย StackPath) ที่เห็นว่ามีปลั๊กอินแคชหลาย ๆ ตัวผูกกับระบบนี้อยู่ ทำให้เราสามารถสั่งเคลียร์แคชของ CDN ได้จากเว็บไซต์เราเลย ส่วนตัวอื่น ๆ แต่ตัวนี้จะไม่มีแพลนฟรีครับ

สรุป: เว็บ WordPress จำเป็นต้องมี Cache และ CDN มั้ย

ถ้าเว็บไซต์เราเป็นเว็บที่ให้คนมาอ่านเนื้อหาที่ไม่ต้องอัพเดทแบบทุกวินาที (เว็บสำนักข่าว, บลอค เช่น เว็บ Designil นี้) ควรใช้ทั้ง Cache และ CDN เลยครับ มีแต่ข้อดีทั้งนั้น และเซ็ตอัพได้ไม่ยากด้วยครับ

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

ตัวอย่างเช่น ถ้าเราใช้ ระบบร้านค้าฟรีของ WooCommerce เราก็ต้องไปตั้งไม่ให้ปลั๊กอินแคชเก็บหน้าที่เกี่ยวกับร้านค้าของเราทั้งหมด หรือถ้าไม่อยากเซ็ตเองก็ไปใช้ตัว WP Rocket ที่แนะนำไปด้านบนก็ได้ครับ

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


WordPress Hosting แนะนำจาก Designil

บทความที่เกี่ยวข้อง

designil

designil

Data engineer & WordPress Developer ทำงานที่บริษัทแคนว่า ซิดนีย์ออสเตรเลีย ปัจจุบันเป็นเจ้าของเว็บไซต์ Designil, DataTH ชอบอ่านบทความใหม่ๆ ตลอดเวลา และชอบสรุปเรื่องราวเกี่ยวกับเทคโนโลยีให้ภาษาที่เข้าใจง่าย ยินดีที่ได้รู้จักทุกคนนะครับ
บทความทั้งหมด