❤️ AZDIGI chính thức cập nhật hệ thống blog mới hoàn chỉnh. Tuy nhiên có thể một số bài viết bị sai lệch hình ảnh, hãy ấn nút Báo cáo bài viết ở cuối bài để AZDIGI cập nhật trong thời gian nhanh nhất. Chân thành cám ơn.

WordPress hiện đang vận hành 43% toàn bộ website trên internet. Con số này không phải ngẫu nhiên mà đến từ sự dễ sử dụng và linh hoạt của nền tảng này. Tuy nhiên, khi triển khai WordPress trên VPS, nhiều người gặp phải tình trạng trang web load chậm.

Bài này sẽ hướng dẫn các bước cụ thể để tăng tốc WordPress trên VPS từ 2-5 lần so với ban đầu. Tất cả đều là kỹ thuật đã được test thực tế trên hàng trăm website.

Lưu ý: Các lệnh đề cập trong bài viết này chỉ mang mục đích tham khảo, không làm theo vì việc nâng cấp, cài thêm phần mềm phải đảm bảo tương thích với các phần mềm cài đặt VPS của bạn. Các thao tác sai có thể làm website không thể hoạt động trên VPS.

Đo tốc độ hiện tại của website

Trước khi tối ưu, bạn cần biết website hiện tại chậm ở đâu. Đây là các công cụ cần thiết:

Kiểm tra TTFB (Time to First Byte)

TTFB là thời gian từ lúc browser gửi request đến khi nhận byte đầu tiên từ server. Đây là chỉ số quan trọng nhất để đánh giá hiệu năng server.

# Kiểm tra TTFB bằng curl
curl -o /dev/null -s -w "%{time_starttransfer}" https://domain.com

# Ví dụ kết quả: 0.850 (nghĩa là 850ms)

Cách đọc kết quả:

  • Dưới 200ms: Tốt
  • 200-600ms: Chấp nhận được
  • Trên 600ms: Cần tối ưu ngay

Công cụ đo tốc độ online

  • Công cụ TTFB của AZDIGI Tools: Phân tích TTFB trên nhiều vị trí địa lý để có đánh giá khách quan nhất.
  • Google PageSpeed Insights (https://pagespeed.web.dev/): Phân tích chi tiết từng yếu tố, đưa ra gợi ý cụ thể, test trên cả mobile và desktop
  • GTmetrix (https://gtmetrix.com/): Waterfall chart cho thấy thời gian load từng resource, lưu lịch sử để so sánh trước và sau tối ưu

💡 Mẹo: Ghi lại các số liệu này trước khi bắt đầu: TTFB, Page load time, PageSpeed score, Số lượng HTTP requests

Tối ưu phía server

Server là nền tảng quyết định tốc độ website. Đây là những cải tiến có impact lớn nhất.

Nâng cấp phiên bản PHP

PHP 8.2+ nhanh hơn PHP 7.4 khoảng 20-30% trên cùng một server. Nâng cấp đơn giản nhưng hiệu quả rõ rệt.

# Kiểm tra version hiện tại
php -v

# Nâng cấp lên PHP 8.2 (Ubuntu/Debian) sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install php8.2 php8.2-fpm php8.2-mysql php8.2-gd php8.2-xml php8.2-curl

# Chuyển sang PHP 8.2 sudo a2dismod php7.4 sudo a2enmod php8.2 sudo systemctl restart apache2

Kích hoạt OPcache

OPcache lưu cache bytecode PHP đã compile, giảm thời gian xử lý cho mỗi request cho PHP. Việc sử dụng OPcache hầu như là bắt buộc để tăng hiệu suất xử lý.

# Kiểm tra OPcache có bật chưa
php -m | grep -i opcache

# Nếu chưa có, cài đặt sudo apt install php8.2-opcache

Cấu hình OPcache trong /etc/php/8.2/fpm/php.ini:

; Kích hoạt OPcache
opcache.enable=1
opcache.enable_cli=1

; Memory allocation (128MB, đủ cho hầu hết site) opcache.memory_consumption=128

; Số file PHP tối đa có thể cache (4000 đủ cho WP + plugins) opcache.max_accelerated_files=4000

; Validate timestamp mỗi 60s trong production opcache.revalidate_freq=60

; Không check file changes trong production (set 0) opcache.validate_timestamps=0

Cấu hình PHP-FPM process manager

PHP-FPM quyết định cách xử lý các request đồng thời. Cấu hình sai sẽ gây ra nghẽn cổ chai nghiêm trọng.

Chỉnh sửa /etc/php/8.2/fpm/pool.d/www.conf:

; Process manager type (dynamic tốt nhất cho hầu hết site)
pm = dynamic

; Số process tối thiểu luôn chạy pm.start_servers = 4 pm.min_spare_servers = 2 pm.max_spare_servers = 6

; Số process tối đa (dựa vào RAM: 1GB = 8-10 processes) pm.max_children = 20

; Kill process sau 200 requests để tránh memory leak pm.max_requests = 200

; Timeout cho slow scripts request_timeout = 60

Chi tiết cấu hình và tối ưu thêm, tham khảo: Tối ưu Nginx PHP-FPM

Object Cache với Redis

WordPress mặc định không có object cache persistence. Mỗi request đều phải query database để lấy options, post meta, user data. Redis giải quyết vấn đề này.

Tại sao cần Redis?

Ví dụ một homepage WordPress thông thường:

  • Không Redis: 20-40 database queries
  • Có Redis: 3-8 database queries

Giảm queries có nghĩa là giảm load database và tăng tốc thời gian phản hồi đáng kể.

Cài đặt Redis

# Cài Redis server
sudo apt install redis-server

# Bật auto-start sudo systemctl enable redis-server sudo systemctl start redis-server

# Kiểm tra hoạt động redis-cli ping # Response: PONG

Cấu hình cơ bản Redis trong /etc/redis/redis.conf:

# Memory limit (256MB đủ cho site vừa)
maxmemory 256mb
maxmemory-policy allkeys-lru

# Persistence (tắt để tăng performance) save ""

# Network (chỉ bind local) bind 127.0.0.1

Kết nối WordPress với Redis

Cài plugin Redis Object Cache by Till Krüss từ WordPress admin. Plugin này đáng tin cậy và được dùng bởi hàng triệu site.

Sau khi cài xong:

  • Vào Settings > Redis trong WordPress admin
  • Click Enable Object Cache
  • Kiểm tra status: “Connected”

Page Cache

Object cache chỉ cache data, còn page cache cache toàn bộ HTML đã render. Đây là cấp độ cache hiệu quả nhất.

Plugin cache phổ biến

  • WP Super Cache: Đơn giản, ít cấu hình, tạo file HTML tĩnh, phù hợp site ít traffic
  • W3 Total Cache: Nhiều tính năng, page cache + object cache + database cache, CDN integration, phức tạp nhưng mạnh
  • LiteSpeed Cache: Dành cho LiteSpeed Web Server, hiệu năng cao nhất, tích hợp ESI (Edge Side Includes), chỉ hoạt động trên LiteSpeed server

Nginx FastCGI Cache (khuyên dùng)

Đây là giải pháp cache ở tầng web server, nhanh hơn plugin cache.

Thêm vào cấu hình Nginx:

# Cache zone definition (đặt trong http block)
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=WORDPRESS:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

server { # ... cấu hình server khác

# Set cache headers set $skip_cache 0;

# Skip cache cho admin, logged users if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") { set $skip_cache 1; }

if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") { set $skip_cache 1; }

location ~ \.php$ { # ... fastcgi_pass và params khác

# Cache settings fastcgi_cache WORDPRESS; fastcgi_cache_valid 200 60m; fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache;

# Cache headers cho browser add_header X-Cache $upstream_cache_status; } }

ℹ️ Tạo thư mục cache và restart Nginx sau khi cấu hình xong

Plugin audit: tìm thủ phạm gây chậm

WordPress plugin có thể là nguyên nhân chính gây chậm website. Một plugin viết kém có thể tạo ra hàng chục slow queries.

Cài Query Monitor plugin

Query Monitor là công cụ debug tốt nhất để phân tích performance.

Sau khi cài, vào trang bất kỳ và click Debug bar ở admin bar trên cùng.

Phân tích Database queries

  • Click tab Queries
  • Sort theo Time (giảm dần)
  • Tìm queries mất thời gian > 0.1 giây

Query Monitor hiển thị Caller – plugin nào tạo ra query đó. Note lại plugin nào xuất hiện nhiều trong danh sách slow queries.

Thay thế plugin nặng

  • WooCommerce nặng? Thử: Easy Digital Downloads (cho digital products), WP Simple Pay (cho payments đơn giản)
  • Yoast SEO chậm? Thử: RankMath, SEOPress
  • Page builders như Elementor, Divi chậm? Thử: Block editor native, GeneratePress theme + GenerateBlocks

💡 Nguyên tắc: Plugin làm ít việc hơn thường nhanh hơn.

Database optimization

Database WordPress có xu hướng phình to theo thời gian do revisions, spam comments, transients cũ.

WP-Optimize plugin

Plugin này dọn dẹp database an toàn và hiệu quả.

Các tính năng chính:

  • Xóa revisions cũ (giữ lại 2-3 bản gần nhất)
  • Dọn spam comments và pingbacks
  • Xóa transients hết hạn
  • Optimize database tables

Chuyển từ MyISAM sang InnoDB

MyISAM table engine cũ, không hỗ trợ transactions và row-level locking. InnoDB nhanh hơn cho WordPress.

-- Kiểm tra tables đang dùng MyISAM
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = 'database_name' AND ENGINE = 'MyISAM';

-- Chuyển sang InnoDB ALTER TABLE wp_posts ENGINE=InnoDB; ALTER TABLE wp_comments ENGINE=InnoDB; ALTER TABLE wp_options ENGINE=InnoDB;

⚠️ Các thao tác vào database luôn phải sao lưu (backup) cẩn thận trước khi làm.

Media optimization

Hình ảnh thường chiếm 60-80% dung lượng trang web. Tối ưu ảnh có ảnh hưởng lớn đến tốc độ tải trang nếu bạn đang sử dụng các hình ảnh có kích thước lớn, chưa tối ưu trên website.

Tối ưu dung lượng hình ảnh

Các hình ảnh nên được tối ưu dung lượng mà không làm mất đi chất lượng (hoặc không đáng kể) trước khi upload lên website. Một hình ảnh chưa được tối ưu có thể giảm đến 80% dung lượng mà chất lượng không thay đổi khi chỉ xem bằng mắt thường.

Với WordPress, có thể sử dụng plugin EWW Image Optimizer để tối ưu dung lượng tự động. Hoặc nếu bạn cần tối ưu đơn lẻ một vài hình ảnh thì có thể sử dụng công cụ Image Optimization miễn phí của AZDIGI.

Lazy load images

WordPress 5.5+ có sẵn lazy loading native. Ảnh chỉ load khi người dùng cuộn trang gần đến chúng.

Chuyển đổi sang WebP

WebP nhẹ hơn JPEG 25-35% với cùng chất lượng. Modern browsers đều hỗ trợ WebP.

Plugin WebP tốt:

  • ShortPixel: Có free tier, convert bulk
  • Imagify: Của WP Rocket team
  • WebP Converter for Media: Free, nhiều options

CDN cho static files

CDN cache static files (ảnh, CSS, JS) tại nhiều server trên thế giới. User download từ server gần nhất.

Có thể sử dụng CloudFlare để có CDN miễn phí, nhưng khi truy cập trong nước thì có thể chậm hơn một chút.

Các bước cấu hình trên CloudFlare bao gồm:

  • Đăng ký, add domain
  • Đổi nameservers theo hướng dẫn Cloudflare
  • Speed > Optimization: bật Auto Minify cho CSS, JS, HTML
  • Caching > Configuration: Browser Cache TTL = 1 year

Xem thêm: Các hướng dẫn tối ưu và bảo mật website với CloudFlare

Checklist tối ưu WordPress VPS

Sau đây là checklist đầy đủ để tối ưu WordPress trên VPS:

✅ Server-level optimization

  • Nâng cấp lên PHP 8.2 hoặc mới hơn
  • Bật và cấu hình OPcache đúng cách
  • Cấu hình PHP-FPM process manager phù hợp với RAM
  • Sử dụng Nginx thay vì Apache (hoặc Nginx + Apache reverse proxy)
  • Bật Gzip compression trên web server
  • Cấu hình cache headers cho static files

✅ Caching layers

  • Cài đặt và cấu hình Redis object cache
  • Chọn và setup page cache (plugin hoặc Nginx FastCGI)
  • Test cache hoạt động bằng cache headers và Redis monitor
  • Cấu hình cache purge khi có content mới

✅ Media & assets optimization

  • Enable lazy loading cho images
  • Convert images sang WebP format
  • Setup CDN cho static files
  • Auto-resize ảnh upload để tránh file quá lớn
  • Minify CSS và JavaScript

WordPress Hosting tối ưu tại AZDIGI

Nếu cần VPS đã được cấu hình sẵn cho WordPress với LiteSpeed Web Server, AZDIGI cung cấp gói WordPress Hosting đã tối ưu:

  • LiteSpeed Web Server với LSCache tích hợp
  • PHP 8.2+ và OPcache đã cấu hình
  • Redis object cache sẵn sàng sử dụng
  • Auto backup hàng ngày
  • SSL miễn phí và CDN tích hợp

Xem thông tin WordPress Hosting AZDIGI →

Tối ưu xong có cần maintain gì không?

Cần monitor performance hàng tháng và dọn dẹp database mỗi 2-4 tuần. Cache sẽ tự động purge khi có content mới.

TTFB bao nhiêu là đủ tốt?

Dưới 200ms là excellent, 200-400ms là good, trên 600ms cần cải thiện. Mục tiêu nên là dưới 300ms.

Redis có tốn nhiều RAM không?

Redis thường dùng 50-200MB RAM cho site WordPress trung bình. ROI rất cao so với performance gain.

Plugin cache nào tốt nhất?

Nginx FastCGI cache > LiteSpeed Cache > WP Rocket > W3 Total Cache > WP Super Cache. Tuy nhiên cần phù hợp với setup server.

Có nên dùng cả object cache lẫn page cache không?

Có, hai loại này bổ trợ cho nhau. Object cache giảm database queries, page cache cache toàn bộ HTML output. Kết hợp cả hai để đạt performance tối đa.

Kết quả: Sau khi áp dụng đầy đủ các bước trên, website WordPress trên VPS có thể đạt được:

  • TTFB giảm từ 800ms xuống 150-250ms
  • Page load time cải thiện 2-5 lần
  • Google PageSpeed score tăng từ 40-50 lên 85-95
  • Server có thể handle gấp 3-4 lần traffic với cùng tài nguyên
Chia sẻ:
Bài viết đã được kiểm duyệt bởi AZDIGI Team

Về tác giả

Trần Thắng

Trần Thắng

Chuyên gia tại AZDIGI với nhiều năm kinh nghiệm trong lĩnh vực web hosting và quản trị hệ thống.

Hơn 10 năm phục vụ 80.000+ khách hàng

Bắt đầu dự án web của bạn với AZDIGI