Nén HTML là một trong những phương thức đơn giản giúp website của bạn nhẹ hơn và tải nhanh hơn, khi bật nén HTML có thể giảm được dung lượng HTML từ 15% đến 20% file, nhưng thực sự không phải là cứ bật nén HTML là giúp website của bạn load nhanh hơn tận cho nó còn giúp website của bạn load chậm hơn đó.
Đừng vội vàng bật tính năng nén HTML nếu như bạn chưa đọc bài viết này.
kinh nghiệm của mình thì chỉ có khoảng 20% website WordPress thì nên bật tính năng này còn 80% còn lại thì bạn không nên bật, để xem bạn website của bạn đang trong ở trong 20% hay 80% này nhé và thì cách nén HTML như thế nào thì tốt ưu nhất.
Các plugin tăng tốc cho WordPress thì gần như đều có tính năng nén html chắc mình cũng không cần liệt kệ những plugin nào hỗ trợ cái này rồi, vì nó có quá nhiều plugin hỗ trợ khoản này nên mình sẽ tạm bỏ qua.
Nén HTML thì cũng giống như bạn bật nén CSS, nén Javascript mà thôi, nhưng bài viết này mình sẽ tập trung chia sẻ chủ đề về ném HTML.
Mục lục
Nén HTML là gì
nén html hiểu đơn giản là bỏ những dấu ký hiệu note đánh dấu, những dấu cách dòng những thứ đó là để phục vụ người lập trình viên dễ dàng có thể thao tác nhìn những đoạn code trực quan hơn và dễ dàng sử lý hơn, nhưng với máy móc thì không cần điều đó đối với máy móc trình duyệt nó là gánh nặng không ảnh hưởng gì đến cách trình duyệt hiển thị chỉ làm nặng file mất thời gian tải xuống mà thôi.
ví dụ nhé mình có một đoạn HTML:
<p>Xin chào các bạn</p> /** gia tuấn viết ***/
giá trị đoạn code mẫu này nặng: 55 byte
Khi đoạn code đó đã được nén.
<p>Xin chào các bạn</p>
Giá trị đoạn code mẫu khi đã được nén chỉ còn: 27 byte
cái note /** gia tuấn viết ***/ thì nó giá trị trong làm việc con người với con người, làm việt theo team nhóm biết là ở đoạn này là do ông này viết, đoạn kia là do ông kia viết nhưng với trình duyệt web thì /** gia tuấn viết ***/ nó lại là gánh nặng.
đoạn mẫu ví dụ: chưa nén từ 55 byte khi nén giảm xuống còn 27 byte. đó là đoạn ví dụ trong thực tế thì nó sẽ giảm được khoảng từ 15% đến 20% dung lượng giả sự 100kb html xuống còn 85kb html.
như vậy đoạn trên mình đã giải thích được một phần nào đó lợi ích mà nén html mang lại.
Có những cách nén html phổ biển
thì với tầm hiểu biết hiện tại của mình thì sẽ có 4 cách nén html phổ biến.
Những cách nén HTML phổ biến.
1: Nén bằng plugin tăng tốc – cái này mình nghĩ người dùng WordPress thường dùng trong bài viết này mình sẽ đề cập cái này nhiều nhất.
2: Nén HTML bằng CDN
3: Nén HTML bằng module pagespeed ( từ cấp websever cái này khá ít người dùng)
4: Nén bằng thủ công – (cái này với nền tảng WordPress thì rất ít người dùng)
Chi phí đầu tư để có thể nén html
việc nén html phải yêu cầu máy chủ làm việc.
Máy chủ webhost phải tiêu tốn một số tài nguyên của CPU để nén HTML.
Vì vậy, bây giờ bạn phải nghĩ nén html cũng gần kha khá giống với khi bạn triển khai cache HTML page FULL.
mình sẽ phần ra 3 trường hợp khi bạn kích hoạt nén HTMl.
Trường hợp 1: Nếu tệp được nén trước khi được yêu cầu từ người dùng (như preload cache), chúng sẽ được gửi ngay lập tức với kích thước tệp được thu nhỏ – tăng tốc độ load website rất ngon.
Trường hợp 2: Nếu các tệp KHÔNG được nén trước khi được yêu cầu, thì chúng phải được thu nhỏ trước trước khi chúng có thể được gửi đi cho người dùng.
mình sẽ lấy ví dụ thế này cho bạn dễ hiểu:
Trường hợp 1: bạn đi học, bạn nặng 50kg bạn để sách vở balo ở hết ở trường học rồi thì bạn đi từ nhà đến trường. (đã được preload html trước)
Trường hợp 2: bạn đi học, bạn nặng 50kg và bạn phải đem thêm một cái balo đựng sách vở 3kg thì tổng trọng lượng của bạn là 53kg (cái balo đó như là công việc nén HTML), bạn đi từ nhà đến trường. (như thông thường mọi người vấn nén html và để đó)
thì 2 trường hợp này thì trường hợp nào sẽ đến trường nhanh hơn và đỡ tốn công sức hơn.
Tôi nghĩ là trường hợp 1.
mình sẽ thêm vài ví dụ nữa nhé đễ cho dễ hiểu hơn.
Trường hợp 3: bạn đi học, bạn nặng 50kg bạn đi từ nhà đến trường bạn đi học không cần cầm cặp sách vở balo luôn ( ví dụ là bạn không bật nén HTML)
Trường hợp 4: bạn đi học, bạn nặng 50kg bạn thuê một thằng bạn cầm balo cho bạn đi đến trường trước, rồi mình đi từ nhà đến trường (dùng CDN đến nén HTML)
đến mấy cái ví dụ này thì chắc bạn cũng đã biết là mình cần phải làm gì rồi đúng không?
Khi nào thì nên nén HTML
Khi nào nên nén html và nó có phù hợp cho website của bạn.
chỉ có khoảng 20% website WordPress thì nên bật tính năng này còn 80% còn lại thì bạn không nên bật, để xem bạn website của bạn đang trong ở trong 20% hay 80% này nhé.
bạn cần phải tự mình trả lời những câu hỏi này thì mới ra được đáp án chính xác nhất cho bạn.
- Website của bạn có bao nhiêu trang?
- websever của bạn có mạnh thừa tài nguyên không ở đây quan trọng là CPU?
- Traffic lượng truy của bạn có nhiều không?
- website của bạn thì có clear cache thường xuyên?
- bạn có đang sử dụng preload cache không?
- Nhu cầu website của bạn thì có triển khai được HTML Page Cache không?
- Bạn có đang sử dụng page builder nào không?
- Website của bạn file HTML thì có hơn 50kb không?
- Bạn có cuồng điểm số công cụ speed test không?
- Bạn có đang sử dụng CDN không?
giờ chúng mình cùng nhau bắt đầu đi sâu hơn và từng câu hỏi 1 nhé.
Website của bạn có bao nhiêu trang?
Nếu bạn chỉ có một vài trang (ví dụ như 20 hoặc thậm chí 50 trang, thậm chí có thể 300-500 trang)… thì không có vấn đề gì quá nhiều khi phải nén HTML trước (preload).
Vấn đề là khi bạn đã nói 1.000 – 2.000 trang. Những thứ đó sẽ được lưu trước vào bộ nhớ đệm và nén html lưu trữ trước không?
nếu câu trả lời là không, Người dùng bây giờ sẽ chỉ phải đợi thêm một phần giây ( thời gian tùy thuộc vào độ khỏe cpu websever của bạn) để máy chủ tạo các tệp file html được nén đó.
Ví dụ như: sắp đến sinh nhật người yêu bạn rồi, người yêu của bạn mong ước yêu cầu bạn mua cho em con IPhone 12, bạn chấp nhận điều đó bạn mua con IPHONE 12 xong rồi bạn unbox con IPhone rồi bạn ngồi hì hụng cài ứng dụng facebook,zalo… xong rồi, bạn đi đem đi gói đóng quà mới đem đi tặng em nó (thời gian bạn ngồi cài ứng dụng gì đó, đóng gói quà cũng như bạn ngồi nén HTML), thà bạn cầm nguyên con IPHONE chưa unbox chưa mở hộp đưa luôn cho em đó cho nó nhanh như vậy có phải là tốt hơn không dù gì em nó cũng biết là tặng cái này rồi, cài ứng dụng thì em nó thích cài như thế nào thì việc của em nó (em nó vừa cài vừa phê có phải trải nghiệm hay hơn không).
thời gian đầu tư: đợi máy chủ websever ngồi nén file và thời gian hiệu quả giảm dung lượng đem lại.
websever của bạn có mạnh thừa tài nguyên không ở đây quan trọng là CPU?
Máy chủ của bạn càng yếu, hạn chế xử lý những việc này đặt nó càng ít càng tốt.
Sử dụng sức mạnh CPU quý giá đó cho việc khác, chẳng hạn như xử lý php động và thực hiện các truy vấn DB…
Nếu bạn thực sự muốn giảm thiểu vẫn còn phương pháp khác tối ưu hơn:
- Hãy để CDN của bạn thực hiện tất cả công việc nén này.
- Nén trước các tệp của bạn trước (preload).
Traffic lượng truy cập của bạn có nhiều không? và bạn có đang sử dụng preload cache không?
nó cũng giống như mình chia sẻ bài viết preload cache, bạn có thể tìm trên blog của mình bài viết này.
nếu bạn có nhiều traffic lưu lượng truy cập… giả sử hàng nghìn lượt truy cập mỗi ngày, chỉ khách truy cập đầu tiên vào mỗi trang sẽ tải trang chậm hay triển khai preload cache (giả lập người dùng) và những người truy cập sau đó còn lại sẽ được hưởng lợi từ các tệp nén mà khách truy cập đầu tiên hay preload cache (giải lập người dùng) đã khởi tạo.
Từ giải thích này, bạn sẽ luôn khuyến khích việc nén trên các trang web có lưu lượng truy cập cao và đang triển khai tốt preload cache.
website của bạn thì có clear cache thường xuyên? và Nhu cầu website của bạn thì có triển khai được HTML Page Cache không?
đây là mức độ thường xuyên cập nhật nội dung của bạn, nhu cầu cập nhật thường xuyên của bạn.
Nếu bạn không cập nhật nội dung thường xuyên và không thực hiện thay đổi, về mặt lý thuyết, bạn có thể nén các tệp chỉ một lần và chúng cứ sử dụng như vậy mãi mãi.
Nhưng nếu bạn cập nhật nội dung rất thường xuyên và cơ chế bộ nhớ cache của bạn sẽ tiếp tục xóa clear và các file được html được nén cũng đi theo … thì điều đó có nghĩa là máy chủ của bạn liên tục nén lại từ đầu các tệp HTML đó và có thể chịu nhiều gánh nặng hơn nếu bạn có nhiều khách truy cập yêu cầu nội dung chưa được xóa / chưa được nén.
Tất cả điều này không phải là vấn đề lớn nếu bạn có một trang web có ít trang, nhưng điều cần cân nhắc kỹ lưỡng khi bạn có rất nhiều trang. Máy chủ của bạn gần như không hoàn thành việc nén html và sau đó cập nhật nội dung * clear * sẽ kích hoạt xóa bộ nhớ cache và máy chủ phải nén lại từ đầu tại đây.
Bạn có đang sử dụng page builder nào không?
Nén HTML không phải là tuyệt đối chính xác thành công 100% nhưng nếu bạn đang sử dụng page builder thì tỷ lệ này sẽ được giảm xuống một chút, và đặc biết những page builder của bạn đang sử dụng không phải là dạng tên tuổi mà những hãng làm plugin tăng tốc phần WordPress để ý và sẽ làm để ý riêng đặc biệt dành cho nó.
Khi bạn sử dụng những page builder bạn vẫn thường xuyên gặp thêm rủi ro là khi nén HTML sẽ phá vỡ trang web của bạn, đó là điều mình thường. điều này sẽ giảm được nếu như bạn sử dụng những page builder tên tuổi – mức độ phổ biến lớn thì sẽ giảm thiểu được một phần rủi ro.
Website của bạn file HTML thì có hơn 50kb không?
Đây là một yếu tố quan trọng khác. Vấn đề là nếu file html của bạn đã quá nhỏ, chúng sẽ không được lợi nhiều từ việc kích hoạt nén HTML. nói cách khác không có bất kỳ lợi ích đáng chú ý nào.
Nhưng mặt khác, nếu chúng quá lớn và cồng kềnh… tôi không chắc việc thu nhỏ cũng là một ý tưởng tuyệt vời. Bởi vì đúng vậy, bạn đang tiết kiệm dung lượng nhưng đồng thời người dùng phải đợi lâu hơn để các tệp lớn hơn được thu nhỏ.
Giả sử: mình sẽ ví dụ là nén HTML sẽ giảm được 20% dung lượng file.
Trường hợp 1: HTML của bạn dung lượng là 10kb giảm được còn 8kb ( giảm được 2kb)
Trường hợp 2: HTML của bạn dung lượng là 200kb giảm được còn 160kb (giảm được 40kb)
Nếu bạn là trường hợp 1 thì không nhất thiết phải kích hoạt làm gì cho mất sức của máy chủ, nếu là trường hợp 2 thì số lượng giảm cũng kha khá cũng nên cân nhắc triển khai như thế nào.
Bạn có cuồng điểm số công cụ speed test không?
điểm số của những công cụ như gtmetrix, pagespeed insight luôn là chủ đề câu view hút view thật, nhưng đối với cá nhân mình thì không có mất giá trị lắm.
Mấy cái công cụ này thường khuyến cáo là hãy nén file đi, tao sẽ tăng điểm cho mày. Nén file rất tốt nhưng trường hợp nào thì mấy công cụ này chưa có giải thích đừng quá máy móc quá lắng nghe kiến thức của mình đừng nghe răm rắm những công cụ này khuyến cáo, nó cũng chỉ giúp bạn thêm một nguồn tham khảo mà thôi.
Bạn có đang sử dụng CDN không?
CDN cache là cấp độ cache thứ 4 trong WordPress cache.
kể lại câu chuyển ví dụ trước trong bài viết này: Trường hợp 4: bạn đi học, bạn nặng 50kg bạn thuê một thằng bạn cầm balo cho bạn đi đến trường trước, rồi mình đi từ nhà đến trường (dùng CDN đến nén HTML)
những cái rắc rối: mà mình có nói ở trên thì CDN họ sẽ lo hết rồi, nhưng CDN ngon thì chắc chắc họ sẽ có đi kém với tính năng nén file sẵn rồi chắc mình cũng không cần quảng cáo nhà cung cấp CDN nào đâu, nếu bạn đang sử dụng CDN đây theo mình là lựa chọn tốt nhất và thông minh nhất để nén file HTML. Nhưng kinh doanh ở thị trường VIệt Nam bán kinh nhỏ thì sử dụng CDN không phải là sự lựa chọn tốt đặc biệt là không tốt nếu bạn dùng CDN cloudflare miễn phí kết hợp với wp rocket xong đo điểm công cụ tool pingdom thấy mọi thứ nhanh khủng khiếp xong ra đo điểm số hét câu nhanh lắm, nếu bạn kinh doanh quốc tế thì mới cần CDN.
Tóm tắt:
bài viết này chia sẻ này, mình nghĩ cũng đã đủ để bạn có thể tự xem xét xem là website WordPress của bạn có cần kích hoạt nén HTML không rồi.
Cuối cùng, bạn sẽ phải tự mình kiểm tra nó. Đừng tin những gì bất cứ ai nói. Ngay cả tôi cũng vậy.
Hãy là nhà khoa học của chính bạn đừng máy móc quá trong công việc tăng tốc độ load website!
chúc bạn thành công !!
Để lại một bình luận