WordPress wp-cron 频繁请求占服务器?改用系统定时任务,更稳更省资源

用 WordPress 建博客的朋友,大概率都在 Nginx 日志里见过这种记录:

POST /wp-cron.php?doing_wp_cron=...

一开始我也以为是正常访问,后来才发现:

WordPress 自带的 wp-cron 并不是真正的定时任务,而是 “有人访问网站才触发” 的假定时。

只要有人打开页面,它就会在后台偷偷跑一遍计划任务,访问一多,就会:

  • 页面突然变卡、响应变慢
  • 数据库频繁被查询,负载升高
  • 日志疯狂刷屏,一堆无用请求
  • 高并发下甚至重复执行、乱执行任务

如果你也被 wp-cron 频繁请求烦到,不如直接关掉它,改用 Linux 系统自带的定时任务,稳定、安静、不占前端性能。

一、为什么建议关掉 WordPress 自带 wp-cron?

  1. 访问触发,不是真正定时 有人访问才执行,没人访问就一直积压,访问量大又瞬间爆发执行。
  2. 占用前端资源 它是在页面加载过程中跑的,会直接拖慢用户看到的页面速度。
  3. 容易重复执行、冲突 爬虫、刷新多了,同一任务同时跑好几次,服务器白白浪费资源。
  4. 日志杂乱 每天一大堆 wp-cron 请求,想看真正异常日志都费劲。

二、一步关闭 WordPress 伪定时任务

编辑网站根目录下的 wp-config.php,在 /* 好了,编辑到此为止! */ 这一行上面加入:

define('DISABLE_WP_CRON', true);

保存即可,WordPress 就不会再自动触发 wp-cron 了。

三、用 Linux crontab 真正定时执行(推荐)

直接让系统每分钟 / 每 5 分钟主动跑一次,稳定又安静。

  1. 打开 crontab 编辑:
crontab -e
  1. 加入下面任意一条(根据需求选):

每 5 分钟执行一次(最稳、适合大多数博客)

*/5 * * * * curl -so /dev/null https://www.58jb.com/wp-cron.php?doing_wp_cron

每分钟执行一次(文章定时发布多、插件任务频繁)

* * * * curl -so /dev/null https://www.58jb.com/wp-cron.php?doing_wp_cron

说明:

  • curl -so /dev/null 静默执行,不写日志、不输出内容
  • 把域名换成你自己的
  1. 保存退出,自动生效。

四、这样优化后有什么好处?

  • 网站前端不再偷偷跑后台任务,打开明显变快
  • 服务器 CPU、数据库压力降低
  • Nginx 日志清净很多,不再被 wp-cron 刷屏
  • 定时发布文章、插件计划任务更稳定、不重复执行
  • 爬虫再多也不会影响定时任务

五、常见疑问

1. 关闭 wp-cron 会影响网站功能吗?

不会。

只是不再由 “访问页面” 触发,改由系统定时触发,定时发文、备份、清理缓存等都正常工作。

2. 会不会和你之前的 Nginx 拦截规则冲突?

不会。

wp-cron 是本站自己发起的合法请求,不在拦截名单里,完全不受影响。

3. 低配服务器适合这样改吗?

非常适合

这是低配服务器优化 WordPress 最实用、最立竿见影的方法之一。


总结

WordPress 默认的 wp-cron 本质上是 “将就用” 的方案,流量一上来就暴露缺点。

关掉它,改用 Linux 系统级定时任务,网站更流畅、服务器更轻松、日志更干净,属于花一分钟就能显著提升体验的优化。

如果你也觉得网站偶尔莫名卡顿、日志一堆 wp-cron,不妨照着设置一次,用完基本都不想改回去。

本文首发于 58Linux技术博客,专注Ubuntu桌面使用、Linux服务器运维与网站搭建实战。

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress