Tăng tốc, tối ưu hóa cho WordPress

Dưới đây là một số kinh nghiệm tăng tốc, tối ưu hóa cho WordPress mà mình thấy có hiệu quả, có thể đúng, có thể sai, tùy theo quan điểm mỗi người

Chẳng hạn với các lập trình viên, họ luôn ưu tiên code tốt, chuẩn, sạch sẽ, hay với người quản trị VPS, họ lại cần một dịch vụ hosting có uptime 99.99999% 😀 hay với người sử dụng đơn thuần, họ chỉ quan tâm cái plugin đó chạy đúng yêu cầu của họ, còn chuyện chạy chậm, lag, không an toàn … là thứ yếu

Bài này mình viết từ giai đoạn 2017, tới 2024 đọc lại vẫn thấy ổn, vì thường các thứ cơ bản khá khó để sai 😀 mình chỉ bổ xung, chỉnh sửa lại 1 chút, cho phù hợp với tình hình hiện tại

1. Hosting

Trước đây mình đánh giá hosting vẫn là cái quan trọng, tiên quyết nhất của việc tăng tốc độ cho website, có điều từ 2023, Cloudflare đã bắt đầu hỗ trợ các rule cache rất tốt, tốc độ nhà mạng của Việt Nam ngày càng cải thiện, mình thấy không còn là ưu tiên hàng đầu nữa

Có thể chọn các dịch vụ hosting có location tại Singapore, Hong Kong, Japan, Đài Loan, Trung Quốc, thậm chí location tại US, Euro vẫn ổn, tất nhiên với các đối tượng nhu cầu đặc thù, dạng shop bán hàng, phục vụ chủ yếu cho khách hàng trong nước, thì nên thuê hosting tại Việt Nam để có tốc độ tối ưu và hạn chế khi đứt cáp quốc tế

Ở thời điểm hiện tại, mình nghĩ là nên dùng VPS chứ không nên dùng các gói hosting share, với việc dùng các script như Webinoly, CloudPanel … chỉ mất đâu đó từ 10-20 phút là đã có một con VPS sẵn sàng để hoạt động, và hoàn toàn không cần biết bất cứ 1 dòng lệnh nào cả

Share hosting thì mình không khuyến khích, bạn sẽ tốn rất nhiều thời gian “vô bổ” để đi giải quyết các lỗi do các nhà cung cấp này, kiểu plugin cần 1 số quyền, dịch vụ hosting họ cắt cái hàm đó, không cho chạy, hay 1001 các thứ như downtime, server lỗi, cúp điện, đổi DNS ….

Thời điểm 2024, VPS mình chỉ recommend 2 dịch vụ, 1 là của Oracle, nếu muốn dùng miễn phí , 2 là Amazon Lightsail, nếu dùng trả phí

Uptime của họ luôn đạt trên 99.99% và cái đó là cái tiên quyết đầu tiên mình quan tâm khi nói tới VPS, tất nhiên vẫn còn rất nhiều nhà cung cấp khác, đều rất nổi tiếng, hoạt động tốt chẳng kém, có điều vấn đề chi phí thường rất cao, không phù hợp cho số đồng người đọc bài 😀

Nếu lượng truy cập vào site chủ yếu ở Việt Nam, cũng có thể chọn server tại Việt Nam, có điều nói nghiêm túc là không khuyến khích, giá cao, cơ sở hạ tầng không ổn định, nhân lực, quản lý yếu kém …. với các nhà cung cấp hosting Việt Nam mình chẳng biết giới thiệu dịch vụ nào, nhu cầu bắt buộc dùng thì phải chịu, còn không nên hạn chế dùng

Với phần lớn các nhu cầu thông thường, mình đề xuất sử dụng Lightsail, một dịch vụ VPS của Amazon, location Singapore có tỷ lệ uptime, độ ổn định và tốc độ tuyệt vời cho các khách hàng ở Việt Nam

Hiện tại trang bibica.net đang chạy trên Oracle Always Free, location US, lý do đơn giản vì mình đang có tài khoản free nên dùng thôi 😀

2. Config Hosting

68747470733a2f2f63646e2e71726f6b65732e636f6d2f77702d636f6e74656e742f75706c6f6164732f73697465732f342f323032302f31312f776562696e6f6c795f6c6f676f5f626c75652e706e67

Config Hosting thật sự là một bước rất khó, cần rất nhiều năm kinh nghiệm, cách đây khoảng 15-20 năm, mình gặp rất nhiều trường hợp dùng server riêng $100-$200 / month mà tốc độ chạy ì ạch còn thua xa mấy cái hosting share $1-$2 / month, tuy thế bây giờ, với sự ra đời của các auto script, việc cài đặt server chưa bao giờ đơn giản tới thế, bạn có thể sử dụng Webinoly, CloudPanel … hoặc tự config tùy thích, tuy thế mình khuyên là nên dùng các script có sẵn, đỡ phải vọc vạch nhiều, họ đã tối ưu sẵn Nginx + MariaDB (MySQL) + PHP … chạy rất nhẹ và mượt

Bạn có thể sử dụng bất cứ script gì tùy thích, cá nhân thì mình đặc biệt giới thiệu Webinoly, siêu nhẹ, đơn giản, các tính năng đều thiết thực, hiệu quả, chỉ mất khoảng 10 phút là bạn đã cài đặt xong các thứ để có thể sử dụng, cơ chế backup, restore của họ rất tuyệt vời, người dùng không có kinh nghiệm vẫn có thể quản trị tốt, tác giả vẫn đang cập nhập hàng năm đều đặn

Hiện tại trang bibica.net đang vận hành trên Webinoly, khi đổi sang VPS mới, restore lại toàn bộ hệ thống, chỉ mất tầm 10-20 phút là tất cả cấu hình và setting cũ đều được chuyển sang, so với việc backup, restore như trước đây thì nhàn hơn rất nhiều

Trừ khi nhu cầu của bạn hơi đặc thù, database của trang tính theo GB, cần xử lý thêm nhiều chỗ, còn lại thường cài mặc định Webinoly vào là đủ

Webinoly theo mình rất xứng đáng tìm hiểu, vì lợi ích mang lại, cực kì đáng so với thời gian bạn phải bỏ ra

3. Cloudflare (DNS, CDN, SSL, Cache, Firewall, Email …)

Sử dụng Cloudflare cho DNS và CDN cải thiện khá nhiều về tốc độ, thậm chí nếu bạn đang dùng 1 hosting US cũng cải thiện rất tốt, bật Cloudflare lên một phát tất cả các thông số về thời gian load, DNS, SSL, TTFB đều giảm xuống đáng kể, hệ thống firewall, proxy miễn phí của họ ngoài việc ẩn đi IP của VPS giúp ích rất nhiều trong việc chặn các cuộc tất tấn công

Từ 2023, sau khi thay đổi cơ chế rule cache, Cloudflare là giải pháp tuyệt vời để cache, nó ở 1 cấp độ hơn hẳn các hình thức cache bạn từng biết, quan trọng nhất là miễn phí nữa

Mình thậm chí còn dùng thêm SSL, Email và 1 tấn các dịch vụ khác từ Cloudflare

  • Sự lệ thuộc này đặc biệt nghiêm trọng, vì nếu Cloudflare lên cơn ngáo đá, trang bạn sẽ lập tức gặp vấn đề, có điều bạn cũng đừng quá lo lắng, tần xuất Cloudflare sập nặng, thường tính theo 5-10 năm, trang của bạn tồn tại > 10 năm rồi thì hãy quan tâm tới vấn đề này 😀
Hosting ổn định, cấu hình tốt, dùng Cloudflare cache gần như là 3 giải pháp quan trọng nhất trong việc tối ưu, tăng tốc cho WordPress ở cấp độ hệ thống, theo mình thế là đủ, các bước bên dưới chỉ tăng thêm 1 chút hiệu quả, không quá đáng kể

4. Optimization images

12-22-2017-9-54-11-AM

Thông thường hình ảnh chiếm khoảng 50%-80% dung lượng của 1 trang trang, nén hình ảnh tốt, bạn đã giảm nhiều dung lượng trang xuống ->  tốc độ sẽ cải thiện

Có điều nếu bạn đã dùng Cloudflare cache như ở bước 3, tác dụng của tối ưu ảnh nó không còn lớn, thêm vào đó nhà mạng Việt Nam hiện tại cũng rất nhanh, load 1 tấm ảnh 100kb hay 20kb nó không có sự khác biệt về tốc độ ở điều kiện sử dụng thực tế

Optimization images ngày xưa rất hiệu quả, hiện tại phần lớn chỉ mang tính hình thức

Để tối ưu ảnh trên WordPress, có thể dùng Jetpack Image CDN, cấu hình siêu đơn giản, hoàn toàn miễn phí, một sản phẩm tuyệt vời

Thèng bibica.net đang dùng hình thức làm màu hơn, dùng Cloudinary -> FastCgi Cache -> Cloudflare cache, link ảnh bắt đầu từ img.bibica.net 😀 chủ yếu cho đẹp chứ không có ý nghĩa mấy

Cá nhân mình recommend sử dụng Jetpack Image CDN, chất lượng nén gần như tương đồng ảnh gốc, mình chưa khi nào thấy ảnh load tới giây thứ 2, kể cả khi đứt cáp quốc tế 😀 cơ sở hạ tầng của Jetpack cũng thuộc dạng bố đời, gần 5 năm sử dụng, mình chưa bao giờ thấy hệ thống của họ sập, độ ổn định ở cấp độ thế giới

5. Theme

Về theme, ta lại phải bàn sang vấn đề tính năng và nhu cầu mỗi người, 1 theme rất tốt, nhẹ và nhanh, nhưng người dùng thấy không đẹp, thiếu tính năng, họ không thích thì phải làm sao 😀 họ lựa 1 theme nặng khủng khiếp với hàng tá tính năng mà chẳng bao giờ họ sử dụng, nhưng họ thích dùng thì … phải sử lý theo thế chứ sao 😛

Nói về theme là phải nói tới tư duy của người dùng cuối, khách vào site, không phải nói theo kiểu mấy ông lập trình, cứ nói “teo phải viết thế nó mới nhanh, nó mới sạch, nó mới tối ưu” 😀 người sử dụng họ chỉ nhìn giao diện, họ thấy không đẹp thì họ không nhìn tiếp, chỉ thế thôi 😀

Bạn có thể thoải mái lựa theme bạn thích, miễn phí hay trả phí đều được, không thành vấn đề, nếu 1 theme miễn phí có khoảng > 10.000 lượt download đều thừa tốt, theme trả phí thì chỉ cần phiên bản mới nhất vẫn đang còn được tác giả update trong khoảng 3 tháng là được

Theme thì mình recommend Flatsome và GeneratePress, tác giả viết 2 theme này trình độ đều rất cao, tốc độ update cũng rất đều đặn, theme cũng rất đơn giản và đẹp, tùy biến cao

Flatsome, một bộ theme vô cùng đồ sộ với 1 rừng tính năng mà nhẹ hều, chạy cứ phải nói là xé gió :]] phải nói đây là một trong các giao diện xứng đáng tới từng đồng phải trả 😀

GeneratePress thì phải nói thẳng là không bằng Flatsome, để dễ hình dung thì Flatsome nếu chơi game ta gọi là auto play 😀 còn GeneratePress thì gọi là semi auto 😛 tuy thế, nếu thuần túy chỉ là blog, nó cũng đủ dùng và đủ xài 😀

Về vấn đề theme thì khá khó bàn, thường xử lý tối ưu cho theme, bạn phải tự làm, khá khó để nói chung chung là tối ưu làm sao, có điều cũng đừng quá lo lắng, thường thì các theme trả phí, hoặc miễn phí mà có > 10.000 lượt download, thì người viết họ đã làm tốt cả rồi, down về dùng là được 😛

6. Plugin

Sử dụng, chọn lựa plugin cho WordPress nó cũng khó nhằn không thua gì bước 2, config hosting, rất chua, cần nhiều kinh nghiệm, như bạn cần một tính năng nào đó cho blog hoặc shop của bạn, nhưng search ra được cái plugin chạy đúng yêu cầu, nó lại gây lỗi đụng chạm với 1 số plugin đang sử dụng, vấn đề tiếp theo là bắt buộc bạn cần tính năng đó, không bỏ được, còn cố search ra các plugin có tính năng tương tự thì không ra, hỏi có mệt mỏi không 😀

Hay như đơn giản bạn cần mấy cái form nhỏ nhỏ để làm phần contact, send mail đơn giản, không dưới 50-100 plugin có tính năng như thế, chọn thèng nào? Contact Form 7 từng là một tượng đài cho chuyện này, thậm chí có người từng nói “teo sử dụng nó cho vài trăm trang web, mà dạo này bị spam khủng khiếp wá”, ok, tiếp theo thì để hạn chế spam, đơn giản nhất, ta sử dụng thêm reCAPTCHA, cũng chẳng vấn đề gì, nhưng nó làm chậm trang của bạn vì phải load thêm 1 mớ API chó má gì đó từ Google, chưa kể còn gây sự khó chịu cho khách vào xem, gửi có cái mail liên hệ mà thèng reCAPTCHA nó bắt click vào xe, vào cây, vào bảng chỉ đường, bực, ếu thèm liên hệ lun, bạn cứ thử dùng các trình duyệt nào đó, không phải dùng core là Google Chrome vào mấy trang sử dụng reCAPTCHA là thấy, thèng Google nó bắt click chít mịa lun 😀 Yeb, giải pháp của mình thì vẫn là Contact Form 7 nhưng dùng thêm WordPress Zero Spam để chống spam cho hệ thống khi đăng kí tài khoản, gửi email, gửi comment …

Mình cũng có viết 1 trang về phần Toolbox, các plugin và theme đang sử dụng, sau 4-5 năm thì về cơ bản nó là như thế, kinh nghiệm thì trước khi dùng plugin nào đó, bạn thử google trước, xem các review đánh giá thế nào, sau đó vào thẳng kho WordPress.Org search, cách thủ công hơn là thử từng cái một cho tới khi hài lòng vậy

Cài 30-50 plugin mà viết tốt thì đôi khi nó còn nhẹ hơn 2-3 plugin mà nặng, cồng kềnh, có điều cũng đừng quá lo lắng, nếu bạn dùng Cloudflare cache rồi thì có chạy 30-50 plugin cũng chẳng thành vấn đề, miễn sao chúng đừng đụng chạm lẫn nhau, gây lỗi không kiểm soát được, còn thuần túy nặng thì cũng khó xảy ra vì được cache thành file html cả

Bạn có thể dùng thêm http2, http3 … để giúp load đồng thời nhiều request, các trình duyệt đời mới sau này hỗ trợ rất hiệu quả

Các tool, tip, trick để giảm các request thừa, font location, giảm dung lượng các file css, js bằng các xóa các khoảng trắng, comment ghi chú trong file … phần lớn đều vẽ vời, màu mè, tối ưu theo hướng cực đoan, chủ nghĩa hoàn mỹ để đạt hiệu quả hết sức có thể thôi, bạn không cần tìm hiểu thêm làm gì cho mất thời gian

Kết luận

3 bước đầu tiên là đã đủ hiệu quả, phù hợp cho tuyệt đại đa số các nhu cầu, bạn không cần thiết phải bỏ ra quá thời gian để tìm hiểu thêm làm gì, các vấn đề đó để người viết theme, plugin họ làm 😀

Tăng Tốc, Tối Ưu Hóa Cho WordPress
KEY của bài viết này là Lightsail + Webinoly + Cloudflare + Jetpack 😀

Đây là bài viết từ những ngày đầu tiên, tới 2024 mình vẫn thấy nó rất có giá trị xem lại, nên cập nhập lại 1 chút câu cú, nội dung đa phần vẫn giữ nguyên, phần lớn các giải pháp mình đưa ra, đều ưu tiên miễn phí và hợp lý về giá cả, chơi thế bền hơn, chứ mình gặp rất nhiều trang, ban đầu quảng cáo um sùm, bài viết mới ra liên tục, mà sau 1-2 năm, tác giả chán, để domain, VPS tự hết hạn, bỏ luôn

Cập nhập lần cuối vào lúc 10/06/2024