{"id":16398,"date":"2025-09-15T16:19:17","date_gmt":"2025-09-15T14:19:17","guid":{"rendered":"https:\/\/surver.nl\/?post_type=kennisbank&#038;p=16398"},"modified":"2025-10-08T15:15:30","modified_gmt":"2025-10-08T13:15:30","slug":"solve-curl-error-28","status":"publish","type":"kennisbank","link":"https:\/\/surver.nl\/en\/kennisbank\/curl-error-28-oplossen\/","title":{"rendered":"Fix cURL error 28 connection timed out in WordPress"},"content":{"rendered":"<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/surver.nl\/wp-content\/uploads\/2025\/09\/e1aea889-d5c0-433b-94f4-bb62788e6f5a.png\" alt=\"\" class=\"wp-image-16985\" srcset=\"https:\/\/surver.nl\/wp-content\/uploads\/2025\/09\/e1aea889-d5c0-433b-94f4-bb62788e6f5a.png 1024w, https:\/\/surver.nl\/wp-content\/uploads\/2025\/09\/e1aea889-d5c0-433b-94f4-bb62788e6f5a-300x300.png 300w, https:\/\/surver.nl\/wp-content\/uploads\/2025\/09\/e1aea889-d5c0-433b-94f4-bb62788e6f5a-150x150.png 150w, https:\/\/surver.nl\/wp-content\/uploads\/2025\/09\/e1aea889-d5c0-433b-94f4-bb62788e6f5a-768x768.png 768w, https:\/\/surver.nl\/wp-content\/uploads\/2025\/09\/e1aea889-d5c0-433b-94f4-bb62788e6f5a-12x12.png 12w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Do you see in your WordPress dashboard the message <strong>\"cURL error 28: Connection timed out\"<\/strong>? 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.<\/p>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>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.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is cURL and what goes wrong?<\/h2>\n\n\n\n<p>To understand where error message 28 comes from, you need to know what <strong>cURL<\/strong> 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.<\/p>\n\n\n\n<p>This happens more often than you might think. For example, when:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>WordPress checks for updates to your themes and plugins<\/li>\n\n\n\n<li>your site exchanges data with an external service, such as a payment system, accounting or newsletter software<\/li>\n\n\n\n<li>the REST API is addressed by the block editor or by a plugin that requests data<\/li>\n<\/ul>\n\n\n\n<p>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: <strong>\"cURL error 28: connection timed out.\"<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why does this happen?<\/h2>\n\n\n\n<p>A timeout can have several causes. The most common are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Security layers<\/strong>: a firewall plugin or server configuration blocks legitimate requests.<\/li>\n\n\n\n<li><strong>Conflicts<\/strong>: a plugin or theme interferes with the REST API.<\/li>\n\n\n\n<li><strong>Slow external services<\/strong>: an API does not respond within the standard 5 seconds.<\/li>\n\n\n\n<li><strong>DNS problems<\/strong>: domain names are looked up too slowly.<\/li>\n\n\n\n<li><strong>SSL errors<\/strong>: expired or incorrectly installed certificates.<\/li>\n\n\n\n<li><strong>Server restrictions<\/strong>: too few PHP resources or an outdated cURL\/SSL version.<\/li>\n<\/ul>\n\n\n\n<p>In short: cURL tries to connect, but gets a late response or no response at all.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to solve cURL error 28?<\/h2>\n\n\n\n<p>How to solve cURL error 28?<\/p>\n\n\n\n<p>Work from top to bottom. Test after each step in <strong>Tools &gt; Site Health<\/strong> Whether the notification is gone.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Temporarily disable security plugin<\/h3>\n\n\n\n<p>Why: Firewall rules sometimes block legitimate outbound requests.<br>Here's how to do it: <strong>Plugins &gt; Installed plugins<\/strong> and temporarily disable your security plugin. If you use Wordfence or iThemes, set the firewall to learning or disable.<br>What next: renew <strong>Site Health<\/strong>. If the error is gone, adjust the rules or whitelist the affected requests and turn the plugin back on.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Exclude plugin or theme conflict<\/h3>\n\n\n\n<p>Why: A plugin or theme can interfere with the REST API.<br>Here's how to do it:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Deactivate all plugins in <strong>Plugins<\/strong> and then activate them one by one.<\/li>\n\n\n\n<li>When in doubt about the theme, switch briefly to <strong>Twenty Twenty-Four<\/strong> via <strong>View &gt; Themes<\/strong>.<br>What's next: once the error disappears, you've found the culprit. Find an update, alternative or contact the creator.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3. Temporarily increase timeout<\/h3>\n\n\n\n<p>Why: Some external APIs respond slower than the standard 5 seconds.<br>Here's how to do it: add with <strong>Code Snippets<\/strong> or in your child theme <code>functions.php<\/code> this rule:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_filter( 'http_request_timeout', function() { return 60; });\n<\/code><\/pre>\n\n\n\n<p>What next: test again. If it remains necessary to use 60, also investigate the cause with the external service.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Check DNS<\/h3>\n\n\n\n<p>Why: Slow name resolution can cause requests to crash.<br>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.<br>What next: again <strong>Site Health<\/strong> check.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Checking SSL certificates<\/h3>\n\n\n\n<p>Why: Expired or misplaced certificates block HTTPS traffic.<br>Here's how to do it: test your domain with an SSL checker such as SSL Labs. Also check intermediate certificates.<br>What next: restore or renew the certificate and test again.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6. Review server stack and versions.<\/h3>\n\n\n\n<p>Why: Outdated PHP, cURL or OpenSSL give connection errors more often.<br>This is how you do it: go into <strong>Tools &gt; Site Health &gt; Info<\/strong> to <strong>Server<\/strong> and <strong>WordPress constants<\/strong>. Check PHP version, cURL version and OpenSSL.<br>What next: update through your hosting panel or ask your host for an update.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">7. Additional insight via logging<\/h3>\n\n\n\n<p>Why: To see exactly which request fails.<br>Here's how to do it: enable temporary logging <code>wp-config.php<\/code> in:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>define('WP_DEBUG', true);\ndefine('WP_DEBUG_LOG', true);\n<\/code><\/pre>\n\n\n\n<p>Next View <code>\/wp-content\/debug.log<\/code> on lines with <code>http_request_failed<\/code> or <code>cURL error 28<\/code>. Then turn debug off again.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Need help with cURL error 28?<\/h2>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>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 <a href=\"https:\/\/surver.nl\/en\/services\/wordpress-optimization\/\">WordPress optimization<\/a> and webmaster service we not only solve problems, but also make your site faster, more stable and secure.<\/p>\n\n\n\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Zie je in je WordPress-dashboard de melding \u201ccURL error 28: Connection timed out\u201d? Dat kan behoorlijk frustrerend zijn. Vaak merk je het doordat geplande berichten niet verschijnen, plugins niet meer updaten of een koppeling met een externe dienst (bijvoorbeeld een betaalsysteem, nieuwsbrief of API) plotseling stopt met werken. Achter de schermen betekent deze fout dat [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":16985,"template":"","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}}},"kennisbank_categorieen":[62],"class_list":["post-16398","kennisbank","type-kennisbank","status-publish","has-post-thumbnail","hentry","kennisbank_categorieen-wordpress"],"acf":[],"_links":{"self":[{"href":"https:\/\/surver.nl\/en\/wp-json\/wp\/v2\/kennisbank\/16398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/surver.nl\/en\/wp-json\/wp\/v2\/kennisbank"}],"about":[{"href":"https:\/\/surver.nl\/en\/wp-json\/wp\/v2\/types\/kennisbank"}],"author":[{"embeddable":true,"href":"https:\/\/surver.nl\/en\/wp-json\/wp\/v2\/users\/2"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/surver.nl\/en\/wp-json\/wp\/v2\/media\/16985"}],"wp:attachment":[{"href":"https:\/\/surver.nl\/en\/wp-json\/wp\/v2\/media?parent=16398"}],"wp:term":[{"taxonomy":"kennisbank_categorieen","embeddable":true,"href":"https:\/\/surver.nl\/en\/wp-json\/wp\/v2\/kennisbank_categorieen?post=16398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}