เปิด GZIP Compression ด้วย Optimize Website ใน cPanel

บีบอัดไฟล์เว็บไซต์อัตโนมัติด้วยเครื่องมือในตัว cPanel เพิ่มความเร็วโดยไม่ต้องเขียนโค้ด

เปิด GZIP Compression ด้วย Optimize Website ใน cPanel cPanel

Optimize Website ในตัว cPanel คืออะไร?

Optimize Website เป็นเครื่องมือใน cPanel ที่ช่วยให้คุณบีบอัดไฟล์เว็บไซต์ (HTML, CSS, JavaScript) โดยใช้ GZIP Compression ซึ่งช่วยลดขนาดเว็บไซต์ได้มากถึง 60-70% ทำให้การโหลดหน้าเว็บเร็วขึ้น ช่วยประหยัดแบนวิดท์ และเพิ่มประสิทธิภาพ SEO ของเว็บไซต์

Optimize Website ทำงานโดยเปิดใช้ Apache Module ชื่อ mod_deflate ซึ่งทำการบีบอัดไฟล์ HTML, CSS, JavaScript บนเซิร์ฟเวอร์ก่อนส่งไปยังเบราว์เซอร์ของผู้เยี่ยมชม เมื่อเบราว์เซอร์ได้รับข้อมูลที่บีบอัดแล้ว มันจะทำการคลายความบีบอัดโดยอัตโนมัติ ผู้เยี่ยมชมจึงไม่ต้องทำอะไรเพิ่มเติม

เหตุใดการบีบอัดไฟล์จึงสำคัญต่อประสิทธิภาพเว็บ?

หน้าเว็บสมัยใหม่มีไฟล์ HTML, CSS, JavaScript จำนวนมาก ทีละไฟล์อาจไม่ใหญ่ แต่รวมกันแล้วอาจมีขนาด 500KB ถึง 2MB ปัญหา:

GZIP บีบอัดได้ดีเพราะ HTML, CSS, JavaScript มี Pattern และข้อความซ้ำ ๆ กันเยอะ ซึ่งเหมาะสำหรับการบีบอัดแบบ Lossless (ไม่หลุดข้อมูล)

วิธีเปิด GZIP ผ่าน Optimize Website ใน cPanel

วิธีนี้เป็นวิธีที่ง่ายและรีบ ใช้ได้ทั่วไป:

  1. Login เข้า cPanel ที่ https://yourdomain.com:2083
  2. ค้นหา Optimize Website ในเมนู Software/Services หรือ Performance
  3. ปกติจะแสดงสถานะว่า Compression เปิด (Enabled) หรือปิด (Disabled) อยู่แล้ว
  4. ถ้าสถานะเป็น Disabled ให้คลิก Enable หรือตัวแสดงการทำงาน
  5. หากเป็น Enabled อยู่แล้ว ไม่ต้องทำอะไรเพิ่มเติม

หลังจากนั้น GZIP จะถูกเปิดใช้งานอัตโนมัติสำหรับไฟล์ HTML, CSS, JavaScript ทั้งหมด

ตั้งค่า GZIP เพิ่มเติมผ่าน .htaccess (Advanced)

ถ้าต้องการควบคุม GZIP ให้เจาะจงมากขึ้น เช่นเพิ่มเติมประเภทไฟล์ที่ต้องการบีบอัด หรือปรับระดับการบีบอัด สามารถตั้งค่า .htaccess โดยตรงได้:

<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/json application/xml+rss
</IfModule>

อธิบาย: บรรทัดนี้บอก Apache ให้บีบอัด (DEFLATE) ไฟล์ประเภท HTML, CSS, JavaScript, JSON เป็นต้น

หรือใช้การตั้งค่า Mod_deflate ที่ละเอียดขึ้น:

<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/json
  AddOutputFilter DEFLATE js css svg xml
  DeflateCompressionLevel 9
</IfModule>

DeflateCompressionLevel 9 หมายถึงระดับการบีบอัดสูงสุด (1-9 เมื่อ 9 เป็นสูงสุด) ค่า 9 บีบอัดมากแต่ใช้ CPU มาก เลือก 6-7 พอสำหรับสมดุลระหว่างการบีบอัดกับ CPU

Tip: ไม่ต้องบีบอัดไฟล์ที่บีบอัดแล้ว เช่น JPG, PNG, GIF, WebP, MP4 เนื่องจากไฟล์ดังกล่าวบีบอัดอยู่แล้ว และการบีบอัดซ้ำจะไม่ช่วยและใช้ CPU เหล่านั้น

เปรียบเทียบการบีบอัดก่อนและหลังเปิด GZIP

ตัวอย่างผลของการบีบอัด GZIP:

หน้าเว็บเฉลี่ยประกอบด้วย HTML (50KB), CSS (30KB), JavaScript (100KB) รวม 180KB ถ้าเปิด GZIP จะลดเหลือ 44KB ที่ต้องทำให้ผู้เยี่ยมชมอัพโหลด ซึ่งเร็วขึ้นมาก


ตรวจสอบว่า GZIP ทำงานถูกต้อง

หลังเปิด GZIP ให้ตรวจสอบว่าทำงาน:

# 1. ตรวจสอบ Response Header ด้วย curl
curl -sI -H "Accept-Encoding: gzip" https://yourdomain.com | grep -i "content-encoding"
# ควรแสดง: Content-Encoding: gzip

# 2. ดูรายละเอียด Header ทั้งหมด
curl -sI -H "Accept-Encoding: gzip" https://yourdomain.com

# 3. ตรวจสอบผ่าน Chrome DevTools (F12) → Network
# เปิดหน้าเว็บ ไปที่ tab Network
# คลิกที่ request แถวแรก (document) ไปที่ Response Headers
# ดูว่า Content-Encoding มีค่า "gzip" หรือไม่

# 4. ตรวจเช็ค ขนาดไฟล์ที่อัพโหลด vs ขนาดจริง
# ใน Network tab คลิกไฟล์ HTML จะแสดง:
# Transferred: 12 KB (size after compression)
# Size: 50 KB (original size)
Tip: หากใช้ Mac ลองใช้คำสั่ง: curl -sI -H "Accept-Encoding: gzip" https://yourdomain.com | grep -i encoding หรือสำหรับ Windows ใช้ PowerShell: Invoke-WebRequest -Uri "https://yourdomain.com" -Method Head | Select-Object -ExpandProperty Headers | Select-Object Content-Encoding

แก้ปัญหาที่พบบ่อย

Error: "GZIP ไม่เปิด Optimize Website เนื่องจาก mod_deflate ไม่ติดตั้ง"

บางเซิร์ฟเวอร์ไม่มี Apache mod_deflate เปิดใช้งาน หากเจอข้อความ "mod_deflate not available" ให้ติดต่อ Hosting Provider ขอให้เปิด mod_deflate

วิธีแก้ชั่วคราว: ลอง .htaccess ด้านบน หากเป็น IfModule มันจะตรวจสอบและข้ามไปถ้า mod_deflate ไม่มี แล้วติดต่อ Hosting Provider ขอตั้งค่า

Error: "หลังเปิด GZIP หน้าเว็บดูหัก (ตัวอักษรมลทินหรือไทยเสีย)"

ปกติไม่เกิด แต่หากเกิดขึ้นมักเนื่องจาก Charset Encoding ไม่ตรงกัน

วิธีแก้: ตรวจสอบในไฟล์ HTML ว่ามี <meta charset="UTF-8"> หรือไม่ ถ้าไม่มีให้เพิ่มเข้าไป ส่วนใหญ่เป็นที่อยู่ใน <head> แล้ว

Error: "ไฟล์ PDF, Excel, รูปภาพ ไม่ต้องบีบอัด แต่บีบอัดเฉพาะ HTML, CSS, JS"

GZIP อัตโนมัติจะบีบอัดเฉพาะประเภทไฟล์ที่กำหนด (text-based) ไม่มีผลต่อไฟล์ที่บีบอัดแล้ว เช่น JPG, PDF, MP4 ดังนั้นไม่ต้องกังวล

หากต้องการตรวจสอบ ดูไฟล์ที่บีบอัดไหม่ผ่าน .htaccess ด้านบนที่มี AddOutputFilterByType DEFLATE

Error: "หลังเปิด GZIP คะแนน Lighthouse ขึ้นแต่ยังต่ำ"

GZIP เป็นเพียงขั้นตอนหนึ่ง การเพิ่มความเร็วมี factor อื่น ๆ ด้วย:

Error: "CPU Usage ขึ้นหลังเปิด GZIP"

การบีบอัดต้องใช้ CPU ดังนั้นถ้า Hosting Plan มี Resource น้อย อาจเห็น CPU สูงขึ้น แต่ส่วนใหญ่ปรับ DeflateCompressionLevel เป็น 6 แทน 9 ก็ช่วยได้

วิธีแก้: ลดระดับการบีบอัดจาก 9 เป็น 5-6 ลดการใช้ CPU ลง แต่ยังบีบอัดได้ดี


คำถามที่พบบ่อย

Q: GZIP บีบอัดรูปภาพได้หรือไม่?

A: ไม่ GZIP ทำงานเฉพาะกับไฟล์ text-based เช่น HTML, CSS, JavaScript รูปภาพ (JPG, PNG, GIF, WebP) มีการบีบอัดในตัวแล้ว และการบีบอัด GZIP ซ้ำจะไม่ช่วยใด ๆ ทั้ง นั้น ถ้าต้องการลดขนาดรูปให้ใช้ Image Manager หรือเปลี่ยนเป็น WebP

Q: ทำไมบางเบราว์เซอร์ยังมี Content-Encoding ไม่ใช่ gzip?

A: เบราว์เซอร์เก่าบางตัว (เช่น Internet Explorer 5) ไม่รองรับ GZIP ดังนั้น Hosting Provider อาจปิดการบีบอัดสำหรับเบราว์เซอร์เหล่านั้น หรือเบราว์เซอร์ที่ร้องขอไม่มี Accept-Encoding: gzip ใน Header ส่วนใหญ่เบราว์เซอร์สมัยใหม่รองรับ จึงไม่เป็นปัญหา

Q: GZIP ต้องติดตั้งหรือส่วนประกอบเพิ่มเติมอื่น ๆ หรือไม่?

A: ไม่ GZIP ใช้ mod_deflate ซึ่งเป็น Apache Module มาตรฐาน มีอยู่ในเซิร์ฟเวอร์ส่วนใหญ่แล้ว คุณเพียงแค่เปิด Optimize Website ใน cPanel หรือเพิ่มบรรทัด .htaccess ข้างบน ไม่ต้องติดตั้งอะไรเพิ่มเติม