Geschätzte Lesezeit: 9 minutes
For months I had cURL error 28 in my WordPress instance and with it the problem that I had loading times of 30 seconds to one minute for calling up a single page in the entire dashboard or wp-admin area.
I really tried everything and then ran out of time for a long time and at some point also lost interest, since the direct calls to the website via caching plugins were still fast and therefore not noticeable to the visitor. By chance I came across the solution.
I had the error for a lot of POST calls of cURL error 28: Resolving timed out after 3000 milliseconds The milliseconds were of course different for some calls. Some plugins showed me the problem, but also internal WordPress functions. This is well illustrated in the picture below.
Due to cURL error 28, I no longer had background updates. That means not a single cron job was running and therefore no updates were searched for, and plugins stopped sending emails. Only if I started the functions manually by browsing in wp-admin.
I also addressed the problem with plugin developers, among others, because their plugins occasionally caused exactly the same error. But I couldn't be helped there either. On a Linux server, the DNS settings should be checked first.
Various free WordPress plugins are used for checking. The most important plugin is the one shown in the picture named Query Monitor with which you can debug your website very well. You navigate through your website and especially in the wp-admin area and under HTTP API calls you can see which calls were made and how long they lasted. Errors like cURL error 28 can also be easily recognized.
Also the plugin Health Check & Troubleshooting with which critical errors or recommended improvements are indicated, is helpful. Among other things, I was shown that my REST API has an error.
With these two plugins, known or unknown problems can be identified.
Solution for cURL error 28
The solution to the problem in my case is so incredible that I still can't believe it. It was caused by my router. I have a slightly older FRITZ!Box in use. After entering new dial-in data, I noticed that the WLAN now had random disconnects. At Christmas, I wanted to connect an LED light chain controller via WiFi, but it could not be found. This worked very well in other WLAN networks.
Years ago I had a similar case with the same FRITZ!Box. After a certain amount of time, the FRITZ!Box seems to be overloaded with wireless devices or to blow itself up with updates. So I reset everything to the factory settings once and reconfigured everything manually. No sooner said than done and suddenly I was amazed that I was able to browse so quickly in wp-admin again.
Another indicator that the FRITZ!Box is not working properly is ERR_NO_MEMORY error. This occurs when you want to open the FRITZ!Box user interface. You can fix this by turning off the power briefly, but then you already know that something is wrong.
It was really only due to the FRITZ!Box, whose configuration was apparently incorrect. The server is connected directly to the FRITZ!Box. There were no problems in any other Docker container. Every service ran flawlessly, whether in Docker or outside. Only WordPress no longer wanted to function properly. The Linux system itself didn't look like a bug either. To come to that is probably rather impossible.
I hope I can help some people who also have the said cURL error 28. There is no guarantee that this is the reason, as it could be anything from incorrect DNS settings on the server to internal WordPress files. As a last step, I would definitely recommend this to you. It is also worth trying it with other routers than a FRITZ!Box.
Before resetting your router, make a backup file just in case, and preferably photos of the most important settings. In a case like mine, you should completely recreate the configuration and not load a backup, otherwise you will load the errors again.
Interested but lacking time or knowledge?
No problem. Contact me and we will discuss your requirements. No matter whether for business or private belongs.