Как исправить cURL error 28 (Connection timed out) в WordPress

Важно: дальнейшие шаги требуют доступа администратора WordPress и/или панели хостинга. Всегда делайте резервную копию перед изменением конфигураций.
Что такое cURL error 28 в WordPress?
cURL (Client URL) — библиотека и инструмент для отправки HTTP(S)-запросов. WordPress использует её для внутренних API-вызовов, проверок обновлений, связи с внешними сервисами и плагинами. Ошибка 28 обычно означает, что внешний запрос не успел выполниться за выделенное время — произошёл тайм-аут.
Коротко о причинах (наиболее вероятные):
- Брандмауэр WordPress или безопасность сервера блокирует исходящие запросы.
- Неправильный/медленный DNS или конфликтующий плагин.
- Низкий лимит времени выполнения (timeout) на сервере или ограничение хостинга.
- Проблемы с SSL-конфигурацией сервера.
Быстрая проверка перед глубоким дебагом
Выполните эти предварительные проверки, прежде чем переходить к сложным правкам:
- Убедитесь, что сервер использует актуальные версии cURL, PHP и OpenSSL (доступно в панели и в «Здоровье сайта»).
- Попробуйте другой браузер или приватное окно, чтобы исключить локальный кэш/расширения.
Основные шаги по устранению (пошагово)
1) Временно отключите брандмауэр/плагин безопасности
Если у вас установлен WordPress-брандмауэр (или плагин безопасности), деактивируйте его временно и проверьте, исчезла ли ошибка.
- Войдите в админ-панель WordPress.
- Перейдите в «Плагины», найдите плагин безопасности и нажмите «Отключить».
После этого откройте «Здоровье сайта» (Site Health) и проверьте, выполняются ли внешние запросы.
Важно: если проблема исчезла — изучите настройки брандмауэра, чтобы понять, какие именно API-запросы блокировались, вместо постоянного отключения защиты.
2) Отключите все плагины (поиск конфликтов)
Полезно для выявления проблемного плагина.
- Войдите в админ-панель WordPress.
- Перейдите в «Плагины» → «Установленные плагины».
- Отметьте все плагины и выберите «Отключить».
Если ошибка пропадает — включайте плагины по одному, чтобы найти виновника.
3) Смените DNS-сервер (локальная проверка на компьютере)
Иногда локальный DNS или провайдер блокирует/замедляет разрешение доменов.
- Нажмите Windows + R, чтобы открыть окно «Выполнить».
- Введите ncpa.cpl и нажмите «ОК», чтобы открыть «Сетевые подключения».
- Правой кнопкой по активному подключению → «Свойства».
- Выберите «IP версии 4 (TCP/IPv4)» → «Свойства».
- Выберите «Использовать следующие адреса DNS-серверов» и пропишите публичные DNS, например 8.8.8.8 и 8.8.4.4.
- Нажмите «ОК» для сохранения.
Примечание: это локальная проверка для вашей машины. Если сайт хостится на удалённом сервере, то DNS нужно менять/проверять на уровне сервера/провайдера.
4) Очистите кэш браузера
Если ошибка проявляется в админке только у вас, очистка кэша браузера поможет.
- Откройте браузер (в примере — Google Chrome).
- Нажмите меню → «Настройки».
- Перейдите в «Конфиденциальность и безопасность» → «Очистить данные просмотров».
- Выберите «За всё время», отметьте «Файлы cookie и другие данные сайтов» и «Кэшированные изображения и файлы», затем нажмите «Очистить данные».
5) Проверьте SSL-конфигурацию
Некорректный SSL может прерывать HTTPS-запросы.
- Откройте тест SSL (например, Qualys SSL Labs).
- Введите URL сайта и нажмите «Submit».
Инструмент покажет ошибки установки SSL — перепроверьте сертификат и цепочку доверия, при необходимости переустановите сертификат.
6) Проверьте лимиты сервера и версию cURL
- В админке WordPress: «Инструменты» → «Здоровье сайта» → вкладка «Информация».
- Разверните блок «Сервер» и проверьте версии PHP, cURL и OpenSSL, а также значения таймаутов и ограничений.
Если вы не видите явных проблем или не можете поменять параметры — обратитесь в техподдержку хостинга и опишите, какие проверки выполнили.
Дополнительные методики и проверки (экспертные советы)
Быстрая диагностика с помощью curl (на сервере или локально)
Пример команды для проверки доступности внешнего URL и максимального времени ожидания (пример):
curl -I --max-time 10 https://example.com
Если команда завершилась ошибкой таймаута, значит проблема на сетевом/серверном уровне.
Использование WP-CLI для проверки
Если у вас есть SSH-доступ:
wp cron event list --path=/path/to/your/site
wp option get siteurl --path=/path/to/your/site
WP-CLI поможет проверить планировщик задач и базовые параметры сайта без влияния плагинов/тем.
Когда предложенные исправления не помогают (когда это не сработает)
- Проблема в самом провайдере внешнего API (его серверы недоступны или медленные).
- Сетевые фильтры хостинга блокируют исходящие подключения (на уровне провайдера), и вы не можете изменить настройки.
- Аппаратные проблемы или временные перебои у хостера.
В этих случаях решение — связаться с провайдером внешнего API или сменить тариф/план хостинга.
Альтернативы и обходные пути
- Настройте собственный промежуточный прокси/кеш для внешних API-запросов (если это приемлемо по безопасности и политике API).
- Перенесите сайт на managed WordPress-хостинг с хорошей поддержкой исходящих подключений.
- Для критичных внешних интеграций — используйте асинхронную очередь (background jobs) и ретраи, чтобы не блокировать интерфейс при таймаутах.
Ролевые чек-листы (кто что должен проверить)
Владелец сайта / контент-менеджер:
- Сообщить точное время и действия, когда появилась ошибка.
- Предоставить доступы и логи ошибок техподдержке.
Администратор WordPress:
- Отключить плагины безопасности и проверить «Здоровье сайта».
- Выполнить последовательное включение плагинов для нахождения конфликтующего.
- Очистить кэш и проверить работу в другом браузере/устройстве.
Разработчик / DevOps:
- Проверить версии cURL/PHP/OpenSSL, системные логи и сетевые правила (iptables, firewall).
- Выполнить curl и traceroute к проблемному хосту.
- Проверить DNS-резолвинг с сервера (dig/host/nslookup).
Техподдержка хостинга:
- Проверить исходящие подключения и лимиты таймаутов.
- Проверить наличие сетевых или аппаратных проблем на узле.
Мини‑правила (мини‑методология) для быстрой отладки
- Проверить, воспроизводится ли ошибка на чистом (временном) сайте без плагинов/тем.
- Исключить локальные факторы: браузер, DNS, компьютер.
- Диагностировать сетевой путь: curl/traceroute/DNS.
- Проверить серверные лимиты и SSL.
- Если проблема остаётся — обратиться в техподдержку хостинга с собранными логами.
Критерии успешного исправления (тест-кейсы)
- «Здоровье сайта» не показывает ошибок исходящих запросов.
- Внешние API-вызовы отрабатывают без таймаута (проверено ручным curl и функционально в плагине).
- Ошибка в админке и у пользователей исчезла.
1‑строчный глоссарий
- cURL — библиотека/инструмент для HTTP-запросов.
- DNS — система преобразования доменов в IP.
- SSL/TLS — протоколы шифрования для HTTPS.
- Таймаут — время ожидания конца операции.
Заключение
cURL error 28 в WordPress чаще всего связан с блокированием исходящих запросов, проблемами DNS, некорректным SSL или низкими серверными лимитами. Начните с отключения брандмауэра и плагинов, очистки кэша и проверки DNS/SSL. Если локальные шаги не помогут — соберите логи и обратитесь в техподдержку хостинга.
Полезно знать: всегда делайте резервную копию и документируйте шаги, чтобы при необходимости быстро откатить изменения.
Если у вас остались вопросы или хотите, чтобы я составил пошаговый playbook для вашего конкретного сервера — дайте детали (вендор хостинга, версии PHP/cURL, какие плагины установлены).
Примечание: эта инструкция не меняет файлов сайта напрямую и ориентирована на стандартную отладку. Если вы используете кастомную инфраструктуру или строгие правила безопасности, следуйте политике вашей команды или консультируйтесь с администратором.
Похожие материалы

Мониторинг Apache Tomcat: счётчики и правила

Защита от clickjacking: руководство

Разные обои для каждого экрана Android

Удаление данных с сайтов брокеров

Разные обои для каждой домашней страницы Android
