Guía de tecnologías

Cómo solucionar el error cURL 28 en WordPress: tiempo de conexión agotado

7 min read WordPress Actualizado 12 Sep 2025
Solución al error cURL 28 en WordPress
Solución al error cURL 28 en WordPress

Importante: realiza cambios primero en un entorno de staging o copia de seguridad y documenta cada paso antes de tocar producción.

Introducción

Aunque WordPress es un gestor de contenidos fiable, a veces aparecen errores como el “cURL error 28: Connection timed out” que interrumpen peticiones externas (API, webhooks, llamadas a servicios externos). Este artículo traduce y amplía las soluciones más eficaces: pasos de comprobación, soluciones rápidas y un playbook de resolución para administradores y desarrolladores.

Definición rápida: cURL (Client URL) es una biblioteca que hace peticiones HTTP/HTTPS desde el servidor. El error 28 indica que la petición tardó más del tiempo permitido (timeout) y fue abortada.

Variantes de intención (SEO)

  • error cURL 28
  • cURL timeout WordPress
  • WordPress cURL connection timed out
  • solucionar cURL 28
  • peticiones HTTP fallan WordPress

Causas más comunes

  • Interferencia de un firewall o plugin de seguridad de WordPress.
  • Servidor DNS defectuoso o configuración DNS local incorrecta.
  • Tiempo de espera (timeout) del servidor demasiado bajo impuesto por el hosting.
  • Problemas con la versión de cURL, PHP o OpenSSL en el servidor.
  • Certificado SSL mal configurado o caducado.

Antes de los arreglos avanzados: comprobaciones preliminares

  • Confirma que tu servidor usa versiones actualizadas: cURL, PHP y OpenSSL. (Pide al hosting o compruébalo en la info del servidor).
  • Intenta reproducir el problema en otro navegador y desde otra red (por ejemplo, datos móviles) para descartar caché o bloqueos locales.
  • Haz una copia de seguridad de la web o trabaja en staging.

Pasos recomendados para resolver el error cURL 28

1) Desactiva temporalmente el firewall de WordPress / plugins de seguridad

  1. Inicia sesión en el administrador de WordPress. Captura: Desactivar plugin de seguridad en WordPress
  2. Ve a Plugins, localiza el plugin de seguridad o firewall y haz clic en Desactivar.

Después, revisa la página de Salud del Sitio (Site Health) para ver si el error desaparece. Si se arregla, revisa los registros del firewall para identificar qué peticiones fueron bloqueadas y ajusta reglas o excepciones específicas en lugar de dejarlo desactivado.

2) Desactiva todos los plugins (debug por eliminación)

  1. Accede al admin de WordPress.
  2. Ve a PluginsPlugins instalados.
  3. Marca la casilla superior para seleccionar todos los plugins. GIF: Desactivar todos los plugins a la vez
  4. Elige Desactivar en el menú desplegable.

Si el error desaparece, reactiva los plugins uno a uno hasta identificar el que causa el bloqueo. Nota: algunos plugins usan peticiones externas periódicas (cron, webhooks) y pueden generar timeouts.

3) Cambia el servidor DNS a uno público (ej. Google DNS)

  1. Pulsa Windows + R para abrir Ejecutar. Captura: comando ncpa.cpl para redes en Windows
  2. Escribe ncpa.cpl y haz clic en Aceptar para abrir Conexiones de red.
  3. Haz clic derecho en la conexión activa y selecciona Propiedades. Propiedades de conexión de red
  4. Selecciona Protocolo de Internet versión 4 (TCP/IPv4) y haz clic en Propiedades. Propiedades TCP/IPv4
  5. Marca Usar las siguientes direcciones de servidor DNS.
  6. Introduce 8.8.8.8 como servidor DNS preferido y 8.8.4.4 como alternativo. Configurar servidores DNS a Google DNS
  7. Haz clic en Aceptar y cierra.

Cambiar a DNS público puede resolver errores de resolución que impiden contactar servicios externos.

4) Borra la caché del navegador

  1. Abre tu navegador preferido (ej. Google Chrome). Chrome settings para limpiar datos de navegación
  2. Abre ConfiguraciónPrivacidad y seguridadBorrar datos de navegación. Borrar datos de navegación - Chrome
  3. Elige Todo el tiempo y marca Cookies y otros datos de sitios y Imágenes y archivos en caché. Selector de tiempo y tipos de datos a borrar
  4. Haz clic en Borrar datos.

Esto descarta respuestas de caché que podrían ocultar el estado real de las peticiones.

5) Comprueba la configuración SSL/TLS

  1. Usa la herramienta de prueba de SSL de Qualys Labs. Interfaz de prueba SSL Labs
  2. Inserta la URL y haz clic en Submit.

La prueba detecta certificados caducados, cadenas de certificados incompletas y configuraciones inseguras. Si hay fallos, reinstala el certificado o solicita soporte al proveedor del certificado.

6) Revisa límites del servidor y versión de cURL

  1. En el Dashboard de WordPress, ve a HerramientasSalud del SitioInformación. Info de salud del sitio y servidor
  2. Abre la sección Servidor y revisa límites como max_execution_time, memory_limit y la versión de cURL/PHP.

Si el timeout está bajo (por ejemplo, 5–10s) solicita al hosting aumentarlo o revisar reglas del firewall a nivel de servidor.

Playbook de resolución (SOP) — Resumen práctico

  1. Comprobar Site Health → recoger versiones de cURL/PHP/OpenSSL.
  2. Desactivar temporariamente firewall/plugins de seguridad.
  3. Desactivar todos los plugins y reactivar progresivamente.
  4. Cambiar DNS a uno público y probar desde otra red.
  5. Ejecutar prueba SSL (Qualys). Corregir certificados si es necesario.
  6. Revisar logs del servidor (error_log, access_log) y registrar timestamps de fallos.
  7. Si falla: contactar al hosting con evidencia (logs + pasos realizados).

Diagrama de decisión (mermaid)

flowchart TD
  A[Comienza: error cURL 28] --> B{¿Reproducible en otro navegador/red?}
  B -- No --> C[Limpiar caché y probar otra red]
  B -- Sí --> D{¿Firewall/plugins activos?}
  D -- Sí --> E[Desactivar firewall/plugins y testear]
  D -- No --> F{¿DNS local incorrecto?}
  F -- Sí --> G[Cambiar a DNS público]
  F -- No --> H{¿SSL OK?}
  H -- No --> I[Reinstalar/validar certificado SSL]
  H -- Sí --> J[Revisar límites del servidor y versión cURL/PHP]
  J --> K{¿Solucionado?}
  K -- Sí --> L[Documentar y cerrar ticket]
  K -- No --> M[Contactar hosting con logs y pasos]

Checklists por rol

  • Administrador de sistema

    • Revisar max_execution_time, memory_limit.
    • Ver logs del servidor y reglas de firewall a nivel kernel o WAF.
    • Verificar versiones de cURL/OpenSSL/PHP.
  • Desarrollador / DevOps

    • Reproducir petición con curl desde el servidor: curl -v https://api.ejemplo.com.
    • Añadir logs a la aplicación para medir latencia y retries.
    • Implementar backoffs/reintentos en peticiones críticas.
  • Soporte / Contenido

    • Confirmar si integraciones de terceros están operativas (status pages).
    • Comunicar usuarios afectados y ventana de mantenimiento.

Mini-runbook de incidentes (si ocurre en producción)

  1. Marcar incidente y comunicar a stakeholders.
  2. Cambiar a modo mantenimiento si crítico.
  3. Seguir el Playbook (SOP) paso a paso y documentar resultados.
  4. Si no resuelve en 60–90 minutos, escalar al proveedor de hosting.
  5. Una vez resuelto, crear postmortem con causa raíz y mitigación.

Casos de prueba / criterios de aceptación

  • Test 1: Reintentar la misma petición HTTP desde el servidor tras cambiar DNS → debe responder en menos del timeout configurado.
  • Test 2: Desactivar plugins → la petición externa no debe fallar.
  • Test 3: Reinstalar certificado SSL → la prueba SSL Labs debe mostrar cadena completa sin errores.

Criterio de aceptación final: la llamada API crítica responde consistentemente bajo el tiempo límite y las métricas de latencia son estables.

Cuándo estas soluciones fallan (contraejemplos)

  • Si el servicio externo está caído o su latencia es alta, ningún cambio local solucionará el problema.
  • Si hay throttling o rate-limiting por parte de la API externa, debes implementar reintentos con backoff y caching.
  • Si el proveedor de hosting aplica reglas de bloqueo a nivel de red (por ejemplo, IPS/IDS), solo el hosting puede resolverlo.

Buenas prácticas para prevenir futuros timeouts

  • Implementa reintentos con backoff exponencial y timeouts razonables en llamadas salientes.
  • Usa caché para respuestas que no cambian frecuentemente.
  • Monitoriza SLIs: tasa de errores y latencia de peticiones externas.
  • Mantén actualizado cURL/PHP/OpenSSL y revisa certificados periódicamente.

Preguntas frecuentes (FAQ)

¿Qué es exactamente el error cURL 28?

Es un timeout de la biblioteca cURL: la petición HTTP no recibió respuesta dentro del tiempo configurado.

¿Puedo aumentar el timeout desde WordPress?

Algunas funciones o plugins permiten ajustar timeouts. Es una solución temporal; si la petición es lenta por la API externa, mejor abordar la causa.

¿Cambiar el DNS ayuda siempre?

No siempre. Ayuda si el problema es resolución de nombres o un DNS local defectuoso; no ayudará si la API externa está caída.

¿Debo reinstalar el certificado SSL si Qualys muestra fallos?

Sí. Corrige la cadena de certificados y problemas de cifrado antes de intentar otras soluciones.

Resumen final

  • El error cURL 28 indica un timeout; empieza por desactivar firewalls/plugins y prueba en otra red.
  • Cambiar a DNS público, limpiar caché y validar SSL son pasos rápidos y frecuentes que solucionan el problema.
  • Si nada funciona, revisa límites del servidor (tiempos de ejecución, versiones) y contacta a tu proveedor de hosting con logs y acciones realizadas.

Si quieres, puedo generar un checklist imprimible (tabla) con los pasos priorizados o un pequeño script curl para diagnosticar desde tu servidor.

Autor
Edición

Materiales similares

Fondos distintos por pantalla en Android
Android Personalización

Fondos distintos por pantalla en Android

Contadores de rendimiento para Apache Tomcat
Monitorización

Contadores de rendimiento para Apache Tomcat

Protégete del clickjacking y doble clickjacking
Seguridad web

Protégete del clickjacking y doble clickjacking

Fondos distintos por pantalla en Android
Android

Fondos distintos por pantalla en Android

Eliminar tus datos de data brokers
Privacidad

Eliminar tus datos de data brokers

Fondo distinto por cada pantalla en Android
Android

Fondo distinto por cada pantalla en Android