Bật Brotli Cho WordPress: Hướng Dẫn A-Z Giảm 25% Kích Thước Trang Từ Nginx Đến Cloudflare

Bật Brotli nén giảm 25% kích thước cho WordPress
Câu trả lời nhanh
Bật Brotli giúp giảm 15-25% kích thước HTML, CSS, JS so với gzip mà không cần đổi code WordPress. Trên Nginx bạn cài gói nginx-module-brotli, nạp hai module, khai báo brotli on với mức nén 5-6. OpenLiteSpeed bật trong WebAdmin Console, Cloudflare chỉ cần một cú click. Kiểm tra bằng curl với header Accept-Encoding: br để xác nhận content-encoding: br.

Nén Brotli là một trong những chỉnh sửa nhỏ mà hiệu quả lớn nhất mà bạn có thể làm cho website WordPress: thay đổi vài dòng config, kích thước HTML, CSS và JavaScript giảm ngay 15-25% so với gzip, thời gian tải trang nhanh hơn rõ rệt. Trong bài này mình sẽ hướng dẫn bạn bật Brotli từ A đến Z trên Nginx, OpenLiteSpeed và cả trường hợp dùng Cloudflare, kèm lệnh kiểm tra chứng nhận kết quả thật sự chạy.

Brotli là gì và vì sao nó nhanh hơn gzip?

Bật nén Brotli cho WordPress giảm 25% kích thước file

Brotli là thuật toán nén của Google, ra mắt năm 2015, được các trình duyệt lớn hỗ trợ gần như toàn diện. Nó cho tỷ lệ nén cao hơn gzip từ 15-25% ở cùng mức tiêu tốn CPU, nghĩa là file truyền đi nhỏ hơn mà server không chậm thêm mấy. Với WordPress, phần lớn HTML, CSS, JS của theme và plugin đều là văn bản, đúng kiểu dữ liệu Brotli mạnh nhất.

Một điểm cộng nữa: gần như không có rủi ro tương thích. Nếu trình duyệt không hỗ trợ, nó tự fallback về gzip hoặc không nén. Bạn không cần đổi gì ở phía WordPress, chỉ chỉnh web server.

Bạn nên bật Brotli bằng cách nào?

Câu trả lời phụ thuộc vào stack bạn đang chạy. Nếu dùng Nginx trực tiếp, bạn bật module ngx_brotli. Nếu dùng OpenLiteSpeed hoặc LiteSpeed Enterprise, Brotli đã tích hợp sẵn, chỉ cần bật trong admin. Nếu website đứng sau Cloudflare, bạn chỉ cần một cú click. Mình sẽ đi qua từng trường hợp, bạn chọn đúng phần của mình mà làm.

Làm sao bật Brotli trên Nginx cho WordPress?

Bước 1: cài module brotli cho Nginx. Trên Debian/Ubuntu, gói nginx-module-brotli thường đã có trong kho của nginx.org. Cài bằng lệnh sau:

sudo apt install nginx-module-brotli

Bước 2: nạp module vào file cấu hình chính. Mở /etc/nginx/nginx.conf, thêm hai dòng load_module ngay trên cùng, phía trước block http:

load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;

Bước 3: khai báo brotli trong block http hoặc block server của website bạn:

brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css text/javascript
             application/javascript application/json
             application/xml image/svg+xml;

Mức nén 6 là điểm cân bằng tốt giữa kích thước file và CPU. Đừng vội lên 11, mình đo thời gian phản hồi tăng rõ rệt mà filesize chỉ giảm thêm vài phần trăm, không đáng.

Bước 4: kiểm tra cú pháp rồi reload:

sudo nginx -t && sudo systemctl reload nginx

Cách bật Brotli trên OpenLiteSpeed ra sao?

OpenLiteSpeed đã build sẵn Brotli, bạn không cần cài thêm module gì cả. Mở WebAdmin Console, vào Configuration rồi Server, mục Compression. Tại đây bạn bật Enable Brotli Compression, chọn mức nén BROTLI_COMPRESS_LEVEL từ 5 đến 6 là đẹp. Lưu lại và restart server, thường mất vài giây thôi.

Nếu bạn chạy CyberPanel, mục tương tự nằm trong Server-Level settings của OpenLiteSpeed trực tiếp, đừng tìm trong panel của site.

Dùng Cloudflare thì có cần làm gì không?

Nếu website của bạn đã proxy qua Cloudflare (đám mây cam), bạn có lợi thế kép: Cloudflare nén Brotli từ edge về phía visitor, còn server của bạn nén từ origin về edge. Vào Dashboard, Speed, Optimization, Content Optimization, bật Brotli. Bước này chỉ áp dụng cho tài khoản trả phí; tài khoản free thì Brotli đã bật mặc định rồi, bạn không cần đụng gì.

Một lưu ý thực tế từ kinh nghiệm của mình: hãy để Brotli chạy ở cả hai tầng. Nhiều bạn tưởng Cloudflare đã lo hết nên tắt nén ở origin, kết quả đoạn origin-to-edge vẫn dùng gzip, mất một phần hiệu quả.

Kiểm tra Brotli đã chạy thật chưa bằng lệnh nào?

Đừng tin vào việc reload không báo lỗi là xong, hãy kiểm tra bằng chính curl. Chạy lệnh sau:

curl -sI -H "Accept-Encoding: br, gzip" https://ten-mien-cua-ban.com | grep -i content-encoding

Nếu kết quả trả về content-encoding: br là Brotli đã chạy. Nếu vẫn ra gzip nghĩa là server chưa nén brotli cho loại nội dung đó, bạn quay lại kiểm tra brotli_types. Nếu không có dòng nào, server đang không nén gì cả.

Bạn cũng nên so kích thước thực tế giữa hai chế độ:

curl -s -H "Accept-Encoding: gzip" -o /dev/null -w "gzip: %{size_download} bytes\n" https://ten-mien-cua-ban.com
curl -s -H "Accept-Encoding: br" -o /dev/null -w "brotli: %{size_download} bytes\n" https://ten-mien-cua-ban.com

Bật Brotli có ảnh hưởng xấu nào cần tránh?

Có hai điểm. Thứ nhất, đừng nén các file binary như ảnh JPEG, PNG hay video, chúng đã nén sẵn, nén lại chỉ tốn CPU mà không nhỏ đi bao nhiêu. Thứ hai, với tài nguyên tĩnh, hãy dùng brotli_static on; kèm tiền nén file .br sẵn khi build asset, server sẽ chỉ việc trả file, CPU gần như bằng 0.

Nếu VPS của bạn yếu từ 1 vCPU, giữ mức nén 4-5 thôi. Nén là đánh đổi CPU lấy băng thông, bạn cần cân theo máy mình đang chạy chứ không phải copy số đẹp của người khác.

Kết hợp Brotli với các tối ưu nào để đạt hiệu quả cao nhất?

Brotli chỉ nén phần truyền tải, còn tốc độ thật sự đến từ tổng thể hệ thống. Bạn nên kết hợp với cache ở tầng server, ví dụ cấu hình Redis Object Cache cho WordPress để giảm truy vấn database, và cache toàn trang theo hướng dẫn trong bài tối ưu tốc độ WordPress từ server đến Core Web Vitals.

Ngoài ra, nếu chưa nâng PHP 8.x thì đây là lúc làm, bạn tham khảo hướng dẫn nâng cấp PHP 8.4 cho WordPress mà mình đã viết chi tiết. Brotli cộng PHP mới cộng cache tốt, bộ ba này đủ để đa số site vượt ngưỡng Core Web Vitals màu xanh.

Kết luận

Brotli là khoản đầu tư 15 phút cho lợi ích dài hạn: file nhỏ hơn 15-25%, không rủi ro tương thích, không cần đổi code WordPress. Bạn chỉ cần nhớ ba việc: bật đúng chỗ theo stack của mình, giữ mức nén 5-6, và luôn xác minh bằng curl trước khi coi như hoàn tất. Làm xong, chạy PageSpeed Insights thêm một lần nữa và so sánh con số LCP với trước khi bật, bạn sẽ thấy khác biệt rõ rệt đấy.

Thanh Tùng

Mình là Thanh Tùng. Bạn bè gọi mình là "bác sĩ máy tính" vì hễ máy nào có vấn đề là mình muốn mò vào xem sao. Mình viết hướng dẫn theo cách mà mình mong người khác đã viết cho mình ngày xưa — từng bước rõ ràng, không bỏ sót, và nói luôn cái gì hay bị lỗi. Ngoài giờ làm mình chơi guitar, nuôi mèo, và có một con VPS riêng dành riêng cho việc cài thử đủ thứ linh tinh.

Xem tất cả bài viết →

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *