เทคนิคประหยัดพื้นที่ WordPress ด้วยการลดการสร้างรูป
ปรกติแล้วการอัพรูปบนเวิร์ดเพรสแต่ละครั้ง ตัวระบบจะทำการสร้างรูปออกมาอีกหลายขนาดเพื่อให้เหมาะกับการแสดงผล และคนส่วนใหญ่ก็ใช้ปลั้กอินในการบีบไฟล์ ซึ่งมันก็จะสร้างไฟล์ WebP เพิ่มอีก รวมถึงสำรองไฟล์เดิมไว้อีกชุด ซึ่งจะเห็นความบวมเมื่อมีรูปจำนวนมาก เช่นเว็บข่าวหรือเว็บขายสินค้า ดังนั้นผมจะมาแนะนำอีกเทคนิคให้ครับ
ในการใช้งานเวิร์ดเพรสแบบเดิมๆ เลย เวลาที่เราอัพรูป 1 รูป มันจะทำการ Generate ไฟล์แต่ละขนาดแบบนี้ครับ ซึ่งข้อดีคือมันจะทำให้การแสดงผลบนหน้าเว็บทำได้รวดเร็ว ในส่วนที่แสดงผลรูปขนาดเล็กก็จะได้ไม่ต้องไปโหลดไฟล์เต็มมาใช้ แต่ประเด็นก็คือมันจะทำให้พื้นที่เราถูกใช้งานไปอีกพอควรเลย และถ้าติดตั้งระบบ Image Optimizer เข้าไปอีก มันก็จะเพิ่มไฟล์ WebP และการสำรองไฟล์ต้นฉบับด้วย
ปิดการสร้างรูปแต่ละขนาด
ก่อนอื่นเราต้องทำการปิดการสร้างรูปแต่ละขนาดก่อน โดยติดตั้ง Disable Generate Thumbnails แล้วทำการเลือกไฟล์ทุกขนาดเพื่อปิดระบบ Auto Generate Image ซึ่งขั้นตอนนี้จะทำให้
ถ้าเราเปิดระบบนี้ตั้งแต่วันแรกที่ทำเว็บก็จะง่ายขึ้น แต่ถ้าเรามาใช้วิธีนี้ตอนเว็บบวมแล้ว เราต้องใช้ตัวช่วยในการลบไฟล์ส่วนเกินด้วยครับ
ลบไฟล์รูปส่วนเกินที่ไม่ได้ใช้
ผมใช้ WPvivid ในการสแกนหารูปที่ไม่ถูกเรียกใช้ ซึ่งปรกติแล้วมันจะหาเฉพาะรูปที่ไม่อยู่ในบทความ แต่หลังจากที่เราปิดระบบ Auto Generate Image ไปแล้ว มันก็จะลบไฟล์รูปที่ถูก Generate ขึ้นมาด้วย
ข้อดีของ WPvivid คือหลังจากที่เราสแกนและเลือกไฟล์ที่ไม่ต้องการแล้ว มันจะทำการ Isolate แยกไฟล์รูปพวกนั้นไปไว้อีกที่ โดยจะยังไม่ทำการลบออกทันที เผื่อว่าเราเจอปัญหาแล้วต้องการกู้คืน
หลังจากที่ทำการ Isolate ไฟล์ออกไปแล้ว ตอนนี้จะเห็นว่าในโฟลเดอร์รูปของเราจะไม่มีไฟล์ที่ถูก Generate แล้ว จะมีแค่ไฟล์ต้นฉบับที่เราอัพจริงๆ
จากตอนแรกในโฟลเดอร์ Upload ของผมมีไฟล์รูปราว 28 GB พอเก็บกวาดแล้วใช้งานไปแค่ 4.30 GB เท่านั้น ประหยัดพื้นที่ไปราว 24 GB
ใช้การจัดการรูปผ่าน CDN
มาถึงขั้นตอนนี้เราจะมีแต่รูปขนาดเต็ม เราเลยต้องใช้ตัว Image Optimize ประเภทที่ทำผ่าน CDN ไม่ต้องมายุ่งกับ Server ของเรา ซึ่งผมแนะนำ 2 ตัวคือ ShortPixel Adaptive Images ( เจ้าของเดียวกับ ShortPixel Image Optimizer ) และ WP Compress
ส่วนตัวผมซื้อไว้ทั้ง 2 ตัวแต่เลือกใช้ WP Compress เพราะมันมีฟีเจอร์ที่เหมาะกับการเป็นเอเจนซี่ ทำ Report ให้ลูกค้า และทำ White label ได้ด้วย ถ้าย้อนไปตอนปีก่อนๆ ตัว WP Compress ยังมีปัญหาด้านความเร็ว แต่ในปี 2024 มันทำงานได้น่าประทับใจมากครับ และที่เหนือกว่าของ ShortPixel ก็คือมันสามารถบีบไฟล์รูปที่ไม่ได้อยู่บนเซิฟเราด้วย เช่น Banner ของลูกค้าที่เราอาจจะลิ้งมาจากที่อื่น หรือคนที่ทำ Offload เอารูปไว้ที่ S3
วิธีตั้งค่าก็เลือกที่ CDN Delivery แล้วเลือกนามสกุลรูปที่เราต้องการให้มันบีบผ่าน CDN ได้เลย นอกจากนี้เรายังสามารถทำด้วยโดเมนเราได้ด้วย เช่น cdn.bacidea.com ครับ
ราคาและความคุ้มค่า
ในส่วนของการลบไฟล์ส่วนเกินอาจจะมีปลั้กอินตัวอื่นทดแทนได้ แต่ส่วนที่ต้องจ่ายจริงๆ คือการบีบรูปผ่าน CDN ครับ โดยราคาแบ่งออกเป็น
- ShortPixel เริ่มต้นที่ $1999 แบบจ่ายครั้งเดียวบีบรูปได้ 30,000 รูป ได้ 150 GB CDN ซึ่งเยอะสำหรับเว็บเล็กๆ ใช้งานได้หลายเดือน แต่ถ้าเป็นเว็บข่าวที่มีรูปเยอะ มีคนเข้าเยอะ แนะนำให้จ่ายเดือนละ $999 จะสามารถใช้งานได้แบบ Unlimited ไม่จำกัดจำนวนรูป แต่จำกัด 500 GB CDN
- WP Compress ใช้งานได้ฟรี บีบรูปได้ 50,000 รูป ได้ 1 GB CDN และถ้าจ่ายปีละ $99 เท่ากับ ShortPixel จะบีบรูปได้ 5,000,000 รูป และ Unlimited CDN
จุดเด่นของ ShortPixel คือการแปลงไฟล์เป็น AVIF ได้ด้วย ซึ่งเป็นการบีบอัดไฟล์ที่ใหม่กว่าและได้ไฟล์เล็กกว่า WebP
แต่ WP Compress มี Lifetime Deal จ่ายทีเดียวจบ ถ้าใช้แล้วไม่พอก็สามารถซื้อเพิ่มได้ และยังรองรับเว็บทุกประเภท ไม่ใช่แค่ WordPress ด้วย ถ้ามองในภาพรวมแล้วผมคิดว่า WP Compress คุ้มกว่าครับ
ทีนี้มาดูกันว่าการจ่ายเงินค่า Image Optimize แบบนี้ กับการจ่ายค่า Server เพื่อมีพื้นที่เยอะขึ้นในการเก็บรูป อันไหนดีกว่ากัน ถ้าเป็นเว็บเล็กประเภทว่าใช้ Shared Hosting ปีละหลักร้อยหลักพันต้นๆ การเลือกเก็บรูปไว้บน Server เลยจะประหยัดกว่า แต่ถ้าเป็นเว็บที่ VPS หรือ Cloud ที่จ่ายเดือนละ 300 บาทขึ้นไป จนถึงเดือนละหลายพันหลายหมื่นบาท พวกนี้จะใช้ Storage มาไม่เยอะมาก การเพิ่มสเปคเพื่อ Storage บางครั้งก็ไม่คุ้ม
และที่สำคัญก็คือค่าใช้จ่ายในแง่การ Backup ด้วย เพราะถ้าเราใช้พื้นที่บน Server เยอะ เราก็ต้องมี Backup ที่ใหญ่ขึ้น ซึ่งนี่ก็เป็นค่าใช้จ่ายแฝงเหมือนกัน ในขณะที่การใช้ Image Optimize CDN จะช่วยลดค่าใช้จ่ายในการ Backup ได้อีกมาก อย่างเช่นเว็บตัวอย่างที่ผมเอามาให้ดู ถ้าใช้ท่ามาตรฐานก็จะมีพื้นที่ราว 30 GB ถ้า Backup สัปดาห์ละ 1 ครั้งย้อนหลัง 1 เดือน ก็อาจจะต้องใช้พื้นที่ราว 30 GB x 4 = 120 GB ( ขึ้นอยู่กับการบีบไฟล์ด้วย ) แต่ถ้าใช้วิธีที่ผมแนะนำ ตัวเว็บจะอยู่ที่ประมาณ 5 GB x 4 = 20 GB ต่างกันหลายเท่า
ซึ่งไม่ใช่แค่เรื่องของพื้นที่ในการ Backup แต่ยังรวมถึงระยะเวลาในการ Backup และ Restore รวมถึงการใช้ Resource อย่าง CPU, RAM ระหว่างที่ทำการ Backup ด้วย ดังนั้นวิธีในบทความนี้อาจเหมาะกับการใช้งานของคุณก็ได้ครับ