Các cách bật nén GZIP cho website

Trong tất cả các cách tăng tốc website thì bật nén Gzip là một trong những cách hữu hiệu nhất. Thông thường server trả về cho trình duyệt dưới dạng không nén, tuy nhiên khi nén lại chúng ta có thể tiết kiệm tới 30-70% lưu lượng. Tốc độ của website tăng lên ầm ầm vì dữ liệu nhỏ lại và truyền về trình duyệt người dùng nhanh chóng ! Bài viết này mình xin chia sẻ cách bật nén Gzip cho website để tăng tốc nhé.

Mô tả phương thức nén website trước khi gửi tới trình duyệt

Các bạn nên sử dụng các công cụ kiểm tra tốc độ website trước khi bật Gzip, vì nếu website chạy nhanh rồi thì không cần thiết lắm phải làm bước này !

Lợi ích khi nén tài nguyên web lại

  1. Tăng tốc website, tài nguyên kéo về nhỏ nên load nhanh hơn
  2. Giảm thiểu hỏng, vỡ trên đường truyền vì lý do phân mảnh các request
  3. Nâng cao trải nghiệm người dùng
  4. Nâng cao thứ hạng trên máy tìm kiếm

Các bạn có thể dùng các công cụ test tốc độ để xem sự thay đổi trước và sau khi nén tài nguyên.

Bật Gzip bằng PHP

Bạn có thể bật Gzip bằng lệnh PHP trong các trường hợp host của bạn không hỗ trợ bật qua .htaccess, các bạn làm như sau:

<?php if (substr_count($_SERVER[‘HTTP_ACCEPT_ENCODING’], ‘gzip’))
ob_start(“ob_gzhandler”); else ob_start(); ?>

Thêm dòng trên vào đầu file Index.php, đấy là file mồi nên chúng ta có thể bật ở file index.php !

Bạn cũng có thể bật bằng cách thêm code sau đây vào file PHP.ini nếu hosting của các bạn cho phép:

output_handler = Off
zlib.output_compression = On
zlib.output_handler = ob_gzhandler

Bật Gzip bằng HTACCESS

.htaccess là file cấu hình mặc định của Apache, trong nhiều trường hợp web hosting của các bạn cho phép can thiệp vào file này, các bạn có thể làm như sau, thêm code sau đây vào file htaccess trên host của các bạn:

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Trong trường hợp không được  ? Đừng lo, bạn có thể thêm code sau đây để thay thế:

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

Bật Gzip bằng file config của Nghinx

NghinX cũng hỗ trợ Gzip, các bạn có thể cho thêm nội dung code sau đây vào file config của NghinX:

 gzip on;
 gzip_comp_level 2;
 gzip_http_version 1.0;
 gzip_proxied any;
 gzip_min_length 1100;
 gzip_buffers 16 8k;
 gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
 
 # Disable for IE < 6 because there are some known problems
 gzip_disable "MSIE [1-6].(?!.*SV1)";
 
 # Add a vary header for downstream proxies to avoid sending cached gzipped files to IE6
 gzip_vary on;

Lưu ý khi bật Gzip cho website

Các bạn có thể bật Gzip nhưng phải chắc chắn hosting của các bạn chưa bật nén một cách mặc định, có nhiều hosting của Việt Nam bật sẵn chức năng này nên các bạn hãy kiểm tra bằng các công cụ đo tốc độ tôi vừa giới thiệu bên trên, trường hợp bật rồi thì khỏi cần bật lại !

Trường hợp tiếp theo, các bạn lưu ý là ảnh, video và audio đã được nén theo mặc định, các bạn chỉ cần bật nén cho HTML, CSS và JAVASCRIPT thôi nha !

Có nhiều trường hợp các trình duyệt cũ rích không hiểu được phương thức nén, các bạn cần phải test trên mọi trình duyệt !

Nếu các bạn muốn bật nén Gzip mặc định trên Server có thể tham khảo cách này tôi đã viết từ lâu !

Nén Gzip có nhiều tác dụng tích cực với người dùng và thứ hạng tìm kiếm, các bạn hãy kiểm tra và bật ngay đi nhé !

Đối với WordPress

Nếu các bạn cần bật nén Gzip cho website bằng mã nguồn WordPress, có thể tham khảo các plugin cache cho WordPress, chúng sẽ giúp bạn làm tự động mọi thứ !

Chúc các bạn thành công !