Ngày nay, khi công nghệ thông tin càng phát triển, các trang web mọc lên như nấm với các giao diện bắt mắt, dễ thu hút người truy cập. Tuy nhiên, dù có đẹp đến đâu đi chăng nữa mà tốc độ load xong trang web đó lại là một trong những nguyên nhân khách có truy cập lần sau nữa không.
Hãy thử nghĩ xem bạn lướt web mà trang web nào cũng load chậm như rùa thì bạn có muốn vào đó lần sau nữa không hay tắt luôn tab? Sau đây sẽ có một vài cách để tối ưu tốc độ trang web, tuy không thể giúp “nhanh như điện” nhưng cũng phần nào giảm thiểu thời gian load. 🙂
1. Kiểm tra tốc độ của trang
Hãy kiểm tra tốc độ trang web của bạn theo định kì để kịp giải quyết những vấn đề phát sinh. Bạn có thể kiểm tra tại Pingdom.
Tốc độ load dưới 3s là tốc độ tốt nhất cho một trang web tuy vẫn còn nhiều người nói rằng thời gian đó là còn quá chậm nhưng bạn đừng lo lắng, theo mình là tốc độ đó là quá đủ rồi, nó còn phụ thuộc vào mạng internet nhà bạn vào mạng có nhanh không, tùy vào trình duyệt nữa,…
2. Giảm kích cỡ của trang
Đây là một trong những yếu tố quan trọng nhất ảnh hưởng đến tốc độ load trang web của bạn. Nó bao gồm các hình ảnh, chữ, JavaScript, CSS và nó được tính bằng kilobyte. Bạn hãy tối ưu nó một cách tốt nhất của thể. Ví dụ về phần hình ảnh, bạn nên nén giảm dung lượng hình ảnh xuống mức thấp nhất bằng các phần mềm hoặc ở các trang web online, ở đây huyct.net đang sử dụng phần mềm nén ảnh khá tốt là Caesium. Bạn có thể click vào đây để tải về.
Đối với JavaScript và CSS, bạn có thể nén tối ưu xóa bỏ những khoảng trang, note không cần thiết để giảm dung lượng tập tin. Dưới đây là một vài trang web nén JavaScript và CSS online cho các bạn tham khảo, nếu bạn không biết nhiều về nó thì hãy để những thông số như mặc định sẽ tốt hơn.
- JavaScript: javascriptcompressor.com, jscompress.com
- CSS: cleancss.com, csscompressor.com, cssportal.com
3. Sử dụng mạng lưới phân phối nội dung (CDN)
CDN – Content Delivery Network là một mạng lưới máy tính trải dài trên toàn cầu. Chúng có nhiệm vụ lưu trữ những dữ liệu, hình ảnh, video trên blog của chúng ta và cung cấp cho người dùng gần nhất về mặt địa lý.
Ở Việt Nam có một số nhà cung cấp dịch vụ CDN hình thức trả phí khá tốt và được nhiều người tin dùng là VCCloud, CDN Vietnam, hoặc nếu muốn miễn phí, các bạn có thể chọn một số nhà cung cấp nổi tiếng trên thế giới như CloudFlare, MaxCDN,… do là miễn phí nên một số tính năng bị hạn chế, nói chung nếu muốn dùng ổn định và phát triển lâu dài thì mình khuyên nên dùng các dịch vụ trả phí ở những nơi uy tín.
4. Sử dụng bộ nhớ đệm (Cache)
Sử dụng cache sẽ giúp bạn giảm thời gian tải trang, các nhà cung cấp hosting nổi tiếng trên thế giới đều khuyên bạn nên sử dụng cache cho trang web, điều đó cũng làm giúp máy chủ nơi đặt website giảm được “chút gánh nặng”. Nếu bạn sử dụng WordPress, mình giới thiệu bạn nên sử dụng hai plugin sau đây:
- WP Super Cache – Plugin tạo cache đơn giản nhưng rất tốt, thích hợp cho những ai đang sử dụng hosting thông thường.
- W3 Total Cache – Plugin tạo cache miễn phí chuyên nghiệp nhất mọi thời đại, thích hợp cho website WordPress đang chạy trên môi trường máy chủ riêng (VPS/Dedicated Server)
Đương nhiên là bạn chỉ nên sử dụng 1 trong 2 plugin thôi nhé nếu không muốn trường hợp đáng tiếc xảy ra.
Ngoài ra việc tạo cache cho trang web ra, bạn cũng nên tạo cache cho trình duyệt nếu bạn không muốn mỗi lần truy cập, trình duyệt lại phải tải về và phân tích nội dung trang web, thật mất thời gian. Hiện nay có 2 web server thông dụng là Apache và Nginx.
Để sử dụng Browse Caching trên máy chủ Apache, bạn chèn đoạn code sau vào file .htaccess, Apache sẽ đảm nhận chức năng này với 2 module mod_expires
và mod_headers
.
# BEGIN Expire headers <ifModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 5 seconds" ExpiresByType image/x-icon "access plus 2592000 seconds" ExpiresByType image/jpeg "access plus 2592000 seconds" ExpiresByType image/png "access plus 2592000 seconds" ExpiresByType image/gif "access plus 2592000 seconds" ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds" ExpiresByType text/css "access plus 604800 seconds" ExpiresByType text/javascript "access plus 216000 seconds" ExpiresByType application/javascript "access plus 216000 seconds" ExpiresByType application/x-javascript "access plus 216000 seconds" ExpiresByType text/html "access plus 600 seconds" ExpiresByType application/xhtml+xml "access plus 600 seconds" </ifModule> # END Expire headers # BEGIN Cache-Control Headers <ifModule mod_headers.c> <filesMatch "\.(ico|jpe?g|png|gif|swf)$"> Header set Cache-Control "public" </filesMatch> <filesMatch "\.(css)$"> Header set Cache-Control "public" </filesMatch> <filesMatch "\.(js)$"> Header set Cache-Control "private" </filesMatch> <filesMatch "\.(x?html?|php)$"> Header set Cache-Control "private, must-revalidate" </filesMatch> </ifModule> # END Cache-Control Headers
Đối với máy chủ Nginx, chèn đoạn sau vào file cấu hình domain
location ~* .(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { expires max; log_not_found off; access_log off; }
5. Sử dụng nén Gzip – Gzip File Compression
Nén Gzip sẽ làm giảm thiểu tối đa thời gian phản hồi bằng cách giảm dung lượng tải về từ giao thức HTTP. Nó có thể nén các thành phần tĩnh trên website như CSS, Javascript, HTML nhưng trên lý thuyết và 1 số trường hợp, nó có thể làm việc cùng với XML và JSON. Các thành phần khác như hình ảnh, tài liệu PDF..v.v..có thể không cần sử dụng gzip vì bản thân nó đã được nén sẵn.
Đối với máy chủ Apache
Nếu bạn dùng host thông thường thì dĩ nhiên host của bạn sẽ thuộc loại Apache Webserver, do vậy bạn sẽ cần chèn đoạn sau vào file .htaccess ngoài thư mục gốc của website.
# BEGIN GZIP <ifmodule mod_deflate.c> AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript </ifmodule> # END GZIP
Đối với máy chủ Nginx
Nếu máy chủ của bạn đang sử dụng Nginx Webserver thì chèn đoạn sau vào file cấu hình domain trong NGINX.
server { gzip on; gzip_types text/html text/css application/x-javascript text/plain text/xml image/x-icon; }
Bạn có thể kiểm tra trang web của mình đã được nén Gzip hay chưa tại checkgzipcompression.com , nhập URL trang web của bạn và nếu nó hiện It’s GZip Enabled là ok rồi.
6. Chọn lựa hosting, VPS
Đây cũng là một trong các yếu tốt quan trọng để quyết định tốc độ của trang web, và đây chắc hẳn là vấn đề mà nhiều bạn, nhiều người phải đang phân vân lo lắng.
Cá nhân mình thấy, chúng ta ở Việt Nam nên chọn nhà cung cấp Việt Nam cho tốc độ load tốt nhất, nhưng hiện nay, giá hosting/VPS còn khá cao chưa phù hợp với các bạn là sinh viên hoặc không có điều kiện. Còn các nhà cung cấp ở nước ngoài, giá thành cũng khá rẻ so với cùng cấu hình ở Việt Nam nhưng khó khăn ở việc thanh toán (cần thẻ tín dụng, Paypal,..), khó khăn về việc hỗ trợ do bất đồng ngôn ngữ.
Vì thế, mình không thể quyết định dùm các bạn được, các bạn nên chọn cái nào phù hợp với mình nhất là Ok, nếu chọn nhà cung cấp ở nước ngoài nên chọn nơi đặt server ở Hồng Kông, SIngapore để có tốc độ tốt nhất về Việt Nam.
Trên đây là một vài cách để tối ưu tốc độ trang web của bạn, hy vọng nó sẽ có ích cho các bạn! Chúc các bạn thành công!