
Do you see in your WordPress dashboard the message "cURL error 28: Connection timed out"? This can be quite frustrating. You often notice it because scheduled posts don't appear, plugins stop updating or a link to an external service (for example, a payment system, newsletter or API) suddenly stops working.
Behind the scenes, this error means that WordPress is trying to connect to another server, but is getting a late response or no response at all. For this, WordPress uses cURL, a technique in PHP that is responsible for this type of request. Once the response fails, cURL quits with error code 28.
To you as an administrator, this may feel vague or technical, but the consequences are obvious: a site that doesn't quite do what you expect. The good news? Often the cause can be traced back to a few common issues such as security settings that are too strict, a conflict between plugins or a slow external service. And you can fix that step by step.
What is cURL and what goes wrong?
To understand where error message 28 comes from, you need to know what cURL is. Simply put, cURL is a piece of software in PHP that WordPress uses to communicate with the outside world. It sends requests to other servers and waits for a response.
This happens more often than you might think. For example, when:
- WordPress checks for updates to your themes and plugins
- your site exchanges data with an external service, such as a payment system, accounting or newsletter software
- the REST API is addressed by the block editor or by a plugin that requests data
Normally this runs smoothly: cURL sends a query, and the other server replies. But if that answer arrives late or doesn't arrive at all, cURL quits. Then the message appears: "cURL error 28: connection timed out."
Why does this happen?
A timeout can have several causes. The most common are:
- Security layers: a firewall plugin or server configuration blocks legitimate requests.
- Conflicts: a plugin or theme interferes with the REST API.
- Slow external services: an API does not respond within the standard 5 seconds.
- DNS problems: domain names are looked up too slowly.
- SSL errors: expired or incorrectly installed certificates.
- Server restrictions: too few PHP resources or an outdated cURL/SSL version.
In short: cURL tries to connect, but gets a late response or no response at all.
How to solve cURL error 28?
How to solve cURL error 28?
Work from top to bottom. Test after each step in Tools > Site Health Whether the notification is gone.
1. Temporarily disable security plugin
Why: Firewall rules sometimes block legitimate outbound requests.
Here's how to do it: Plugins > Installed plugins and temporarily disable your security plugin. If you use Wordfence or iThemes, set the firewall to learning or disable.
What next: renew Site Health. If the error is gone, adjust the rules or whitelist the affected requests and turn the plugin back on.
2. Exclude plugin or theme conflict
Why: A plugin or theme can interfere with the REST API.
Here's how to do it:
- Deactivate all plugins in Plugins and then activate them one by one.
- When in doubt about the theme, switch briefly to Twenty Twenty-Four via View > Themes.
What's next: once the error disappears, you've found the culprit. Find an update, alternative or contact the creator.
3. Temporarily increase timeout
Why: Some external APIs respond slower than the standard 5 seconds.
Here's how to do it: add with Code Snippets or in your child theme functions.php
this rule:
add_filter( 'http_request_timeout', function() { return 60; });
What next: test again. If it remains necessary to use 60, also investigate the cause with the external service.
4. Check DNS
Why: Slow name resolution can cause requests to crash.
Here's how to do it: write down the target URL from the error message and ask your hosting party to check and optimize DNS resolution.
What next: again Site Health check.
5. Checking SSL certificates
Why: Expired or misplaced certificates block HTTPS traffic.
Here's how to do it: test your domain with an SSL checker such as SSL Labs. Also check intermediate certificates.
What next: restore or renew the certificate and test again.
6. Review server stack and versions.
Why: Outdated PHP, cURL or OpenSSL give connection errors more often.
This is how you do it: go into Tools > Site Health > Info to Server and WordPress constants. Check PHP version, cURL version and OpenSSL.
What next: update through your hosting panel or ask your host for an update.
7. Additional insight via logging
Why: To see exactly which request fails.
Here's how to do it: enable temporary logging wp-config.php
in:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
Next View /wp-content/debug.log
on lines with http_request_failed
or cURL error 28
. Then turn debug off again.
Need help with cURL error 28?
A cURL error 28 seems technical and complicated at first, but usually the cause can be reduced to a few logical steps: security, plugins, timeouts, DNS, SSL or server configuration. By systematically eliminating these, you often have the problem solved faster than you think.
Still can't figure it out, or do you want these kinds of errors to be permanently prevented? At Surver, we make sure your WordPress environment is technically tight and keeps running optimally. With our WordPress optimization and webmaster service we not only solve problems, but also make your site faster, more stable and secure.