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

Để lại bình luận

39 Bình luận trên "Hướng dẫn WP Super Cache toàn tập"

avatar
Sắp xếp theo:   mới nhất | cũ nhất | đánh giá nhiều
Vũ quốc phương
Khách

Cho em hỏi sao WP Super Cache sao nó lưu mỗi trang index-trang chủ mà không lưu cache của các trang khác nữa

Huyền Trang
Khách

Khi em làm theo đúng các bước anh hướng dẫn, sau khi cài đặt Plugin thì thấy báo lỗi này và khi vào setting của WP Super Cache thì không có gì anh ạ

Warning: file(/home3/phanhuy/public_html/spa268.com/wp-content/wp-cache-config.php): failed to open stream: No such file or directory in /home3/phanhuy/public_html/spa268.com/wp-content/plugins/wp-super-cache/wp-cache.php on line 2055
Warning: Invalid argument supplied for foreach() in /home3/phanhuy/public_html/spa268.com/wp-content/plugins/wp-super-cache/wp-cache.php on line 2056

Anh Lê
Khách
Với WordPress: Khi kết hợp Super Cache và Fastcgi Cache thì chắc chắn sẽ hiệu quả sẽ tốt hơn rất nhiều. Fastcgi Cache dùng Cache trên Ram với những Quest page. Super Cache dùng Cache SSD với những Member page. Thêm chút Browser Cache + Gzip. Rảnh hơi tẹo thì thêm Google Page Speed. Thành phần khác có thể là: Centos, Nginx, MariaDB, HHVM VPS 2GB (Swap:4GB) | 2 Core (optimized configuration) Original Page Content của các bạn sẽ chỉ load tính bằng ms. (400-700ms) Lời khuyên: Không thạo gỡ lỗi thì không nên dùng OpenLiteSpeed | PHP7 | Varnish… Xem thêm »
vtkong
Khách

Wp cache có dùng cho vps đươc không? Theo bài viết này thì hình như là dùng được đúng không cậu?

Simon
Khách
Chào bạn Thạch Phạm. Mình đang cố làm một blog web bằng wordpress, mình đã xem những bài của bạn rất nhiều và làm theo. Minh hầu như không biết tí gì về lập trinh web nên việc mình đang làm là quá khó khăn với mình và tốn rất nhiều thời gian. Quay lại việc chính, mình gặp lỗi khi sữ dụng WP SUPPER CACHES, Khi minh cài đặt và làm theo hướng dẫn của bạn thì xảy ra lỗi TOO MANY REDIRECT. Mình đã mất 2 ngày mới biết được lỗi này do WP SUPPER CACHES gây ra.… Xem thêm »
Hữu Hùng
Khách
Anh Thạch cho em hỏi rằng phần VII: WP Super Cache cho NGINX em không thực hiện có được không? Tại em đọc từ trên xuống. Không làm bước này và test thấy nó vẫn hoạt động tốt trên nginx. Mà hình như Plugin này có chút thay đổi rồi anh à. Bây giờ nó khuyến khích mình xài” Use PHP to serve cache files. (Recommended)” thay cho Use mod_rewrite to serve cache files ấy anh. http://i.imgur.com/OQaQe4g.jpg Không biết có phải em xài vps chạy nginx nên nó khác không chứ lúc trước em cài plugin này cho site cũ… Xem thêm »
Hùng
Khách

Chào anh Thạch

Em có một câu hỏi trong admin em nó hiển thị lổi: “analysis_post_content filter/action is deprecated since version WPSEO 3.0! Use javascript instead. in /home/kient247/public_html/wp-includes/functions.php on line 3573”

Em có hỏi trên host thì host trả lời do lổi của WP_Supper cache nhưng em tắt pluin xong mở lại thì nó vẩn bị lỗi như trên. vậy có cách nào để sửa lỗi này không. Mong anh giúp đở

Lê Tân
Khách

Hi anh Thạch
Khi em cài Wp super cache thì có tình trạng tại trang user tại “my account” không thể đăng nhập được. Em ngừng kích hoạt Wp super cache thì mọi thứ lại bình thường.
Có cách nào khắc phục không anh

Toan Nguyen
Khách

Cái này có thể kết hợp được với Cloudflare không bạn nhỉ, mình thấy cloudflare cũng có sẵn cache rồi không biết có thể dùng kết hợp được không

Saotruc
Khách

Chào ad Thạch khi em cài plugin Super Cache vào thì phần đánh giá của plugin kk Star Ratings click vào không chạy không đánh giá được nữa. Có cách nào khắc phục không AD

Tâm Đoàn
Khách

Bác Thạch cho mình hỏi là, mình phân quyền cho editor nhưng dùng cache thì khi đăng bài cần refresh để bài hiện, nhưng quyền editor thì ko clear cache được, vậy làm thể nào để plugin cache hiện trong quyền của editor? nhờ bác giúp đỡ ạ

Hoàng
Khách
Mình theme Flatsome của Therefore hình như bị chặn cài file. Mình ấn update startus nhưng nó vẫn báo hiển thị lỗi số 5. Mình cho test thử thì nó báo thế này. Test your cached website by clicking the test button below. Fetching http://guitarthaikhang.=com/ to prime cache: OK Fetching first copy of http://guitarthaikhang.=com/: OK (1.html) Fetching second copy of http://guitarthaikhang.=com/: OK (2.html) The pages do not match! Timestamps differ or were not found! Things you can do: Load your homepage in a logged out browser, check the timestamp at the end of the html source. Load the page again… Xem thêm »
Hoàng
Khách
. mình cài làm thêm hướng dẫn nhưng vẫn bị lỗi này. Khi test thì nó hiện như sau: “Cache Tester Test your cached website by clicking the test button below. Fetching http://guitarthaikhang.com/ to prime cache: OK Fetching first copy of http://guitarthaikhang.com/: OK (1.html) Fetching second copy of http://guitarthaikhang.com/: OK (2.html) The pages do not match! Timestamps differ or were not found! Things you can do: Load your homepage in a logged out browser, check the timestamp at the end of the html source. Load the page again and compare the timestamp. Caching is working if the timestamps match. Enable… Xem thêm »
Khánh
Khách

Chào Thạch, m có cài plugin tạo cache WP Super Cache cho trang web của m dùng Woocommerce. Khi m bật plugin lên thì gặp lỗi vào trang thông tin sản phẩm. Web nó báo:
Content Encoding Error.
The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression. Please contact the website owners to inform them of this problem.
Sau đó m refresh lại thì n mới vào được trang thông tin sản phẩm đó. Sản phẩm nào cũng bị thế. Thạch giúp m sửa nó được không?

Huỳnh
Khách

Anh làm cái mục lục đó như thế nào vậy anh

long
Khách

mình bị lỗi Not available : this plugin is not allowed on our system due to performance, security, or compatibility concerns , có cách nào giải quyết ko bạn, cám ơn nhìu T_T

lequangvubg
Khách

Mình cũng đang bị lỗi này, bạn đã sửa được chưa vậy

Khánh
Khách

Em bị lỗi này khi cài WP Super Cache. A có thể cho e biết lỗi này là lỗi gì và cách khắc phục như thế nào không ạ. Xin cảm ơn a!
Warning! You attempted to enable compression but zlib.output_compression is enabled. See #21 in the Troubleshooting section of the readme file.

Vinh
Khách

Khi mình install wp super cache lần đầu vô bất cứ link nào cũng đều báo 503 Service Unavailable, f5 lại thì bình thường, có cách nào fix hok bạn? hay host mình không hỗ trợ

Duy
Khách
Theo như bài của bác thì wp super cache rất quan trọng đối với website nên e có cài và làm theo hướng dẫn trong bài này của bác nhưng nó lại khiến plugin Ultimate Member của e bị lỗi. Trang đăng nhập và trang đăng ký của plugin Ultimate member không thể nào xài được nữa. Mỗi khi điền đầy đủ thông tin vào form rồi bấm nút đăng nhập/đăng ký thì y như rằng trang đăng nhập/đăng ký đó liền quay trở lại trạng thái ban đầu. Form đăng nhập/đăng ký đều mất hết thông tin đã điền… Xem thêm »
tuan
Khách

fsafasf

văn trường
Khách

Em có gặp vấn đề này khiến em hơi sợ khi sử dụng wp suber cache.
Em có dùng plugin swith theme mobile để chuyển theme khi vào mobile và wp suber cache , nhưng vô tình có lần truy cập trang chủ bằng trình duyệt desktop lại vào trang chủ phiên bản mobile , từ đó e ko dám dùng wp suber cache nữa, vậy cho em hỏi lỗi này khắc phục thế nào ?

Phan Thành Tin
Khách

Warning! You attempted to enable compression but zlib.output_compression is enabled. See #21 in the Troubleshooting section of the readme file.

Trường
Khách

Chào Thạch, cho anh hỏi anh cài xong rồi nó báo như này ảnh đính kèm, như thế giờ anh phải làm sao để thành công.

Trước kia anh đã cài thành công rồi. sau khi chuyển hosting khác thì bị như này

Tuan Duong The
Khách

2 dòng code chèn nginx thì chèn vào đâu hả bạn, mình dùng VPS digioncean thì chỉ có /etc/nginx/nginx.conf nhưng tìm không thấy server {….}. và localtion / {….}

Khánh
Khách

M là người mới tập dùng wordpress, cài plugin tạo cache WP Super Cache. cũng có thắc mắc như bạn. Thạch Phạm có thể giải thích chỗ đoạn này rõ hơn được không?

Hair
Khách

Mình hỏi chút: Cài SP Cache lên host VPS, 2 đoạn code kia là chèn vào file index.php ngoài hay chén index trong themes? Và mình dùng WinSCP để chuyển code lên, khi Addnew nó đòi user,pass FTP, nên mình không thể tải plugin mới về đc, có cách nào giải quyết k? Thanks !

wpDiscuz
menu
menu