Hướng dẫn WP Super Cache toàn tập

WP Super Cache là một trong những plugin miễn phí tốt nhất để hỗ trợ tăng tốc website WordPress bằng công nghệ tạo bộ nhớ đệm (cache) dành cho các website nhỏ và vừa, mà cụ thể là sử dụng phương thức HTML Cache. Sở dĩ nó được xếp vào danh sách plugin tốt nhất không chỉ vì hiệu suất sử dụng mà nó còn có cách sử dụng rất dễ, phù hợp với những người mới tiếp xúc với WordPress.

Ở trong bài này, mình sẽ nói qua toàn bộ những vấn đề về plugin WP Super Cache như cách cài đặt trên nhiều loại webserver, ý nghĩa của từng thiết lập và cách cấu hình sao cho hợp chuẩn để website đạt tốc độ cao.

Nên xem trước: Các phương thức Caching trong WordPress và khi nào nên dùng.

I. Cài đặt WP Super Cache

Trước khi cài đặt plugin WP Super Cache, mình khuyến khích các bạn nên làm một số bước sau để tránh xảy ra các vấn đề không như ý muốn.

Đầu tiên bạn mở file wp-config.php ra và chèn đoạn dưới đây vào dưới <?php ở đầu file.

define( 'WP_CACHE', true );

Sau đó bạn vào Settings -> Permalinkbật tính năng permalink lên để dùng WP Super Cache tốt nhất.

II. Kích hoạt WP Super Cache

Vài trường hợp sau khi cài đặt, bạn truy cập vào Settings -> WP Super Cache sẽ thấy thông báo này:

Cảnh báo CONSTANT trong wp-config.php của WP Super Cache

Cảnh báo CONSTANT trong wp-config.php của WP Super Cache

Thông báo này có nghĩa là file wp-config.php của bạn chưa có đoạn define( 'WP_CACHE', true ); nhưng nếu file wp-config.php của bạn đang CHMOD là 644 thì nó sễ có quyền ghi vào tự động, do đó bạn chỉ cần ấn nút Update Status là nó cập nhật vào, thông báo sẽ ẩn đi.

Để kích hoạt, bạn chọn Caching On trong tab Easy và ấn Update Status.

Kích hoạt WP Super Cache

Kích hoạt WP Super Cache

Sau đó để kiểm tra xem cache đã được bật hay chưa, bạn hãy vào website bằng trình duyệt khác (không đăng nhập vào website) và ấn Ctrl + U để xem source của website, kéo xuống dưới cùng xem có đoạn này hay không, nếu có là thành công.

wp-super-cache-checkcache

III. Quản lý các file cache

Để xem danh sách các trang đã được lưu cache, bạn vào tab Contents và ấn List all cached files.

wp-super-cache-listcached

Nó sẽ hiển thị danh sách các trang được lưu cache thế này:

wp-super-cache-listcached02

Bạn có thể ấn vào nút X của mỗi trang để xóa cache của trang đó đi.

III. Thiết lập WP Super Cache tối ưu

Để thiết lập WP Super Cache nâng cao, bạn cần chuyển sang tab Advanced.

Tại đây, bạn hãy click vào các tùy chọn sau (các tùy chọn khác đã được chọn thì không cần bỏ chọn):

Cache hits to this website for quick access. (Recommended)

Dòng này sẽ được đánh dấu vào nếu bạn đã bật WP Super Cache ở tab Easy.

Use mod_rewrite to serve cache files. (Recommended)

Sử dụng phương thức rewrite đường dẫn để load file cache nhanh hơn. Hãy chắc chắn là file .htaccess (đối với Apache/Shared Host) đang CHMOD là 644 vì chút nữa ta sẽ cần cập nhật nội dung file này, đối với NGINX thì không cần vì ở trên mình đã kêu bạn chèn các quy tắc ghi đường dẫn của WP Super Cache.

Compress pages so they’re served more quickly to visitors. (Recommended)

Nén file cache thành dạng gzip để giảm dung lượng của website nhằm load nhanh hơn.

Don’t cache pages for known users. (Recommended)

Không load file cache nếu bạn đăng nhập, nếu bạn là quản trị thì sẽ hơi rắc rối nếu bạn bật cache cho người quản trị vì khi cần thay đổi cái gì đó, bạn phải xóa cache.

Only refresh current page when comments made.

Nếu bạn sử dụng hệ thống bình luận trong WordPress thì tùy chọn này sẽ tự xóa cache của trang có bình luận mới để tránh các trường hợp thành viên comment xong lại không thấy comment của mình do cache.

Đánh dấu xong, hãy ấn vào nút Update Status để hoàn tất.

Sau đó bạn kéo xuống, tìm nút Update Mod_Rewrite Rules rồi ấn vào để nó tự thêm nội dung file .htaccess nếu bạn sử dụng phương thức rewrite đường dẫn để load cache (NGINX không cần làm).

wp-supercache-updatemodrewrite

Nếu nó hiện ra bảng màu xanh lá cây thì bạn đã làm thành công.

Trường hợp nó không tự chèn nội dung đó vào file .htaccess do phân quyền thì bạn hãy bấm vào nút View Mod_Rewrite Rules và copy bỏ vào file .htaccess ngoài thư mục gốc của website thủ công.

Xem hình ảnh thiết lập của mình (ảnh lớn)

IV. Sửa lỗi timestamp

wp-supercache-timestamp

Lỗi timestamp này nghĩa là thời gian lưu file cache được đánh dấu trên server không trùng khớp với mốc thời gian trên máy tính. Thực tế lỗi này chẳng chết ai nếu bạn đã làm bước kiểm tra cache ở phần II nhưng bạn có thể làm thử cách sau để fix thông báo này:

  1. Thay đổi múi giờ trong website phù hợp với máy tính của bạn (Settings -> General).
  2. Xóa toàn bộ cache (WP Super Cache -> Contents -> Delete Cache) và vào trình duyệt khác truy cập vào website.
  3. Ấn lại nút Test Cache.

Nếu nó vẫn báo lỗi thì kệ nó, miễn sao khi bạn log out ra, website vẫn tải nhanh do có cache là được.

V. Một số lưu ý khi dùng WP Super Cache

  • Các plugin/code hỗ trợ đếm lượt xem bài viết không hoạt động chính xác do nó chỉ đếm lượt truy cập khi trang đó không có cache.
  • Lỗi trắng trang/404 nếu bạn dùng SSL/HTTPS.
  • Khi chuyển host, nên gỡ plugin WP Super Cache ra nếu không muốn bị lỗi trắng trang do sai đường dẫn thiết lập trong wp-config.php. Sau đó cài lại WP Super Cache trên host mới.
  • Nếu bạn dùng các host yếu, nên sử dụng tùy chọn “Use PHP to serve cache files” thay cho “Use mod_rewrite to serve cache files”.
  • Nếu vẫn bị lỗi trắng trang khi cài WP Super Cache là khả năng tương thích trên host bạn hơi kém, hãy đọc file error log.
  • Nên tắt plugin khi chuyển host.
  • Nếu bạn đang dùng các plugin bảo mật như iThemes Security, Bullef Proof Security,…thì có thể nó sẽ chặn ghi nội dung vào file wp-config.php và .htaccess, hãy tạm tắt các plugin này trước khi cài đặt.

VI. WP Super Cache cho Woocommerce

Nếu bạn đang dùng Woocommerce để làm website bán hàng thì có thể WP Super Cache sẽ làm cho trang giỏ hàng và thanh toán không thể hoạt động được do nó được lưu cache. Do vậy, hãy tiến hành đặt đoạn dưới đây vào phần Accepted Filenames & Rejected URIs trong tab Advanced và chọn Pages như hình dưới.

wp-supercache-excludepage

VII. WP Super Cache cho NGINX

Để cài đặt trên NGINX và PHP-FPM (LEMP), thì đầu tiên hãy chắc chắn rằng bạn đã cấp quyền cho user nginx và PHP-FPM sở hữu thư mục chứa website.

chown -R nginx:nginx /home/website/example.com/public_html

Sau đó vào Plugins -> Add New và cài đặt WP Super Cache như bình thường. Kích hoạt xong, thì việc bạn cần làm đầu tiên là mở file cấu hình domain đang sử dụng trong NGINX và thêm đoạn này vào giữa cặp server {....}.

	set $cache_uri $request_uri;

	# POST requests and urls with a query string should always go to PHP
	if ($request_method = POST) {
		set $cache_uri 'null cache';
	}
	if ($query_string != "") {
		set $cache_uri 'null cache';
	}   

	# Don't cache uris containing the following segments
	if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
		set $cache_uri 'null cache';
	}   

	# Don't use the cache for logged in users or recent commenters
	if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
		set $cache_uri 'null cache';
	}

Kế tiếp bạn tìm cặp localtion / {....} và thay thành thế này:

#Load from cache
location / {
     try_files /wp-content/cache/supercache/$http_host/$cache_uri/index.html $uri $uri/ /index.php ;
}

Và đây là ví dụ của mình:

server {
	listen		80;
	server_name	thach.dev www.thach.dev;

	# The Document Root
	root		/home/thach/public_html;
	error_log	/usr/local/apps/nginx/var/log/thach.dev.err;
	access_log	/usr/local/apps/nginx/var/log/thach.dev.log main;

	set $cache_uri $request_uri;

	# POST requests and urls with a query string should always go to PHP
	if ($request_method = POST) {
		set $cache_uri 'null cache';
	}
	if ($query_string != "") {
		set $cache_uri 'null cache';
	}   

	# Don't cache uris containing the following segments
	if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
		set $cache_uri 'null cache';
	}   

	# Don't use the cache for logged in users or recent commenters
	if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
		set $cache_uri 'null cache';
	}

	# Load from cache
	location / {
		try_files /wp-content/cache/supercache/$http_host/$cache_uri/index.html $uri $uri/ /index.php ;
	} 

}

Các đoạn minh bôi đậm là những đoạn bạn cần chèn vào.

Lời kết

Thực ra plugin WP Super Cache không có nhiều tùy chọn để phải hướng dẫn nhiều nên trong bài này chỉ có vậy thôi, nó vốn nổi tiếng tuy đơn giản nhưng có hiệu suất sử dụng rất tốt và tương thích hầu hết mọi cấu hình của host nên bạn hoàn toàn yên tâm. Cũng nói luôn rằng nếu bạn bị lỗi trắng trang hay 500 khi dùng WP Super Cache thì nên đọc file error log để xác định nguyên nhân mặc dù khả năng này xảy ra là rất hiếm.

Thạch Phạm

Đam mê với web và lập trình, thích viết và chia sẻ, nghiện cà phê và xăm mình, hứng thú với nhạc dân ca và nhạc không lời.

Xem thêm bài viết Subscribe
Do mình về Việt Nam có công việc nên tạm đóng bình luận tới ngày 28/02/2017 vì trong thời gian này mình không hỗ trợ được. Chân thành cáo lỗi về sự bất tiện này.
menu
menu
Hãy ấn nút chia sẻ nếu bạn thấy bài viết có ích!