Tốc độ website · 12 phút đọc · 2026-09-06
Tăng tốc website WordPress: bảy chỗ chậm và cách tự kiểm
Bài viết chỉ ra 7 điểm hay làm chậm website WordPress và cách tự kiểm từng nhóm nguyên nhân. Mục tiêu là tăng tốc an toàn, đo lại sau mỗi thay đổi.

Bạn đang thấy site WordPress chậm nhưng chưa biết nên đụng vào đâu trước. Quy trình dưới đây dùng để tăng tốc website wordpress theo cách an toàn: đo cùng vài URL, sửa từng nhóm nguyên nhân, rồi kiểm lại trước khi bật thêm plugin hay đổi hosting.
TTFB và hosting: đo trước khi mua plugin hoặc nâng gói
Đừng bắt đầu bằng câu “cài plugin tăng tốc nào tốt nhất”. Bắt đầu bằng một mẫu đo nhỏ, vì nếu không có số trước và sau thì bạn chỉ đang đo cảm giác. Chọn 2–3 URL đại diện: trang chủ, một bài viết hoặc trang danh mục, và nếu có bán hàng thì thêm một trang sản phẩm. Đo cùng thiết bị, cùng mạng nếu được, cùng công cụ, và ghi lại thời điểm đo. Tôi không có số chuẩn cho mọi website, vì TTFB phụ thuộc hosting, cache, plugin, truy vấn database và cả vị trí máy chủ so với người đo. Nhưng nếu TTFB luôn cao ở nhiều URL, kể cả trang ít nội dung, đó là tín hiệu ban đầu để xem server, PHP, database hoặc page cache trước khi nén ảnh hay minify CSS.
Khi kiểm tra tốc độ website WordPress, bạn nên đo một URL chưa đăng nhập, mở bằng cửa sổ ẩn danh, rồi đo lại sau khi xoá cache. Nếu chỉ trang chủ nhanh còn trang sản phẩm chậm, nguyên nhân có thể nằm ở truy vấn, WooCommerce, block động hoặc plugin gắn riêng vào trang đó. Nếu mọi trang đều phản hồi chậm ngay từ byte đầu tiên, cách tăng tốc website WordPress hợp lý hơn là kiểm page cache đã chạy chưa, hosting có quá tải không, phiên bản PHP có quá cũ không, và có tác vụ nền nào đang kéo tài nguyên không. Muốn giảm TTFB WordPress, đừng đổi ba thứ cùng lúc. Hãy ghi “trước khi sửa”, bật hoặc tắt một thay đổi, xoá cache, đo lại cùng URL. Nếu không khác biệt rõ, trả cấu hình về như cũ để tránh tích thêm lỗi khó truy ngược.

Cache không chỉ là cài plugin: tách page cache, object cache, opcode cache và browser cache
Câu “plugin cache WordPress nào tốt nhất” thường không có một đáp án đúng cho mọi site. Một website đặt trên hosting đã có cache tầng máy chủ sẽ khác site chạy VPS tự quản. Một shop WooCommerce có giỏ hàng, tài khoản khách, mã giảm giá và tồn kho cũng khác blog chỉ có bài viết tĩnh. Page cache lưu cả HTML của trang để khách chưa đăng nhập nhận nhanh hơn. Object cache giúp giảm việc hỏi database lặp lại, thường cần Redis hoặc Memcached nếu máy chủ hỗ trợ. Opcode cache nằm ở tầng PHP, thường do hosting bật. Browser cache nói với trình duyệt của khách rằng ảnh, CSS, JS có thể giữ lại trong một khoảng thời gian. Tôi không biết hosting của bạn đang bật lớp nào, nên việc đầu tiên là mở trang quản trị hosting, plugin cache và phần Site Health để xem có dòng nào nói rõ cache đang hoạt động hay không.
Lỗi hay gặp là bật trùng chức năng giữa plugin tăng tốc WordPress, CDN và cache của hosting. Ví dụ một plugin gộp CSS, plugin khác cũng gộp CSS; CDN cũng minify; hosting cũng có page cache. Khi lỗi xảy ra, bạn không biết ai đang sửa HTML cuối cùng. Cách an toàn là viết ra từng lớp: page cache do đâu xử lý, object cache có hay không, trình duyệt được đặt cache bởi plugin hay CDN, tối ưu file do công cụ nào làm. Chỉ để một nơi chịu trách nhiệm cho một việc. Sau đó mở cửa sổ ẩn danh, kiểm trang chủ, bài viết, trang có form, và trang thanh toán nếu có. Nếu site có chức năng cá nhân hoá theo người dùng, đừng cache bừa toàn bộ HTML cho mọi khách. Cache làm đúng có thể giúp tăng tốc website wordpress, nhưng cache sai có thể đưa giỏ hàng của người này sang phiên người khác hoặc làm form gửi thất bại.

Ảnh hero và LCP: đừng lazy-load nhầm hình quan trọng nhất
Ảnh lớn đầu trang thường là thứ làm bạn thấy trang “mãi mới hiện đầy đủ”. Trong Core Web Vitals WordPress, chỉ số LCP thường bị ảnh hero, banner, ảnh sản phẩm đầu tiên hoặc khối tiêu đề lớn kéo chậm. Tôi nói “thường” vì từng giao diện khác nhau; có site LCP lại là tiêu đề chữ, video hoặc block slider. Việc cần làm là mở công cụ đo hiệu năng, xem phần tử nào được báo là LCP, rồi xử lý đúng phần tử đó. Nếu LCP là ảnh, kiểm tra ảnh có bị tải kích thước lớn hơn khung hiển thị không, có dùng đúng ảnh cho mobile không, và theme có tạo srcset hợp lý không. WordPress có cơ chế tạo nhiều kích thước ảnh, nhưng theme hoặc page builder có thể gọi sai kích thước; điểm này phải nhìn trên URL ảnh thực tế, không đoán.
Lazy-load không phải lúc nào cũng tốt. Ảnh nằm dưới màn hình đầu tiên nên lazy-load để đỡ tải sớm. Nhưng ảnh hero nằm ngay vùng đầu trang mà bị lazy-load thì trình duyệt có thể chờ lâu hơn mới lấy ảnh quan trọng nhất. Với ảnh LCP, bạn có thể thử bỏ lazy-load riêng ảnh đó, thêm preload nếu biết chắc ảnh luôn xuất hiện, hoặc dùng fetchpriority cho trình duyệt ưu tiên tải. Tôi chưa đo site của bạn nên không thể nói lựa chọn nào chắc chắn tốt hơn. Hãy thử trên trang chủ và một trang sản phẩm, vì ảnh đầu trang ở hai nơi có thể khác cách gọi. Sau mỗi thay đổi, xoá cache và đo lại. Nếu theme dùng slider nhiều ảnh, hãy cân nhắc giảm số ảnh đầu tiên phải tải; slider đẹp nhưng có thể làm trình duyệt tải nhiều thứ trước khi khách kịp đọc gì.
Theme và plugin: tìm nguyên nhân WordPress chậm mà không tắt bừa trên site thật
Khi WordPress chậm, phản xạ tắt từng plugin trên website đang bán hàng rất nguy hiểm. Một plugin thanh toán, vận chuyển, form hoặc tạo hoá đơn bị tắt nhầm có thể làm mất đơn ngay lúc khách đang thao tác. Cách ít rủi ro hơn là dùng staging nếu hosting có hỗ trợ, hoặc dùng chế độ troubleshooting của plugin Health Check để chỉ tài khoản quản trị thấy plugin bị tắt, còn khách ngoài vẫn thấy site bình thường. Nếu bạn có một mình phụ trách kỹ thuật, hãy chọn khung giờ ít khách và ghi lại trạng thái trước khi thử. Đừng thử trên trang quản trị rồi kết luận toàn site, vì frontend và backend tải các plugin khác nhau.
Query Monitor cũng hữu ích để khoanh vùng, nhưng nó là công cụ xem tín hiệu chứ không phải bản án. Nó có thể cho thấy truy vấn chậm, hook chạy lâu, request ra ngoài, lỗi PHP hoặc template đang dùng. Nếu thấy một plugin xuất hiện nhiều trong truy vấn chậm, hãy kiểm lại bằng cách tắt nó trên staging, đo cùng URL, rồi mở lại. Có plugin chậm vì cấu hình sai, có plugin chậm vì gọi API bên ngoài, cũng có plugin chỉ lộ chậm khi dữ liệu đã lớn. Đừng xoá ngay chỉ vì một lần đo xấu. Muốn tăng tốc WordPress mà không làm vỡ chức năng, hãy khoanh vùng theo nhóm: plugin hiển thị, plugin marketing, plugin WooCommerce, plugin bảo mật, page builder và theme. Nhóm nào tác động rõ thì xử lý nhóm đó trước, thay vì thay cả giao diện trong một buổi tối.

JS/CSS: thử defer, delay và minify trên từng URL, không bật tất cả một lượt khi tăng tốc website WordPress
JS và CSS có thể chặn hiển thị, nhưng bật tất cả tuỳ chọn “tối ưu” cùng lúc dễ làm hỏng menu, popup, tracking, form hoặc checkout. Minify chỉ bỏ phần thừa trong file; defer đổi thời điểm chạy script; delay thường chờ người dùng tương tác rồi mới tải một số script. Ba việc này khác nhau. Nếu plugin cho phép bật từng mục, hãy thử trên một URL trước: trang chủ. Xoá cache, mở ẩn danh, kiểm menu mobile, banner, form tìm kiếm, nút chat, mã đo lường. Sau đó mới thử bài viết, trang liên hệ và trang thanh toán. Tôi không biết theme của bạn phụ thuộc script nào để dựng giao diện, nên không nên bật một loạt chỉ vì công cụ gợi ý “loại bỏ tài nguyên chặn hiển thị”.
Một cách tối ưu tốc độ website WordPress an toàn hơn là lập danh sách file đang tải trên trang. File nào thuộc theme, file nào thuộc page builder, file nào thuộc plugin marketing, file nào là bên thứ ba như chat, bản đồ, pixel quảng cáo. Với script bên thứ ba, delay có thể giúp cảm giác tải ban đầu nhẹ hơn, nhưng cũng có thể làm tracking thiếu dữ liệu hoặc nút chat hiện muộn. Với CSS, gộp file đôi khi tốt, đôi khi không đáng nếu máy chủ dùng giao thức hiện đại và file đã được cache; tôi không nêu chắc vì còn tuỳ hosting, CDN và trình duyệt. Sau mỗi thay đổi, hãy có một câu kiểm: “khách có còn làm được việc chính không?” Nếu trang nhanh hơn nhưng form không gửi được, thay đổi đó không đạt.
Database và autoload: kiểm tra để biết nghẽn, chưa đủ căn cứ để xoá
Database thường bị đổ lỗi khi site chậm, nhưng đừng mở phpMyAdmin rồi xoá tay nếu bạn chưa có bản sao lưu và chưa biết bảng đó do plugin nào tạo. Mức kiểm an toàn đầu tiên là xem Site Health có cảnh báo gì về database, object cache hoặc autoloaded options không. Autoloaded options là nhóm tuỳ chọn được WordPress nạp sớm trong nhiều request; nếu quá nặng, nó có thể làm mỗi lần tải trang tốn thêm tài nguyên. Tôi không đưa ngưỡng số cụ thể vì không có dữ liệu site của bạn và các phiên bản công cụ có thể báo khác nhau. Nếu công cụ cảnh báo, hãy xem tên option gợi ý thuộc plugin nào, plugin đó còn dùng không, và có trang cài đặt để dọn dữ liệu không.
Nếu dùng Query Monitor hoặc công cụ của hosting thấy truy vấn chậm, việc cần làm là truy ngược nguồn trước. Truy vấn đó đến từ theme, plugin lọc sản phẩm, plugin thống kê, hay một đoạn code tuỳ chỉnh? Trên staging, bạn có thể tắt plugin nghi ngờ rồi đo lại cùng URL. Nếu khác biệt rõ, kiểm tài liệu plugin hoặc cấu hình trước khi xoá dữ liệu. Một số plugin có công cụ dọn log, transient, session hoặc bảng tạm ngay trong phần cài đặt. Dùng chức năng chính thức đó an toàn hơn xoá trực tiếp trong database. Trước mọi thao tác đụng database, hãy có backup có thể khôi phục và nếu được thì thử khôi phục trên staging. Backup chưa thử khôi phục vẫn chỉ là một niềm tin, không phải phương án cứu site.
CDN và WooCommerce: cache trang tĩnh, loại trừ giỏ hàng và checkout
CDN có thể giúp phân phối file tĩnh như ảnh, CSS, JS từ điểm gần khách hơn, nhưng không có nghĩa là cache mọi trang HTML đều an toàn. Với site WooCommerce, Cart, Checkout và My Account thường chứa dữ liệu theo phiên người dùng. Trang tài liệu WooCommerce thường nhắc việc không cache các trang giỏ hàng, thanh toán và tài khoản theo cách làm lẫn thông tin phiên. Ngoài URL, còn phải để ý cookie và session. Nếu hệ thống cache không nhận ra cookie của giỏ hàng, khách có thể thấy giỏ không cập nhật, mã giảm giá sai, hoặc trang checkout hiển thị dữ liệu cũ. Đây là nhóm lỗi không phải lúc nào cũng lộ khi bạn chỉ mở trang chủ.
Cách làm thực tế là cache mạnh cho trang tĩnh: trang chủ nếu không cá nhân hoá, bài viết, danh mục nội dung, trang giới thiệu, ảnh và file giao diện. Với WooCommerce, loại trừ Cart, Checkout, My Account, endpoint thanh toán, và các request AJAX hoặc API mà plugin bán hàng cần. Tên endpoint cụ thể tuỳ cấu hình site và plugin thanh toán, nên hãy kiểm tài liệu plugin bạn đang dùng thay vì chép danh sách từ một bài bất kỳ. Sau khi bật CDN hoặc page cache, tự đặt một đơn thử nếu có thể: thêm sản phẩm, đổi số lượng, áp mã giảm giá, đăng nhập, đăng xuất, chọn vận chuyển, đi tới bước thanh toán. Nếu mọi bước chính còn hoạt động và các URL tĩnh nhanh hơn trong lần đo lại, bạn đã có cơ sở giữ cấu hình đó. Nếu lỗi chỉ xuất hiện với khách thật, hãy tắt cache HTML cho WooCommerce trước rồi khoanh vùng lại từ cookie và trang loại trừ.
- Tác giả
- Quản trị viên
- Đăng ngày
- 2026-09-06
- Cập nhật
- 2026-09-06
- Thời gian đọc
- 12 phút đọc
- Tất cả bài viết