วิธีเปิดใช้งานการบีบอัด GZIP เพื่อเพิ่มความเร็วไซต์ WordPress

เผยแพร่แล้ว: 2020-10-16

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

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

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

ตื่นเต้น? มาคลายเครียดกันเถอะ!

ต้องการดูเวอร์ชันวิดีโอหรือไม่

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

พื้นฐานของการบีบอัดข้อมูลบนเว็บ

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

ภาพประกอบส่วนประกอบหลักของหน้าเว็บ
องค์ประกอบหลักของหน้าเว็บ

ตัวอย่างเช่น การลดขนาด HTML, CSS และ JavaScript เป็นวิธีง่ายๆ ในการลดปริมาณข้อมูลที่ส่งโดยเบราว์เซอร์ ในที่นี้ ตัวย่อจะบีบอัดข้อความโดยลบอักขระที่ไม่จำเป็น เช่น ความคิดเห็นและช่องว่างออกจากซอร์สโค้ด

ในตัวอย่างด้านล่างของเอกสาร HTML อย่างง่าย มีเนื้อหาสามประเภท: มาร์กอัป HTML, สไตล์ CSS และโค้ด JavaScript

เนื้อหาแต่ละประเภทมีรูปแบบและความหมายเฉพาะ โดยรวมแล้ว เอกสาร HTML นี้มีทั้งหมด 357 อักขระ

 < html > < head > < style > /* kinsta-banner is used on the homepage only */ .kinsta-banner { font-size: 150% } .kinsta-banner { width: 75% } </ style > </ head > < body > <!-- kinsta banner START --> < div >...</ div > <!-- kinsta banner END --> < script > kinstaScripts(); // random scripts used on the page </ script > </ body > </ html >

รหัสข้างต้นง่ายต่อการอ่านและปฏิบัติตาม เหมาะอย่างยิ่งสำหรับการพัฒนา อย่างไรก็ตาม เบราว์เซอร์ไม่จำเป็นต้องอ่านความคิดเห็นและมีแท็กเยื้องอย่างสมบูรณ์ คอมเพรสเซอร์อัจฉริยะสามารถวิเคราะห์เอกสารนี้และลบบิตที่ไม่จำเป็นทั้งหมดออกจากเอกสาร

 < html >< head >< style >.kinsta-banner{font-size:150%;width:75%}</ style ></ head >< body >< div >...</ div >< script >kinstaScripts();</ script ></ body ></ html >

หลังจากการย่อขนาด เอกสาร HTML จะลดลงเหลือเพียง 141 อักขระ นั่นคือการ ประหยัด 60.50% ในจำนวนอักขระ สายตาไม่ง่ายนัก แต่ก็ไม่สำคัญกับเบราว์เซอร์ มันยังคงแสดงหน้าเดียวกันให้ผู้ใช้เห็น

ในการใช้ประโยชน์จากทั้งสองเวอร์ชัน คุณสามารถรักษาเอกสารต้นฉบับเป็น "เวอร์ชันสำหรับการพัฒนา" แต่ลดขนาดโค้ดทั้งหมดก่อนที่จะเผยแพร่

ปลั๊กอินประสิทธิภาพของ WordPress ส่วนใหญ่จะดูแลสิ่งนี้ให้คุณโดยอัตโนมัติ

การเปรียบเทียบขนาดไฟล์ของ jQuery . ที่ไม่บีบอัดและย่อขนาด
การบีบอัดขนาดไฟล์ของ jQuery . ที่ไม่บีบอัดและย่อขนาด

ตัวอย่างเช่น ไลบรารี jQuery 3.5.1 เวอร์ชันที่ไม่มีการบีบอัดนั้นใหญ่กว่าเวอร์ชันย่อเล็กสุดของไฟล์เดียวกันมากกว่า 3 เท่า

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

แต่การบีบอัดข้อมูลมีมากกว่าการลดขนาด การใช้เทคนิคทางคณิตศาสตร์ขั้นสูง อัลกอริธึมการบีบอัดข้อมูลสามารถลดขนาดของข้อมูลได้อีก

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

การบีบอัด GZIP คืออะไร?

GZIP ย่อมาจาก GNU Zip เป็นวิธีการบีบอัดข้อมูลแบบไม่สูญเสียที่ได้รับความนิยมมากที่สุดบนเว็บ ช่วยให้คุณลดขนาดหน้า HTML สไตล์ชีตและสคริปต์ของไซต์ได้

นอกจากจะเป็นอัลกอริธึมการบีบอัดข้อมูลแล้ว GZIP ยังเป็นนามสกุลไฟล์ ( .gz ) และซอฟต์แวร์ที่ใช้สำหรับการบีบอัด/แตกไฟล์

มันใช้อัลกอริธึม DEFLATE ซึ่งเป็นส่วนผสมของการเข้ารหัส LZ77 และอัลกอริธึมการเข้ารหัส Huffman

ภาพประกอบของการบีบอัด GZIP ตามอัลกอริทึม DEFLATE
การบีบอัด GZIP ขึ้นอยู่กับอัลกอริทึม DEFLATE

คอมเพรสเซอร์ GZIP ใช้ชุดข้อมูลดิบและบีบอัดข้อมูลโดยไม่สูญเสียข้อมูล ข้อมูลดิบอาจมาจากไฟล์ประเภทใดก็ได้ แต่ GZIP ทำงานได้ดีที่สุดกับเนื้อหาแบบข้อความ (เช่น HTML, CSS, JS)

ส่วนถัดไปจะกล่าวถึงวิธีการทำงานของการบีบอัด GZIP ในเชิงลึก

GZIP บีบอัดข้อมูลอย่างไร

ภาพประกอบคร่าวๆ ว่าการบีบอัด GZIP ทำงานอย่างไร
ภาพประกอบคร่าวๆ ว่าการบีบอัด GZIP ทำงานอย่างไร

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

จากนั้นแทนที่สตริงที่ซ้ำกันทั้งหมดด้วยทูเพิลเพื่อบีบอัดข้อมูลดิบ

ภาพประกอบของอัลกอริทึมการเข้ารหัส LZ77
ภาพประกอบของอัลกอริทึมการเข้ารหัส LZ77

ในตัวอย่างข้างต้น ขนาดหน้าต่างบานเลื่อนมีความยาวเพียง 13 อักขระ (13 ไบต์) อย่างไรก็ตาม การบีบอัด GZIP สามารถใช้ขนาดหน้าต่างบานเลื่อนสูงสุด 32 KB (32,768 ไบต์) ขนาดของหน้าต่างบานเลื่อนมีบทบาทสำคัญในประสิทธิภาพการบีบอัด LZ77

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

เทคนิคนี้เหมือนกับเทคนิคที่ใช้ในรหัสมอร์ส ซึ่งตัวอักษรที่เกิดขึ้นบ่อยกว่าในภาษาอังกฤษจะได้ลำดับที่สั้นที่สุด

เพื่อให้เข้าใจว่าอัลกอริทึมการเข้ารหัส Huffman ทำงานอย่างไร ให้พิจารณาคำว่า BOOKKEEPER มีความยาว 10 อักขระ แต่มีอักขระที่ไม่ซ้ำกันเพียง 6 ตัว คำนี้มีตัวอักษรเดี่ยว คู่ และสามตัวผสมกันได้ดี

เว็บไซต์เกือบทั้งหมดใช้การเข้ารหัสอักขระ UTF-8 เพื่อแสดงตัวอักษรและสัญลักษณ์ อักขระ ASCII ทุกตัวใน UTF-8 ซึ่งรวมถึงตัวอักษรภาษาอังกฤษด้วย ใช้ 1 ไบต์ (8 บิต)

คำว่า “BOOKKEEPER” มีตัวอักษรซ้ำหลายตัว
คำว่า “BOOKKEEPER” มีตัวอักษรซ้ำหลายตัว

สตริงอักขระ 10 ตัว เช่น BOOKKEEPER ต้องการหน่วยความจำ 10 ไบต์ (80 บิต) คุณจะเห็นว่ามี 1 อินสแตนซ์ของตัวอักษร B , P , R , 2 อินสแตนซ์ของตัวอักษร O และ K และ 3 อินสแตนซ์ของตัวอักษร E

อัลกอริทึมการเข้ารหัส Huffman ใช้ความรู้นี้เพื่อบีบอัดสตริงโดยไม่สูญเสียข้อมูล มันทำได้โดยการสร้างไบนารีทรีที่มีตัวอักษรที่ไม่ซ้ำกันทุกตัวเป็นใบไม้

ตัวอักษรที่มีความถี่ต่ำที่สุด (เช่น B , P , R ) จะพบว่าตัวเองอยู่ที่ด้านล่างของต้นไม้ ในขณะที่ตัวอักษรที่ปรากฏบ่อยๆ (เช่น E , O , K ) จะพบว่าตัวเองอยู่ด้านบนสุด

โหนดบนสุดในแผนผังคือ รู ท และค่าของโหนดนั้นเท่ากับจำนวนอักขระทั้งหมดในสตริง

Huffman Tree สำหรับคำว่า “BOOKKEEPER”
Huffman Tree สำหรับคำว่า “BOOKKEEPER”

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

รหัส Huffman เป็นรหัสไบนารีที่ไม่ซ้ำกันสำหรับอักขระทุกตัว
รหัส Huffman เป็นรหัสไบนารีที่ไม่ซ้ำกันสำหรับอักขระทุกตัว

คุณสามารถสังเกตได้ว่าตัวอักษรที่มีความถี่สูงสุดมีรหัส Huffman ด้วยขนาดบิตที่เล็กที่สุด

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

คำ 80 บิตเข้ารหัสเป็นสตริง 25 บิต
คำ 80 บิตเข้ารหัสเป็นสตริง 25 บิต

นั่นคือหน่วยความจำลดลง 68.75% ที่จำเป็นในการจัดเก็บคำต้นฉบับ

การใช้ทรี Huffman กับแบบแผน 0 / 1 จะสร้างรหัสไบนารี่ที่ตรงตามคุณสมบัติคำนำหน้า ช่วยให้มั่นใจได้ว่ารหัส Huffman ของอักขระใด ๆ ไม่ใช่คำนำหน้าของรหัสอักขระอื่น ๆ ทำให้ง่ายต่อการถอดรหัสสตริงที่เข้ารหัสโดยใช้แผนผัง Huffman สิ่งนี้มีบทบาทสำคัญในความเร็วในการคลายการบีบอัด GZIP

เช่นเดียวกับคำข้างต้น คอมเพรสเซอร์ GZIP ใช้อัลกอริธึมการเข้ารหัส Huffman เพื่อเพิ่มประสิทธิภาพ tuples ที่สร้างโดยอัลกอริธึม LZ77 ให้เหมาะสมยิ่งขึ้น ซึ่งส่งผลให้ไฟล์ที่มีการบีบอัดสูงที่มีนามสกุล .gz

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการทำงานของ GZIP โปรดดูวิดีโอนี้เพื่อดูภาพรวมโดยย่อ

การบีบอัด GZIP ดีแค่ไหน?

โดยทั่วไปแล้ว GZIP จะมีอัตราส่วนการบีบอัดที่ประมาณ 70% สำหรับไฟล์ขนาดเล็ก แต่สามารถเข้าถึงได้ถึง 90% สำหรับเนื้อหาแบบข้อความที่ใหญ่ขึ้น

การเปรียบเทียบอัตราส่วนการบีบอัด GZIP สำหรับไลบรารี CSS และ JS ต่างๆ
อัตราการบีบอัด GZIP สำหรับไลบรารี CSS และ JS ยอดนิยม

ในตารางด้านบน คุณจะเห็นว่าการบีบอัดไฟล์ย่อเล็กสุดด้วย GZIP สามารถลดขนาดไฟล์ได้อีก

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

ความแรงของอัลกอริธึมการบีบอัดไม่ได้ขึ้นอยู่กับอัตราส่วนการบีบอัดเท่านั้น แต่ยังขึ้นอยู่กับความรวดเร็วและมีประสิทธิภาพในการบีบอัดและขยายข้อมูลด้วย นั่นคือสิ่งที่ GZIP เป็นเลิศสำหรับกรณีการใช้งานส่วนใหญ่

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

ประสิทธิภาพการบีบอัดของ brotli กับ bzip2 เทียบกับ GZIP เทียบกับ xz (ที่มา: OpenCPU)
ประสิทธิภาพการบีบอัดของ brotli กับ bzip2 เทียบกับ GZIP เทียบกับ xz (ที่มา: OpenCPU)

แผนภูมิด้านบนเปรียบเทียบประสิทธิภาพการบีบอัดของอัลกอริทึมการบีบอัด brotli , bzip2 , gzip และ xz GZIP แพ้ในการทดสอบอัตราส่วนการอัดเล็กน้อย แต่สำหรับความเร็วการบีบอัดและการคลายการบีบอัด จะเอาชนะคู่แข่งได้โดยสิ้นเชิง

เมื่อดูที่กราฟความเร็วการบีบอัด เราสามารถสรุปได้ว่า GZIP เหมาะอย่างยิ่งสำหรับการบีบอัดแบบเรียลไทม์ในเซิร์ฟเวอร์ HTTP และสตรีมข้อมูลอื่นๆ บนเว็บ เมื่อพิจารณาถึงข้อดีทั้งหมดในการพัฒนาเว็บ IETF ให้สัตยาบัน GZIP ให้เป็นหนึ่งในสามรูปแบบมาตรฐานสำหรับการบีบอัดใน HTTP/1.1

หมายเหตุ: สิ่งที่เป็นนามธรรมของไลบรารีบีบอัดของ GZIP ที่เรียกว่า zlib ถูกใช้ในระบบปฏิบัติการยอดนิยมมากมาย (Linux, macOS, iOS) และคอนโซลเกมสมัยใหม่ (PlayStation 4, Wii U, Xbox One) นอกจากนี้ยังใช้ในรูปแบบไฟล์ PNG แบบไม่สูญเสียข้อมูลสำหรับการบีบอัดรูปภาพ

6 ข้อดีของการบีบอัด GZIP

มาดูข้อดีที่สำคัญที่สุดของการบีบอัด GZIP กันดีกว่า

ให้อัตราส่วนกำลังอัดที่เหมาะสม

ตามที่กล่าวไว้ก่อนหน้านี้ GZIP ไม่มีอัตราการบีบอัดที่ดีที่สุดเมื่อเทียบกับคู่แข่ง แต่ก็ไม่ไกลจากพวกเขาเช่นกัน โดยทั่วไป มันสามารถช่วยลดขนาดของทรัพยากรแบบข้อความได้ 70-90%

การบีบอัดและคลายการบีบอัดที่เร็วเป็นพิเศษ

สำหรับความเร็วในการบีบอัดและขยายข้อมูล GZIP เป็นผู้ชนะที่ชัดเจน เป็นที่ต้องการอย่างมากสำหรับการบีบอัดแบบ on-the-fly ในเซิร์ฟเวอร์ HTTP และสตรีมข้อมูลอื่นๆ

ต้องใช้หน่วยความจำน้อยมาก

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

ไม่ขยายตัวมากนักแม้ในกรณีที่เลวร้ายที่สุด

อัลกอริธึมการบีบอัดข้อมูลแบบไม่สูญเสีย เช่น GZIP มีขีดจำกัดที่เข้มงวดเกินกว่าที่ไม่สามารถบีบอัดข้อมูลได้

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

ใช้งานฟรีและโอเพ่นซอร์ส

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

เพลิดเพลินกับการสนับสนุนสากล

จากข้อมูลของ W3Techs การบีบอัด GZIP นั้นถูกใช้โดย 82% ของเว็บไซต์ทั้งหมดที่พวกเขาติดตาม ทำให้เป็นอัลกอริธึมการบีบอัดที่ใช้กันอย่างแพร่หลายที่สุดในเว็บ

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

คำเตือน GZIP ในเครื่องมือทดสอบความเร็วเว็บไซต์

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

นอกจากนี้ยังเป็นวิธีที่ง่ายที่สุดวิธีหนึ่งในการเพิ่มประสิทธิภาพ WordPress อย่างไรก็ตาม ไซต์ WordPress จำนวนมากยังคงไม่ใช้งาน

เมื่อคุณเยี่ยมชมเว็บไซต์ เบราว์เซอร์ของคุณจะตรวจสอบว่าเว็บเซิร์ฟเวอร์เปิดใช้งาน GZIP หรือไม่ โดยตรวจสอบการ content-encoding: gzip หากมีส่วนหัวอยู่ มันจะดึงไฟล์ที่บีบอัด คลายการบีบอัด แล้วให้บริการไฟล์ที่มีขนาดเล็กกว่าให้คุณโดยอัตโนมัติ

ส่วนหัวการตอบกลับ "การเข้ารหัสเนื้อหา: gzip"
ส่วนหัวการตอบสนอง "การเข้ารหัสเนื้อหา: gzip" ใน Chrome DevTools

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

คำเตือน GZIP ใน Google PageSpeed ​​Insights / Lighthouse

Google PageSpeed ​​Insights จะแสดงคำเตือนเมื่อคุณไม่ได้เปิดใช้งานการบีบอัดข้อความบนเว็บไซต์ของคุณ

หมายเหตุ: Google PageSpeed ​​Insights และ Google Lighthouse เป็นเครื่องมือทดสอบประสิทธิภาพเว็บไซต์สองแบบแยกกัน พวกเขาทำงานแยกจากกันจนถึงปี 2018 เมื่อ Google อัปเกรด PageSpeed ​​Insights เพื่อใช้ Lighthouse เป็นเครื่องมือวิเคราะห์ ดังนั้น PageSpeed ​​Insights และ Lighthouse จึงเป็นหนึ่งเดียวกันในขณะนี้

คำเตือน "เปิดใช้งานการบีบอัดข้อความ" ใน Google PageSpeed ​​Insights
คำเตือน "เปิดใช้งานการบีบอัดข้อความ" ใน Google PageSpeed ​​Insights

ในไซต์ตัวอย่างด้านบน การบีบอัดทรัพยากรแบบข้อความสามารถลดน้ำหนักของหน้าได้กว่า 78% และเพิ่มความเร็วในการโหลดหน้าเว็บได้ 2.1 วินาที

หมายเหตุ: PageSpeed ​​Insights อาศัยส่วนหัวการตอบสนองที่เซิร์ฟเวอร์ส่งกลับมายังเบราว์เซอร์ของคุณ บางครั้ง อาจแสดงคำเตือนที่ผิดพลาดแม้ว่าคุณจะเปิดใช้งานการบีบอัด GZIP ก็ตาม อาจเป็นเพราะการทดสอบความเร็วบนเครื่องที่ใช้พร็อกซีเซิร์ฟเวอร์ระดับกลางหรือซอฟต์แวร์ความปลอดภัย อาจรบกวนการดาวน์โหลดไฟล์บีบอัดจากเซิร์ฟเวอร์ภายนอก

คำเตือน GZIP ใน GTmetrix

GTmetrix จะแสดงคำเตือนหากเว็บไซต์ของคุณไม่ให้บริการทรัพยากรแบบข้อความที่บีบอัด เช่นเดียวกับ Google PageSpeed ​​Insights นอกจากนี้ยังแสดงการประหยัดที่เป็นไปได้ที่คุณสามารถทำได้

คำเตือน "เปิดใช้งานการบีบอัด" ใน GTmetrix
คำเตือน "เปิดใช้งานการบีบอัด" ใน GTmetrix

หมายเหตุ: GTmetrix กำลังอัปเกรดอัลกอริธึมการทดสอบความเร็วเพื่อแทนที่ PageSpeed ​​Insights และไลบรารี YSlow เก่าด้วยเมตริก Google Lighthouse ล่าสุด คุณสามารถคาดหวังได้ว่าคำเตือนการบีบอัด GZIP จะคล้ายกับคำเตือนที่แสดงโดย Lighthouse

คำเตือน GZIP ในเครื่องมือ Pingdom

Pingdom Tools แสดงคำเตือนที่ตรงไปตรงมาเพื่อบีบอัดส่วนประกอบเว็บไซต์ของคุณด้วย GZIP

คำเตือน "บีบอัดส่วนประกอบด้วย GZIP" ใน Pingdom Tools
คำเตือน "บีบอัดส่วนประกอบด้วย GZIP" ใน Pingdom Tools

ในส่วนคำอธิบาย Pingdom Tools ยังให้สถิติบางประการเกี่ยวกับความสำคัญของ GZIP ถั่วเย็น!

คำเตือน GZIP ใน WebPageTest

WebPageTest จะแสดงคำเตือนในแท็บ การตรวจสอบประสิทธิภาพ หากตรวจพบว่าไม่มีการตอบสนองที่บีบอัดได้ในลักษณะที่เหมาะสมที่สุด

คำเตือน "ใช้การบีบอัด GZIP" ใน WebPageTest
คำเตือน "ใช้การบีบอัด GZIP" ใน WebPageTest

WebPageTest จะให้คะแนนแบบให้คะแนนเพื่อแสดงว่าคำเตือนนั้นรุนแรงเพียงใด ตัวอย่างเช่น จะให้คะแนนคำเตือนด้านบน 23 จาก 100 ซึ่งหมายความว่าคุณควรแก้ไขตามลำดับความสำคัญ

วิธีตรวจสอบว่าเปิดใช้งานการบีบอัด GZIP หรือไม่

การ Accept-Encoding: gzip, deflate HTTP header ได้รับการสนับสนุนโดยเบราว์เซอร์ที่ทันสมัยทั้งหมดอย่างมีประสิทธิภาพ ดังนั้น โฮสต์เว็บส่วนใหญ่ รวมถึง Kinsta จึงเปิดใช้งานการบีบอัด GZIP ตามค่าเริ่มต้นบนเซิร์ฟเวอร์ทั้งหมดของตน

เมื่อเว็บเซิร์ฟเวอร์เห็นส่วนหัวนี้ที่ส่งโดยเบราว์เซอร์ แสดงว่าเบราว์เซอร์รองรับ GZIP และตอบสนองด้วยการตอบสนอง HTTP ที่บีบอัดโดยใช้ content-encoding: gzip

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

ด้านล่างนี้คือวิธีตรวจสอบการบีบอัด GZIP ที่ตรงไปตรงมา

1. เครื่องมือทดสอบการบีบอัด GZIP ออนไลน์

การใช้เครื่องมือออนไลน์เป็นวิธีที่ง่ายที่สุดในการตรวจสอบว่าเปิดใช้งานการบีบอัด GZIP บนเว็บไซต์ของคุณหรือไม่ ฉันขอแนะนำให้ใช้เครื่องมือตรวจสอบการบีบอัด GZIP หรือการทดสอบการบีบอัด HTTP ฟรี เพียงป้อน URL เว็บไซต์ของคุณแล้วกดปุ่ม ตรวจสอบ หรือ ทดสอบ

เครื่องมือออนไลน์ทั้งสองนี้จะแสดงรายงานสั้นๆ เกี่ยวกับการเปิดใช้งาน GZIP หรือไม่ และปริมาณการถ่ายโอนข้อมูลที่คุณได้บันทึกไว้ (หรืออาจบันทึก) โดยให้บริการ URL ทดสอบที่เปิดใช้งานการบีบอัด GZIP

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

ทดสอบหน้าแรกของ Kinsta ด้วยเครื่องมือตรวจสอบการบีบอัด GZIP
ทดสอบหน้าแรกของ Kinsta ด้วยเครื่องมือตรวจสอบการบีบอัด GZIP
การทดสอบ Kinsta.com ด้วยเครื่องมือทดสอบการบีบอัด HTTP
การทดสอบ Kinsta.com ด้วยเครื่องมือทดสอบการบีบอัด HTTP

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

CDN ที่ทันสมัยส่วนใหญ่ เช่น Cloudflare, Kinsta CDN, KeyCDN และ CloudFront รองรับการบีบอัด GZIP คุณทดสอบเนื้อหาที่ให้บริการโดย CDN สำหรับการบีบอัด GZIP ได้โดยลิงก์กับเนื้อหาโดยตรง

การทดสอบการบีบอัด GZIP สำหรับเนื้อหาที่โฮสต์โดย CDN
การทดสอบการบีบอัด GZIP สำหรับเนื้อหาที่โฮสต์โดย CDN

ในรายงานข้างต้น คุณจะเห็นว่า Kinsta CDN ใช้เอ็นจิน KeyCDN ซึ่งเป็นการดึง CDN แบบดั้งเดิม หากคุณกำลังใช้ Kinsta เพื่อโฮสต์ไซต์ WordPress ของคุณ คุณไม่ต้องกังวลเกี่ยวกับการบีบอัด GZIP เนื่องจากเปิดใช้งานโดยค่าเริ่มต้น

2. "การเข้ารหัสเนื้อหา: gzip" HTTP Response Header

วิธีที่สองในการตรวจสอบว่าเว็บไซต์ส่งเนื้อหาที่บีบอัดด้วย GZIP หรือไม่ โดยการตรวจสอบการ content-encoding: gzip HTTP

เบื่อกับการสนับสนุนโฮสติ้ง WordPress ระดับ subpar โดยไม่มีคำตอบหรือไม่? ลองทีมสนับสนุนระดับโลกของเรา! ตรวจสอบแผนของเรา

คุณสามารถเปิด Chrome DevTools หรือ Firefox Developer Tools และค้นหาส่วนหัวการตอบสนองนี้ภายใต้ส่วน Network

ฉันได้แสดงให้เห็นแล้วว่าหน้าตาของมันเป็นอย่างไรใน Chrome DevTools ก่อนหน้านี้ นี่คือลักษณะที่ปรากฏในเครื่องมือสำหรับนักพัฒนาของ Firefox

ส่วนหัว “การเข้ารหัสเนื้อหา: gzip” ในเครื่องมือสำหรับนักพัฒนา Firefox
ส่วนหัว “การเข้ารหัสเนื้อหา: gzip” ในเครื่องมือสำหรับนักพัฒนา Firefox

คุณยังสามารถเปิดใช้งานตัวเลือก “ใช้แถวคำขอขนาดใหญ่” ในแผงการตั้งค่า Chrome DevTools เพื่อดูทั้งขนาดดั้งเดิมและขนาดที่บีบอัดของหน้า ดังที่คุณเห็นด้านล่าง ขนาดของหน้าต้นฉบับลดลงจาก 118 KB เหลือเพียง 22.9 KB หลังจากบีบอัดด้วย GZIP

ดูขนาดหน้าที่บีบอัดและไม่บีบอัดใน Chrome Devtools
ดูขนาดหน้าที่บีบอัดและไม่บีบอัดใน Chrome Devtools

3. เครื่องมือทดสอบความเร็วหน้าเว็บ

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

คำเตือน GZIP ในเครื่องมือทดสอบความเร็วหน้าเว็บต่างๆ
คำเตือน GZIP ในเครื่องมือทดสอบความเร็วหน้าเว็บต่างๆ

คุณสามารถใช้เครื่องมือต่างๆ เช่น PageSPeed Insights, GTmetrix, Pingdom Tools และ WebPageTest เพื่อตรวจสอบว่าคุณเปิดใช้งานการบีบอัด GZIP บนเว็บไซต์ WordPress ของคุณหรือไม่

วิธีเปิดใช้งานการบีบอัด GZIP

หากคุณไม่ได้เปิดใช้งานการบีบอัด GZIP บนเว็บเซิร์ฟเวอร์ของคุณ มีหลายวิธีในการเปิดใช้งาน วิธีการที่แน่นอนขึ้นอยู่กับเว็บเซิร์ฟเวอร์ที่คุณใช้โฮสต์เว็บไซต์ของคุณ

ข้อ สำคัญ: เช่นเคย สำรองข้อมูลไฟล์การกำหนดค่าไซต์และเซิร์ฟเวอร์ของคุณก่อนแก้ไข

เปิดใช้งาน GZIP ด้วยปลั๊กอิน WordPress

วิธีที่ง่ายที่สุดในการเปิดใช้งานการบีบอัด GZIP บนไซต์ WordPress ของคุณคือการใช้แคชหรือปลั๊กอินเพิ่มประสิทธิภาพ

ตัวอย่างเช่น หากคุณโฮสต์ไซต์ WordPress ของคุณบนเว็บเซิร์ฟเวอร์ Apache W3 Total Cache จะมีตัวเลือกในการเปิดใช้งานการบีบอัด GZIP ใต้แผงการตั้งค่า แคชของเบราว์เซอร์

ในทำนองเดียวกัน WP Rocket ให้คุณเพิ่มกฎการบีบอัด GZIP โดยอัตโนมัติ ปลั๊กอินเหล่านี้เปิดใช้งานการบีบอัด GZIP โดยเพิ่มโมดูล mod_deflate ของ Apache ลงในไฟล์ .htaccess

เปิดใช้งานการบีบอัด GZIP ใน W3 Total Cache
เปิดใช้งานการบีบอัด GZIP ใน W3 Total Cache

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

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

หมายเหตุ: Kinsta ได้ปรับแพลตฟอร์มให้มีประสิทธิภาพ ความน่าเชื่อถือ และความปลอดภัยสูง ซึ่งรวมถึงการเปิดใช้งานการบีบอัด GZIP ตามค่าเริ่มต้นสำหรับแผนการโฮสต์ทั้งหมด

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

เปิดใช้งาน GZIP บนเว็บเซิร์ฟเวอร์ Apache

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

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

คุณมีสองตัวเลือกในการแก้ไขการกำหนดค่าเซิร์ฟเวอร์ของ Apache ตามระดับการเข้าถึงที่คุณมี:

  1. หากคุณสามารถเข้าถึงไฟล์การกำหนดค่าเซิร์ฟเวอร์หลักได้ (ปกติจะเรียกว่า httpd.conf ) ขอแนะนำให้ใช้เพื่อกำหนดค่า Apache เนื่องจากไฟล์ . htaccess อาจทำให้ Apache ทำงานช้าลง
  2. หากคุณไม่สามารถเข้าถึงไฟล์การกำหนดค่าเซิร์ฟเวอร์หลัก ซึ่งโดยปกติแล้วจะเป็นกรณีของผู้ให้บริการโฮสติ้งที่ใช้ร่วมกันของ WordPress ส่วนใหญ่ คุณจะต้องกำหนดค่า Apache โดยใช้ไฟล์ . htaccess

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

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

ในการเริ่มต้น ใช้ SFTP หรือตัวจัดการไฟล์ออนไลน์ของโฮสต์เพื่อค้นหาไฟล์ . htaccess ในไดเรกทอรีรากของไซต์ WordPress จากนั้นเพิ่มข้อมูลโค้ดด้านล่างลงไป

สำคัญ: ตรวจสอบให้แน่ใจว่าโมดูล mod_filter ใช้งานอยู่บนเซิร์ฟเวอร์ของคุณ โฮสต์เว็บส่วนใหญ่จะเปิดใช้งานตามค่าเริ่มต้น แต่ถ้าไม่ใช่ คำสั่ง AddOutputFilterByType จะไม่ทำงานและอาจทำให้เกิดข้อผิดพลาด HTTP 500 คุณสามารถตรวจสอบบันทึกข้อผิดพลาดของเซิร์ฟเวอร์ได้หากคุณมีปัญหาใดๆ หลังจากเพิ่มข้อมูลโค้ดด้านล่าง

 <IfModule mod_deflate.c> # Compress HTML, CSS, JavaScript, Text, XML and fonts AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml # Remove browser bugs (only needed for ancient browsers) BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html Header append Vary User-Agent </IfModule>

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

ตัวอย่างไฟล์ Apache .htaccess หลังจากเปิดใช้การบีบอัด GZIP
ตัวอย่างไฟล์ Apache .htaccess หลังจากเปิดใช้การบีบอัด GZIP

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

หากคุณต้องการให้แน่ใจว่าพร็อกซี่และซอฟต์แวร์ความปลอดภัยบนฝั่งไคลเอ็นต์ไม่รบกวนการบีบอัด GZIP คุณสามารถเปลี่ยนข้อมูลโค้ดด้านบนด้วยโค้ดด้านล่างได้

 <IfModule mod_deflate.c> # force compression for clients that mangle 'Accept-Encoding' request headers <IfModule mod_setenvif.c> <IfModule mod_headers.c> SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding </IfModule> </IfModule> # compress all output with one of the following file extensions <IfModule mod_filter.c> AddOutputFilterByType DEFLATE "application/atom+xml" \ "application/javascript" \ "application/json" \ "application/ld+json" \ "application/manifest+json" \ "application/rdf+xml" \ "application/rss+xml" \ "application/schema+json" \ "application/geo+json" \ "application/vnd.ms-fontobject" \ "application/wasm" \ "application/x-font-ttf" \ "application/x-javascript" \ "application/x-web-app-manifest+json" \ "application/xhtml+xml" \ "application/xml" \ "font/eot" \ "font/opentype" \ "font/otf" \ "font/ttf" \ "image/bmp" \ "image/svg+xml" \ "image/vnd.microsoft.icon" \ "text/cache-manifest" \ "text/calendar" \ "text/css" \ "text/html" \ "text/javascript" \ "text/plain" \ "text/markdown" \ "text/vcard" \ "text/vnd.rim.location.xloc" \ "text/vtt" \ "text/x-component" \ "text/x-cross-domain-policy" \ "text/xml" </IfModule> # define and map media types to their appropriate encoding type # Using SVG format (Scalable Vector Graphics) is highly recommended to # load logos, icons, text, and simple images. You can compress .SVG files # further using GZIP to create .SVGZ files. However, most browsers don't # know that they need to decompress them first if they're not served # without an appropriate 'content-encoding' HTTP response header. Thus, # these images wouldn't show up in the browser. Hence, this module. <IfModule mod_mime.c> AddType image/svg+xml svg svgz AddEncoding gzip svgz </IfModule> </IfModule>

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

เปิดใช้งาน GZIP บนเว็บเซิร์ฟเวอร์ Nginx

ตาม Netcraft Nginx เป็นเว็บเซิร์ฟเวอร์ที่ใช้มากที่สุดโดยคอมพิวเตอร์ที่เชื่อมต่อกับเว็บ หากแนวโน้มในปัจจุบันยังคงดำเนินต่อไป ในไม่ช้า Apache จะแซงหน้า Apache ให้เป็นเว็บเซิร์ฟเวอร์ที่มีการใช้งานมากที่สุดโดยไซต์ที่ใช้งานอยู่ แม้แต่ Kinsta ก็ยังใช้ Nginx เพื่อขับเคลื่อนโซลูชันโฮสติ้งที่เพิ่มประสิทธิภาพสำหรับ WordPress

คุณสามารถเปิดใช้งานการบีบอัด GZIP บนเว็บเซิร์ฟเวอร์ Nginx ของคุณได้โดยใช้คำสั่งที่กำหนดไว้ใน ngx_http_gzip_module

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

 # enables GZIP compression gzip on; # compression level (1-9) # 6 is a good compromise between CPU usage and file size gzip_comp_level 6; # minimum file size limit in bytes to avoid negative compression outcomes gzip_min_length 256; # compress data for clients connecting via proxies gzip_proxied any; # directs proxies to cache both the regular and GZIP versions of an asset gzip_vary on; # disables GZIP compression for ancient browsers that don't support it gzip_disable "msie6"; # compress outputs labeled with the following file extensions or MIME-types # text/html MIME-type is enabled by default and need not be included gzip_types application/atom+xml application/geo+json application/javascript application/x-javascript application/json application/ld+json application/manifest+json application/rdf+xml application/rss+xml application/vnd.ms-fontobject application/wasm application/x-web-app-manifest+json application/xhtml+xml application/xml font/eot font/otf font/ttf image/bmp image/svg+xml text/cache-manifest text/calendar text/css text/javascript text/markdown text/plain text/xml text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;

หากไซต์ของคุณให้บริการไฟล์ JS และ CSS ขนาดใหญ่ คุณสามารถเพิ่มขนาดบัฟเฟอร์ที่ใช้สำหรับการบีบอัดได้โดยเพิ่มคำสั่งต่อไปนี้ในไฟล์ nginx.conf ของคุณ:

 # sets the 'number' and 'size' of buffers for GZIP compression # default buffer size is 4K or 8K depending on the platform gzip_buffers 16 8k;

อย่าลืมโหลด Nginx อีกครั้งหลังจากบันทึกไฟล์ nginx.conf ของคุณ

 sudo service nginx reload

สุดท้าย คุณควรทดสอบเพื่อดูว่าเซิร์ฟเวอร์ของคุณเปิดใช้งานการบีบอัด GZIP หรือไม่ คุณสามารถดูเอกสารประกอบของ Nginx สำหรับรายการล่าสุดของคำสั่ง ngx_http_gzip_module ทั้งหมด

เปิดใช้งาน GZIP บนเว็บเซิร์ฟเวอร์ IIS

Internet Information Services (IIS) ของ Microsoft เป็นเว็บเซิร์ฟเวอร์ที่ได้รับความนิยมสูงสุดเป็นอันดับสามที่ใช้งานอยู่ในปัจจุบัน IIS ถูกปรับใช้ในสภาพแวดล้อมขององค์กรที่ทำงานบน Windows เป็นหลัก โดยเฉพาะอย่างยิ่งสำหรับการตั้งค่าเซิร์ฟเวอร์อินทราเน็ตและเอ็กซ์ทราเน็ตเฉพาะบริษัท

ไม่ค่อยได้ใช้โฮสต์ไซต์ WordPress เนื่องจากปัญหาความเข้ากันได้ต่างๆ

อย่างไรก็ตาม หากคุณพบว่าตัวเองอยู่ในสถานการณ์ที่ไม่ค่อยเกิดขึ้นบ่อย ซึ่งคุณต้องเปิดใช้งานการบีบอัด GZIP บน IIS คุณสามารถดูเอกสารประกอบของ Microsoft เพื่อเริ่มต้นได้ คุณอาจพบว่าเธรด Stack Overflow นี้มีประโยชน์

ทางเลือกอื่นสำหรับการบีบอัด GZIP

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

เพิ่มขนาดน้ำหนักหน้าเมื่อเวลาผ่านไป (ที่มา: HTTPArchive)
เพิ่มขนาดน้ำหนักหน้าเมื่อเวลาผ่านไป (ที่มา: HTTPArchive)

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

Brotli บีบอัดข้อมูลได้ดีกว่า GZIP แต่ต้องใช้เวลาและทรัพยากรมากขึ้นในการบีบอัดข้อมูล อย่างไรก็ตาม เวลาในการคลายการบีบอัดนั้นเทียบได้กับ GZIP แม้ว่าจะยังช้ากว่าอยู่เล็กน้อย

Brotli รองรับเบราว์เซอร์ต่างๆ
Brotli รองรับเบราว์เซอร์ต่างๆ

เบราว์เซอร์ส่วนใหญ่รองรับ Brotli ในปัจจุบัน แต่การใช้งานบนไซต์ WordPress ยังค่อนข้างซับซ้อน คุณต้องโฮสต์ไซต์ของคุณกับผู้ให้บริการโฮสต์ที่สนับสนุน Brotli หรืออนุญาตให้คุณติดตั้งไลบรารี Brotli โฮสต์ WordPress ที่มีการจัดการส่วนใหญ่ยังไม่รองรับ แต่ถ้าคุณใช้ CDN เช่น Cloudflare หรือ KeyCDN คุณสามารถเปิดใช้งานได้อย่างง่ายดาย

Brotli แสดงให้เห็นถึงสัญญาที่ดีสำหรับการบีบอัดสินทรัพย์คงที่ Akamai ได้ตีพิมพ์บทความที่มีรายละเอียดเปรียบเทียบ Brotli กับ GZIP You can check it out to learn more about Brotli.

Ready to speed up your site? ️ Enabling GZIP compression on your web server is one of the simplest and most efficient ways to achieve that. Learn how with this step-by-step walkthrough ️ Click to Tweet

สรุป

A well-optimized web is great for everyone. Users love snappier websites, website owners love the reduced hosting charges, and web hosts love the optimization achieved on their servers. Compression techniques like GZIP are one of the best ways to speed up page load times for your visitors.

WordPress site owners can speed up their sites instantly by enabling GZIP compression. Kinsta enables it by default on all its servers, but for others, this article covers multiple ways to enable GZIP compression on various web servers.

Speed is critical for any website. Just compress!