Vô hiệu hóa WP-Cron (wp-cron.php) giúp website WordPress của bạn load nhanh hơn, chịu tải tốt hơn.

Các Cron Job được sử dụng để lên lịch hoạt động cho các tác vụ mang tính chất định kỳ trên website WordPress của bạn. Một số ví dụ về Cron Job có thể kể đến như: lên lịch xuất bản bài viết, kiểm tra các bản cập nhật, xóa cache website hoặc chạy plugin backup dữ liệu theo lịch đã được xác định trước… Trong WordPress, điều này được xử lý bởi WP-Cron, một tính năng mô phỏng Cron của hệ thống (nhưng không hoàn chỉnh). Tùy thuộc vào lượng lưu lượng truy cập vào website của bạn, việc sử dụng trình xử lý Cron tích hợp có thể ảnh hưởng ít hoặc nhiều đến tốc độ load web. Vì vậy, hôm nay tôi sẽ hướng dẫn cho các bạn cách vô hiệu hóa WP-Cron (wp-cron.php) và thay vào đó sử dụng Cron của hệ thống (host) để giúp website load nhanh hơn, chịu tải tốt hơn.
Tham khảo thêm:
- Tối ưu khả năng chịu tải cho WordPress với Heartbeat Control
- Vô hiệu hóa XML-RPC để bảo mật WordPress tốt hơn
Tại sao bạn nên vô hiệu hóa WP-Cron?
Không chỉ được khởi chạy vào những khoảng thời gian đã được quy định từ trước (bởi WordPress và các plugin), WP-Cron còn chạy mỗi lần bạn load web. Nghĩa là website có lượng khách truy cập càng nhiều thì tần suất hoạt động của WP-Cron càng cao. Nó tạo ra một lượng truy vấn HTTP(S) không hề nhỏ, gây ảnh hưởng nhiều tới cả tốc độ load lẫn khả năng chịu tải của website.

Đặc biệt là khi website của bạn cài nhiều plugin nặng (tạo nhiều Cron Job, chẳng hạn như WooCommerce) và có lưu lượng truy cập cao thì mức độ ảnh hưởng của WP-Cron là rất lớn. Giải pháp tối ưu nhất để giải quyết tình trạng này chính là vô hiệu hóa WP-Cron và thay thế nó bằng hệ thống Cron của host.
Vô hiệu hóa WP-Cron
Tất cả những gì bạn cần làm là thêm đoạn code sau đây vào file wp-config.php của WordPress rồi lưu lại:
define('DISABLE_WP_CRON', true);
Lưu ý là nó phải nằm trên dòng ghi chú này:
/* That's all, stop editing! Happy blogging. */
Code bên trên có tác dụng ngăn không cho WP-Cron tự động chạy mỗi khi load web. Bạn vẫn hoàn toàn có thể gọi nó trực tiếp thông qua file wp-cron.php.
Chạy Cron Job bằng host
Sau khi vô hiệu hóa WP-Cron, các bạn sẽ cần phải thiết lập Cron Job trên host để đảm bảo website WordPress vẫn hoạt động một cách bình thường.
Host cPanel
1. Truy cập cPanel của bạn, tìm mục Cron Jobs và click vào đó.

2. Trong giao diện Add New Cron Job, các bạn sẽ nhìn thấy một số mục như sau.

Trong đó:
- Common Settings: các bạn nên chọn mức Twice Per Hour (2 lần mỗi giờ) để tránh gây ảnh hưởng nhiều đến hiệu suất của host. Hệ thống sẽ tự điền giá trị vào các mục Minute, Hour, Day, Month và Weekday nằm bên dưới.
- Command: các bạn điền dòng lệnh như sau.
wget -q -O - https://domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Nhớ thay domain.com bằng domain của bạn.
Click vào nút Add New Cron Job để hoàn tất.
3. Các Cron Job mà bạn đã tạo sẽ được hiển thị trong danh sách ngay bên dưới.

Host DirectAdmin
1. Truy cập DirectAdmin của bạn, tìm mục Cron Jobs và click vào đó.

2. Click tiếp vào mục Create Cron Job.

3. Trong giao diện Create Cron Job, các bạn sẽ nhìn thấy một số mục như sau.

Trong đó:
- Minute: điền
*/5để chạy Cron Job mỗi 5 phút một lần. Để mặc định giá trị là*trong các mục Hour, Day of Month, Month, Day of Week. - Command: các bạn điền dòng lệnh như sau.
wget -q -O - https://domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Nhớ thay domain.com bằng domain của bạn.
Click vào nút Create để hoàn tất.
4. Các Cron Job mà bạn đã tạo sẽ được hiển thị trong danh sách như hình bên dưới.

Chạy Cron Job bằng dịch vụ của bên thứ ba
Ưu điểm của phương pháp này là sẽ:
- Áp dụng được trong mọi trường hợp, ngay cả khi host của bạn không hỗ trợ chạy Cron Job.
- Không tiêu tốn tài nguyên của server.
Tham khảo bài viết “Sử dụng EasyCron thay thế cho WP-Cron trong WordPress” để biết thêm chi tiết.
Thật đơn giản phải không nào? Chúc các bạn thành công!
Mọi thắc mắc liên quan đến việc vô hiệu hóa WP-Cron của WordPress xin vui lòng gửi vào khung bình luận bên dưới để được giải đáp.
Nếu bạn thích bài viết này, hãy theo dõi blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất nhé. Cảm ơn rất nhiều. :)






Hiếu có thể viết 1 serial những việc cần làm để tăng tốc độ cho website không nhỉ
Cái này mình không viết được bạn nhé. Nhưng nó sẽ có trong dịch vụ tối ưu WordPress miễn phí cho các khách hàng sử dụng dịch vụ WordPress Hosting của bên mình. Ngoài ra, bạn có thể tham khảo danh sách các bài viết hướng dẫn tăng tốc WordPress. Tất nhiên là bạn phải chọn lọc tùy theo từng trường hợp chứ không phải áp dụng tất cả. :)
cho mình hỏi ạ, chả là web mình bị dính vụ bài viết cũ chòi lên, bị từ đầu tháng 9 tới giờ, mà chả biết nguyên nhân gì, làm đủ cách cũng không ngăn được vụ bài viết cũ đăng lại, không thấy nội dung thay đổi gì cả, có cách nào để cho nó không đăng lại ko ạ?
Bài viết cũ đăng lại là sao bạn nhỉ? Bạn phải cài plugin tự động đăng tải lại bài viết cũ hoặc chỉnh sửa nó thủ công thì nó mới đăng lại chứ? Nếu bạn không làm cả 2 việc trên thì kiểm tra kỹ lại xem website có bị hack hay không. Ngoài ra, kiểm tra xem web của bạn có thiết lập tính năng sắp xếp danh sách bài viết trong WordPress theo ngày cập nhật hay không?
hay, để em thử
Thế là bạn Hiếu đã đặt sẵn chế độ này cho mình khi mua host WP Căn Bản rồi ah? Cảm ơn bạn nhé :D
Mình thiết lập rồi. Bạn không cần làm gì nữa cả. :P
wget -q -O – https://domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
chỉ cần add thêm dòng này, còn lại ko cần làm gì nữa đúng ko?
nếu hosting có nhiều site thì mối site phải làm riêng đúng ko? (dù chúng đều chung 1 folder)
Cái này bạn phải làm riêng cho mỗi website nhé. Gồm 2 bước là vô hiệu hóa WP Cron của WordPress và tạo Cron Job trên host. Cụ thể thì mình đã nói rất rõ trong bài viết rồi.
Dùng wp-roket nó cần dùng cron để tự động lên lịch tối ưu data bác ạ
Có cron job của host rồi mà bạn.
Nếu làm vậy thì lịch up bài viết, update plugin sẽ không được thực hiện à Hiếu?
Vì web của mình, mình thường viết bài và đặt lịch post.
Thanks!
Có chứ bạn. Mình có hướng dẫn cấu hình chạy Cron Job trên host rồi còn gì? :)
Nếu mình thiết lập host ko đúng thì sẽ có vấn đề gì xảy ra nếu wp-cron ko chạy? Có những dấu hiệu nào để mình biết là cron ko chạy ko?
Đơn giản nhất là bạn có thể soạn thảo 1 bài viết sau đó đặt lịch xuất bản cho nó. Nếu bài viết được xuất bản bình thường thì có nghĩa là Cron Job đang hoạt động.
Cái này coi bộ có lý ghê ta. Mình cũng mới tham khảo thêm ở các site nước ngoài. Có nhẽ là triển ngay cho nóng :p
Quất liền chứ gì nữa. :P
Bài viết hay quá! Rất hữu ích với những website nhiều plugin như của mình!
Quất liền đi bạn hiền. :P
Ý ông bạn là tôi làm luôn cái này hử? Cái này có nằm trong mục tối ưu website khi mua hosting của ông không?
Không nhé. Khách hàng có nhu cầu thì tự làm theo hướng dẫn. :P
Chờ phản hồi của vài bạn nữa đã, ổn thì tớ mới sử dụng. kk
Cái này đã được xác nhận bởi người trong cuộc rồi. Không cần phải chờ. :P
Xem chi tiết tại đây.