WP Crontrol repeatedly reported “cURL error 28: Operation timed out after 3000 milliseconds with 0 bytes received.” Query Monitor was installed to dig deeper, and it showed the same failing request in detail: a POST to wp-cron.php, timing out at 3 seconds with zero bytes received. Because both tools were the ones surfacing the error, it was tempting to suspect the tools themselves — first WP Crontrol, then Query Monitor once it joined the investigation.
When the Diagnostic Tool Isn’t the Cause of What It Found
Field Note #283
⚡ Quick Fix (TL;DR)
The Culprit: Neither tool was responsible. Both were simply exposing the same underlying failure: WordPress trying to reach its own wp-cron.php over HTTP and timing out. WP Crontrol reported it because that's the request it triggers; Query Monitor reported it because that's the request it was watching.
The Fix: A server-level cron was set up to execute WordPress's cron file directly through PHP, bypassing the unreliable HTTP self-request entirely.
/usr/local/bin/php /home/username/public_html/yoursite.com/wp-cron.phpRather not untangle this yourself? Our Done-For-You team handles exactly this kind of thing, start to finish.
See DFY options → Was this helpful? Thanks for the feedback!
Tagged in :