WordPress有个“定时任务”机制,叫WP-Cron,负责定时发布文章、检查插件和主题的更新、发送计划邮件、执行备份插件的任务等等。
问题是,WP-Cron不是真正的定时器。它要等有人访问网站,才会检查“有没有到点要执行的任务”。这就带来两个麻烦:
- 访问量小的网站:没人访问就不执行,设了早上8点发布的文章,可能到9点才发出去,后台会显示“错过计划”;
- 访问量大的网站:同时有很多访客,WP-Cron可能被同时触发很多次,拖慢页面速度,后台也会变卡。连搜索引擎的爬虫来访,也会触发。
Cloudways提供了一个叫Cron Optimizer的功能,一键就能把WP-Cron换成服务器定时任务。本文讲这几件事:
- Cron Optimizer是什么;
- 怎么开启;
- 怎么在后台添加自己的定时任务;
- 要注意什么。
本文按Cloudways官方帮助文档整理,文中带标注的截图来自官方文档,名称和位置以你后台实际显示为准。
Cron Optimizer是什么?
官方的说明是:开启Cron Optimizer之后,Cloudways会通过WP-CLI,用服务器定时任务来代替WordPress原生的WP-Cron,同时把任务错开执行,避免同一时间堆在一起占满服务器。
好处:
- 定时任务按时执行,不再依赖访客;
- 不会因为访客同时打开页面而重复触发;
- 如果多个任务到点,会逐个执行,不会一起压垮服务器;
- WordPress多站点(Multisite)会逐个子站依次执行。
适用范围:只有新版后台的WordPress网站可用,包括WooCommerce和多站点。
以前Cloudways有一篇教程,教你通过SSH手动关闭WP-Cron,官方已经下线了,让用户改用Cron Optimizer。
怎么开启Cron Optimizer?
- 进入网站所在的服务器,点击网站,进入网站的管理面板;
- 左侧菜单点击「Application Settings」(图中5);
- 切换到「WordPress Settings」页签(图中6)。

- 往下找到「Cron Optimizer」,打开右侧的开关(图中7)。页面上写明:开启之后,WordPress原生的Cron会被禁用。

- 弹出确认窗口,点击「Confirm」(图中8)。

- 开关下方显示“Cron Optimizer is enabled”(图中9),就开好了。

这个设置是按网站单独设置的,一台服务器上有多个网站的话,每个网站都要开一次。
怎么知道WP-Cron有没有问题?
先判断自己有没有必要开:
- 后台的「工具」→「站点健康」里提示“计划事件延迟”或者“错过计划”;
- 定时发布的文章经常晚发或者没发;
- 后台操作明显比前台慢,特别是访问量大的时候;
- 备份插件、邮件插件、订单相关的定时任务经常不按时跑。
如果你的网站访问量很小,也没有定时发布的需求,不开也没有明显影响。
在后台添加自己的定时任务
Cron Optimizer只管WordPress自己的定时任务。如果你有别的脚本要定时执行,比如定时访问某个网址、运行某个PHP文件,可以在网站的「Cron Job Management」里添加。
- 网站管理面板左侧菜单点击「Cron Job Management」;
- 点击「Add New Cron Job」。

- 在弹出的窗口里选择执行的时间,「Common Settings」里有常用的选项(比如每天两次),也可以自己填分钟、小时、日、月、星期,然后填写要执行的命令,点击「Submit」。

「Basic」和「Advanced」两个页签的区别:
- Basic:用表单添加。官方说明,Flexible的Basic页签不允许给wget和curl加参数,需要加参数的话用Advanced;
- Advanced:直接编辑crontab格式的文本,更灵活,写错了容易把已有的定时任务弄坏,要小心。只有账号所有者或者拥有完整权限的团队成员才能在Advanced里编辑。
时间的写法是crontab的五个字段:分钟、小时、日、月、星期,比如0 0,12 *表示每天0点和12点各执行一次。
注意事项
- 开了Cron Optimizer,就不要再自己加一条定时访问
wp-cron.php的任务,两套机制重复,只会多占资源; - 之前手动把
DISABLE_WP_CRON写进wp-config.php的,需要先搞清楚现状。官方现在推荐的做法是用Cron Optimizer,不建议再用旧的手动方法,两种方式混用的话,建议联系客服确认,见《Cloudways怎么联系客服?》; - 开启之后观察一两天:定时发布的文章有没有准时发出、插件的定时任务(备份、邮件)有没有正常执行;
- 从别的主机迁移过来的网站,原来的定时任务不会自动带过来,要在这里重新添加,见《Cloudways迁移插件怎么用?》;
- 想关掉的话,在同一个位置把「Cron Optimizer」开关关闭,WordPress会恢复使用原生的WP-Cron。
常见问题
开了Cron Optimizer,网站会变快吗?
主要是定时任务更稳定、后台操作更顺畅,不会因为访客太多重复触发而拖慢。网站前台的加载速度主要看缓存,见《Cloudways网站怎么加速?》。
Cloudways要收费吗?
官方文档没有提到Cron Optimizer单独收费,是网站设置里的一个开关,以你后台页面和账单为准。
我的网站在旧版后台,没有这个选项怎么办?
官方说明Cron Optimizer只在新版后台提供。可以先切换到新版后台,或者联系客服。
定时任务在哪里看有没有执行?
可以在WordPress后台装一个查看定时事件的插件,或者通过SSH用WP-CLI的wp cron event list命令查看。
后台特别卡,只靠这个能解决吗?
不一定。后台卡的原因有很多,比如服务器配置不够、插件太多、数据库查询太多、缓存没配置好。判断服务器够不够用,见《Cloudways服务器配置怎么选?》。
总结
WordPress自带的WP-Cron要靠访客触发,访问少的网站任务会延迟,访问多的网站容易重复触发拖慢服务器。
Cloudways的Cron Optimizer可以一键换成服务器定时任务:「Application Settings」→「WordPress Settings」→打开「Cron Optimizer」→「Confirm」。它只在新版后台的WordPress网站可用,每个网站要单独开启。自己的脚本任务,则在「Cron Job Management」里添加。
更多Cloudways的使用教程,可以查看《Cloudways主机教程汇总》。



