Một buổi sáng bạn mở PageSpeed Insights kiểm tra web, thấy dòng cảnh báo màu vàng: “Enable text compression” (bật nén văn bản). Nhấn vào thì thấy: “Gzip compression could save X KB”. Gzip là gì, bật lên thì web nhanh thêm bao nhiêu, và làm sao biết trang mình đã bật chưa?
Bài này giải thích từ đầu, không cần biết code để hiểu.
Gzip là gì?
Gzip là một phương pháp nén tệp, tương tự như bạn nén một thư mục thành file .zip trên máy tính. Điểm khác biệt là gzip dùng cho việc truyền tệp qua mạng: server nén các tệp HTML, CSS, JavaScript trước khi gửi về trình duyệt, trình duyệt nhận về rồi tự giải nén, người dùng thấy trang hiển thị bình thường.
Toàn bộ quá trình này xảy ra trong nền, người dùng không biết và không cần làm gì. Gzip được phát triển từ năm 1992 và hiện là phương thức nén mặc định được hỗ trợ bởi gần như mọi trình duyệt và máy chủ web hiện đại.
Tại sao nén tệp lại giúp web tải nhanh hơn?

File HTML, CSS, JavaScript là văn bản thuần, chúng chứa rất nhiều ký tự lặp lại. Một file CSS dài 200 KB có thể chứa từ color:, margin:, padding: xuất hiện hàng nghìn lần. Gzip nhận ra các đoạn lặp này và thay bằng một tham chiếu ngắn, làm file nhỏ lại đáng kể.
Kết quả thực tế: một file CSS 200 KB sau khi nén gzip thường còn khoảng 70 KB, giảm 65%. Người dùng dùng mạng 4G tải file đó nhanh hơn gần 3 lần, và trang hiển thị sớm hơn.
Điều quan trọng: gzip chỉ có tác dụng với tệp văn bản. Ảnh JPEG, WebP, hay video đã được nén theo chuẩn riêng của chúng, nén gzip thêm không giảm được bao nhiêu, thậm chí có thể làm file lớn hơn một chút.
Gzip hoạt động như thế nào: phần kỹ thuật
Khi trình duyệt gửi yêu cầu tải trang, nó kèm theo thông tin trong header (tiêu đề HTTP) là nó hỗ trợ kiểu nén nào:
Accept-Encoding: gzip, deflate, brServer đọc thông tin này, nén tệp bằng phương thức phù hợp, rồi trả về kèm header:
Content-Encoding: gzipTrình duyệt thấy Content-Encoding: gzip thì biết cần giải nén trước khi hiển thị. Tất cả xảy ra tự động trong vài mili giây, người dùng không nhận ra.
Gzip so với Brotli: hai phương thức nén phổ biến
Brotli là thuật toán nén mới hơn, do Google phát triển và chính thức hỗ trợ HTTP từ năm 2015. Khi server dùng Brotli, response trả về kèm Content-Encoding: br trong phần header.

| Tiêu chí | Gzip | Brotli |
|---|---|---|
| Ra đời | 1992 | 2013–2015 |
| Mức nén HTML | ~65% | ~70% (tốt hơn ~20%) |
| Mức nén JavaScript | ~65% | ~70% |
| Hỗ trợ trình duyệt | ~99% | ~96% |
| Header HTTP | Content-Encoding: gzip | Content-Encoding: br |
| Tốc độ nén | Nhanh hơn | Chậm hơn (tốn CPU hơn) |
| Dùng tốt nhất với | Mọi môi trường | File tĩnh, CDN |
Brotli nén tốt hơn gzip khoảng 5–20% tùy loại tệp, với JavaScript và CSS cho thấy sự khác biệt rõ nhất. Tuy nhiên, Brotli tốn tài nguyên CPU hơn để nén, nên thường dùng để nén sẵn các tệp tĩnh, không phải nén theo thời gian thực. (Nguồn: Paul Calvano, HTTP Archive analysis 2024)
Web đã bật nén chưa? Cách kiểm tra

Cách 1: Chrome DevTools
Nhấn F12 → tab Network → tải lại trang (Ctrl+R) → nhấn vào file HTML, CSS, hoặc JS → xem tab Headers → tìm dòng Content-Encoding. Thấy gzip hoặc br là nén đang hoạt động.
Cách 2: PageSpeed Insights
Chạy kiểm tra và tìm mục “Enable text compression” trong phần Opportunities. Nếu mục này xuất hiện, trang chưa bật nén hoặc bật chưa đúng.
Cách 3: Công cụ kiểm tra online
GiftOfSpeed (giftofspeed.com/gzip-test) cho phép nhập URL và kiểm tra ngay.
Kích thước file thay đổi như thế nào sau khi nén

- HTML 150 KB → 52 KB sau gzip (giảm ~65%)
- CSS 200 KB → 70 KB sau gzip (giảm ~65%)
- JavaScript 400 KB → 140 KB sau gzip (giảm ~65%)
- Ảnh JPEG 180 KB → ~178 KB sau gzip (hầu như không đổi, ảnh đã nén riêng)
Lưu ý: số liệu trên là ví dụ minh họa. Mức giảm thực tế phụ thuộc vào nội dung cụ thể của từng file.
Bật gzip trên WordPress như thế nào?
WordPress không tự bật gzip mặc định, việc này phụ thuộc vào cấu hình máy chủ.
Cách 1: Dùng plugin cache
Hầu hết plugin cache phổ biến cho WordPress như LiteSpeed Cache, W3 Total Cache đều có tùy chọn bật GZIP trong cài đặt. Với LiteSpeed Cache, vào “LiteSpeed Cache → Page Speed” rồi bật “GZIP Compression”.
Cách 2: File .htaccess (Apache)
Thêm vào file .htaccess:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript application/javascript
</IfModule>Cách 3: Máy chủ Nginx
Thêm vào cấu hình: gzip on; gzip_types text/html text/css application/javascript;
Nếu bạn không tự quản lý server, liên hệ nhà cung cấp hosting hoặc người làm web để bật giúp, đây là yêu cầu đơn giản, xử lý trong vài phút.
Chủ doanh nghiệp cần biết gì?
Bạn không cần tự đụng tới máy chủ. Điều cần biết là:
- Nếu web chạy WordPress với plugin cache: kiểm tra xem plugin đó có tùy chọn bật gzip không. Nếu có, bật lên.
- Nếu web do đội làm web quản lý: hỏi thẳng “web mình có bật gzip chưa?”, câu hỏi đơn giản, người làm web trả lời được ngay.
- Nếu PageSpeed Insights báo “Enable text compression”: đây là cảnh báo có thể sửa trong vài phút, không cần làm lại web.
Có một chi tiết đáng nhớ khi bạn nghe báo cáo tốc độ: nén tệp chỉ tác động tới phần văn bản của trang, tức là mã HTML, CSS và JavaScript. Nếu trang của bạn nặng chủ yếu vì ảnh chụp sản phẩm chưa được xử lý, bật nén xong con số vẫn gần như đứng yên, và lúc đó việc cần làm là xử lý ảnh chứ không phải chỉnh thêm cấu hình máy chủ. Biết ranh giới này giúp bạn hỏi đúng câu và không tốn tiền vào việc không giải quyết được vấn đề đang có.
Nén tệp là một trong những cải thiện tốc độ đơn giản nhất, không ảnh hưởng gì đến nội dung hay giao diện web, nhưng làm trang tải nhanh hơn rõ rệt đặc biệt với người dùng mạng chậm.
Lighthouse là công cụ thường dùng để phát hiện vấn đề nén tệp và nhiều vấn đề hiệu năng khác. Nếu bạn chưa biết Lighthouse chấm điểm web theo những tiêu chí nào, bài Lighthouse là gì giải thích chi tiết 5 hạng mục.
Câu hỏi thường gặp về Gzip
Gzip có ảnh hưởng đến ảnh không?
Không đáng kể. Ảnh JPEG, PNG, WebP đã được nén theo thuật toán riêng của định dạng. Nén gzip thêm cho ảnh thường không giảm được gì. Gzip phát huy hiệu quả với file văn bản: HTML, CSS, JavaScript.
Web đang dùng HTTPS có cần bật gzip không?
Có và hoàn toàn độc lập nhau. HTTPS mã hoá nội dung để bảo mật, gzip nén nội dung để giảm kích thước. Hai việc khác nhau và hoạt động song song tốt.
Brotli tốt hơn gzip, vậy bật gzip có lỗi thời không?
Không. Gzip vẫn là lựa chọn an toàn và hiệu quả, hỗ trợ trên gần như mọi thiết bị. Brotli là lựa chọn tốt hơn nếu máy chủ hỗ trợ, nhưng nếu chỉ có gzip, gzip vẫn tốt hơn nhiều so với không nén gì.
Bật gzip có làm web chậm hơn phía server không?
Không đáng kể. Lợi ích từ việc truyền ít dữ liệu hơn qua mạng luôn lớn hơn chi phí nén CPU. Với file tĩnh có thể nén sẵn và lưu vào bộ nhớ đệm (cache), server thậm chí không cần nén lại mỗi lần có request.
Nếu web của bạn chưa bật nén tệp hoặc còn các điểm tốc độ chưa ổn, Web22 có dịch vụ tối ưu Core Web Vitals, kiểm tra toàn bộ, chỉ ra vấn đề cụ thể, sửa theo thứ tự tác động lớn nhất trước.
{“@context”:”https://schema.org”,”@type”:”FAQPage”,”mainEntity”:[{“@type”:”Question”,”name”:”Gzip có ảnh hưởng đến ảnh không?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Không đáng kể. Ảnh JPEG/PNG/WebP đã nén theo thuật toán riêng. Gzip chỉ hiệu quả với file văn bản HTML/CSS/JavaScript.”}},{“@type”:”Question”,”name”:”Web đang dùng HTTPS có cần bật gzip không?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Có và hoàn toàn độc lập. HTTPS mã hoá để bảo mật, gzip nén để giảm kích thước. Hai việc hoạt động song song tốt.”}},{“@type”:”Question”,”name”:”Brotli tốt hơn gzip, vậy bật gzip có lỗi thời không?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Không. Gzip vẫn hiệu quả và hỗ trợ ~99% thiết bị. Brotli là lựa chọn tốt hơn nếu máy chủ hỗ trợ, nhưng gzip tốt hơn nhiều so với không nén gì.”}},{“@type”:”Question”,”name”:”Bật gzip có làm web chậm hơn phía server không?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Không đáng kể. Lợi ích giảm dữ liệu truyền qua mạng luôn lớn hơn chi phí nén CPU. Với file tĩnh có cache, server không cần nén lại mỗi lần.”}}]}
