Web Performance Optimization: Tối ưu hiệu suất web
Web Performance Optimization: Tối ưu hiệu suất web
I
Idflow Technology
5 phút đọc
Mục lục
Web Performance Optimization: Tối ưu hiệu suất web
Tuần trước, mình debug một website thương mại điện tử Việt Nam. Trang chủ load 8.2 giây trên 4G. Chủ sự nghiệp chỉ quan tâm: "Tại sao khách hàng phàn nàn là chậm?" Mình hỏi lại: "Bạn chắc chắn muốn biết lý do?" Thực tế là 53% khách đã rời đi trước khi nó load xong.
Con số ấy không phải từ đâu ra. Theo Google, mỗi giây chậm lại tương đương mất 7% conversion. Với một trang bán hàng thu 100 triệu/tháng, điều đó là mất 7 triệu mỗi tháng chỉ vì trang chậm. Nhưng không ai tính toán kiểu đó.
Vấn đề thực sự ở đâu?
Hầu hết developer Việt Nam hiểu performance optimization như là "minify code, enable gzip, cache cái gì đó". Sai hết. Performance không phải về những cái nhỏ nhặt ấy—nó là về quyết định kiến trúc sai từ đầu.
Mình từng khoá một dự án có 2.5MB JavaScript bundle. Không phải vì code dơ, mà vì team import toàn bộ lodash (65KB) chỉ để dùng 3 function. UI library nó nó lôi kéo theo 15 dependency khác. Modal popup dùng 40KB của một animation library. Và cái sai lầm chuỗi dây đó kéo dài suốt codebase.
Performance tốt phải bắt đầu từ việc nói không. Không thêm library nếu chưa cần. Không dùng framework nặng cho landing page. Không load 200KB CSS nếu trang hiển thị 50KB.
Metrics mà bạn thực sự cần quan tâm
Quên đi "load time" chung chung. Google định nghĩa Core Web Vitals gồm 3 thứ:
LCP (Largest Contentful Paint) — khi phần tử chính của trang hiển thị. Phải < 2.5 giây. Nghe dễ nhưng nó fail ở hầu hết trang Việt vì image không optimize, font chưa preload, hoặc server chậm.
FID (First Input Delay) — từ lúc user click cho đến JavaScript đủ sức response. < 100ms thì ok. Trang nào dùng 10 event listener + tracking script thường fail ở đây.
— trang có bị dịch chỗ khi load không. < 0.1 thì tốt. Nhìn vô vô hại nhưng khó optimize vãi—phải biết width/height của mọi element từ trước khi render.
Chia sẻ bài viết
Bài viết liên quan
Bạn cần tư vấn về công nghệ?
Đội ngũ Idflow luôn sẵn sàng hỗ trợ bạn trong hành trình chuyển đổi số.
Công cụ kiểm tra miễn phí: Lighthouse (trong Chrome DevTools), PageSpeed Insights, hoặc WebPageTest nếu bạn muốn chi tiết như nó.
Những cái insight mà guide thường quên
1. Image là thủ phạm chính
99% trang tải ảnh chưa optimize. Một bức hình từ camera 2024 có thể là 8-12MB. Bạn upload thẳng lên server mà không compress? Đó là lý do trang chậm. Dùng ImageOptim (Mac), FileOptimizer (Windows), hoặc online tools như TinyPNG. Hoặc thực tế hơn: dùng Cloudinary hay imgix, tự động resize theo device.
2. Font loading là một cuộc chiến mặc cả
Đa số trang dùng Google Fonts. Được, nhưng bạn có preload nó không? Hoặc dùng font-display: swap để user không chờ font mà chữ xuất hiện trước? Nếu load font như vậy mà không, trang sẽ chạy một vòng trắng đáng kể (FOIT - Flash of Invisible Text). Người dùng ghét điều đó vô cùng.
3. Code splitting là điều mà framework nhỏ sẽ không tự làm
Nếu bạn dùng React hay Vue, hẳn bạn đã bao giờ build một ứng dụng lên mà bundle chính là 300KB, 500KB, hoặc tệ hơn. Phần lớn code đó không cần ở home page. Hãy lazy load các route, các component lớn, những feature không dùng ngay. Webpack hay Vite sẽ tách code tự động nếu bạn dùng dynamic import().
4. Caching—nhưng không phải cách bạn nghĩ
HTTP caching header không phải là sẽ save bandwidth. Nó save latency. Browser cache không tốt bằng CDN cache. Nếu bạn có khách hàng ở TPHCM, Hà Nội, Đà Nẵng mà server chỉ ở một nơi, bạn mất latency. Dùng Cloudflare (miễn phí), AWS CloudFront, hoặc BunnyCDN. Điều khác biệt này nhìn như nhỏ nhưng nó vật lý—tín hiệu mất thời gian để đi từ Việt Nam sang data center ở Singapore.
Con đường thực tế để optimize
Không phải áp dụng tất cả mấy cái trên cùng một lúc. Ưu tiên:
1Measure current state bằng Lighthouse hoặc PageSpeed
2Fix image trước (thường improve 30-40%)
3Minimize/defer JavaScript không cần urgent
4Setup CDN nếu có traffic quốc tế
5Enable gzip/brotli trên server
6Optimize database query nếu backend chậm
Hơn cả technical—hiểu rằng performance là business problem, không phải engineer problem. Nó ảnh hưởng conversion, bounce rate, SEO ranking.
Một lần tối ưu tốt hơn rất nhiều lần giải cứu gấp. Và cách tốt nhất là xây dựng performance từ lúc bắt đầu dự án, không phải chốt đơn hàng rồi mới lo.
Nếu bạn muốn đầu tư vào một team hiểu sâu về performance cùng architecture, những công ty như Idflow Technology sẽ giúp bạn xây từ gốc đúng.