Error cURL 28
Solución de errores en la Salud del Sitio y API REST en WordPress: El problema del bucle local (Loopback) y cómo solucionarlo
Si has visto advertencias en el panel de WordPress como:
"La API REST encontró un error de rendimiento"
"Tu sitio no pudo completar la solicitud de bucle de retorno (Loopback)"
"Acciones vencidas pendientes (Past-due actions found)" en WooCommerce o Action Scheduler.
No estás solo. En este artículo te explicamos técnicamente por qué ocurren estos fallos en entornos de hosting compartido y cómo nuestro plugin exclusivo, Hosting Local cURL Fix (Strict Loopback), los resuelve de forma inmediata y automática sin comprometer la seguridad.
🚨 El Problema: El "bloqueo" de las llamadas internas
Para funcionar correctamente, WordPress necesita comunicarse constantemente consigo mismo en segundo plano. Cuando el sistema realiza tareas automatizadas (como publicar una entrada programada, validar la seguridad en "Salud del Sitio" o procesar colas de WooCommerce), ejecuta una petición HTTP interna dirigida a su propio dominio (ej. https://tusitio.com/wp-cron.php).
El problema surge en la ruta que toman estas peticiones:
- Resolución Externa: Por defecto, el servidor web pregunta a los DNS públicos por la dirección IP de tu dominio.
- Tráfico de salida y reentrada: El servidor intenta enviar la petición "hacia afuera" (a internet) para volver a entrar inmediatamente al mismo servidor a través de la IP pública.
- Bloqueo por Firewall: Los sistemas de seguridad de red del hosting (como las reglas de mitigación DDoS o firewalls del servidor) detectan esta ráfaga de tráfico interno repetitivo como un comportamiento sospechoso o un bucle infinito, bloqueando la conexión.
Resultado: Las llamadas fallan por Timeout (tiempo de espera agotado), el Cron de WordPress se atasca, WooCommerce acumula tareas pendientes y la API REST queda inhabilitada.
⚡ La Solución: ¿Qué hace "Hosting Local cURL Fix"?
En lugar de modificar reglas complejas en el firewall del servidor que podrían debilitar la seguridad general, nuestro plugin Hosting Local cURL Fix intercepta la comunicación de WordPress en su punto más bajo (los sockets nativos de cURL de PHP).
1. Enrutamiento Estricto al Loopback con Auto-Recuperación
El plugin le indica a cURL de forma estricta que, cada vez que WordPress intente comunicarse con su propio dominio, no consulte a los DNS públicos ni envíe tráfico fuera del servidor. En su lugar, el tráfico se enruta directamente y de forma privada a través de la dirección interna 127.0.0.1 (localhost).
Y aquí está la parte clave: el plugin valida por sí mismo que esa IP realmente funcione. Si tu servidor rechaza 127.0.0.1 (algo habitual en ciertos entornos compartidos), el plugin no se detiene ni te pide configurar nada: prueba automáticamente las direcciones internas del segmento 10.100.0.0/16 en orden y usa la primera que supere la validación de salud de WordPress. Solo si todas esas IPs fallan, habilita en el panel un campo para introducir una dirección manualmente (recomendando ese mismo rango).
En todos los casos, el tráfico nunca abandona la máquina local, evitando por completo cualquier firewall de red externa.
2. Red de Seguridad y Control de Backlogs
El estancamiento del tráfico de retorno provoca que las colas de tareas programadas (WP-Cron y Action Scheduler) se saturen. Para solucionarlo de manera inteligente y ligera, el plugin incluye un sistema híbrido:
- Monitoreo en Tiempo Real: El panel del plugin escanea de forma pasiva cuántas tareas programadas están acumuladas y vencidas.
- Ejecución Manual Contextual: Solo si detecta un atasco real (un backlog de más de 5 tareas pendientes), habilitará un botón para que el usuario pueda forzar la ejecución manual de las tareas pendientes de golpe.
- Vigía Diario de Respaldo (opcional): El plugin puede programar una única revisión automática diaria de bajo impacto (a las 23:55 de la noche). Está desactivada por defecto y se activa con un clic desde el panel. Si durante el día el administrador no usó el botón manual, el vigía se encarga de procesar y dejar la cola en cero para evitar retrasos acumulados.
🛠️ Cómo instalar y usar el plugin
El plugin ha sido diseñado bajo la filosofía Zero-Config (sin bases de datos ni configuraciones complejas para el cliente).
- Descarga e instala: Sube la carpeta del plugin a tu directorio
/wp-content/plugins/y actívalo desde el panel de administración. - Verificación inmediata: Dirígete en tu panel a Ajustes → Local cURL Fix. Verás la IP de loopback en uso, el resultado de la validación de salud de WordPress y los contadores de tareas pendientes.
- Prueba de enlace: Haz clic en "Probar Enlace Local". El sistema ejecutará un test en tiempo real que confirmará la conexión a través de la interfaz privada
127.0.0.1(o la IP interna que el plugin haya detectado) indicándote el tiempo de respuesta en milisegundos.
🧠 Preguntas Frecuentes (FAQ)
¿Desactivar la verificación SSL local es peligroso?
No. El plugin solo desactiva la verificación de certificados SSL para las peticiones de retorno locales dirigidas al propio dominio del sitio que se resuelven internamente en la IP 127.0.0.1. El tráfico de cara a tus usuarios o las llamadas a APIs externas siguen estando protegidas con el máximo nivel de seguridad SSL de manera habitual.
¿Funciona si mi sitio utiliza Cloudflare?
Sí, perfectamente. Dado que el enrutamiento se modifica a nivel de sistema dentro del propio servidor para la comunicación interna, no interfiere en absoluto con la configuración DNS externa, proxies o CDN de Cloudflare que protegen el tráfico de cara a tus visitas.
¿Necesito configurar una IP local manualmente?
Normalmente no. El plugin funciona solo: usa 127.0.0.1 y, si ese valor falla la validación de salud, prueba automáticamente las IPs internas del segmento 10.100.0.0/16 en orden hasta encontrar una que funcione. La opción manual solo aparece cuando todas esas IPs fallan. En ese caso, desde el panel (Ajustes → Local cURL Fix → "Dirección de Bucle de Retorno") puedes escribir una IP dentro del rango 10.100.0.0/16 y guardarla. También puedes forzar una IP desde tu archivo wp-config.php:
define('HLCF_LOOPBACK_IP', '10.100.6.250');Nota: la IP debe ser 127.0.0.1 o estar dentro de 10.100.0.0/16; el plugin rechaza cualquier valor fuera de ese rango.
define('HLCF_LOOPBACK_IP', '255.255.255.255');