Rendimiento y monitorización
Sustituir WP-Cron por una tarea programada del hosting
WordPress utiliza WP-Cron para ejecutar eventos pendientes, como publicaciones programadas y tareas de plugins. De forma habitual, las visitas ayudan a disparar su ejecución. Esto simplifica la instalación, pero una web con poco tráfico puede ejecutar tareas tarde y una web con mucha actividad puede preferir un disparador de sistema.
No se trata de eliminar las tareas, sino de cambiar cómo se inician. Desactivar WP-Cron sin un sustituto operativo puede dejar pendientes publicaciones, correos u operaciones de la tienda.
Opción con Softaculous
En WordPress Manager by Softaculous, localiza la instalación correcta y la opción WordPress Cron (wp-cron.php). Softaculous ofrece desactivar el disparador de visitas y sustituirlo por una tarea del sistema.
Después revisa Trabajos de cron en cPanel: comprueba que se haya creado, qué instalación ejecuta y con qué frecuencia. La modalidad documentada por Softaculous puede ser horaria; no presupongas que sirve para tareas que deben ejecutarse cada pocos minutos. No añadas otra tarea equivalente si ya existe una.
Consulta el gestor oficial de Softaculous para las funciones de tu versión y prueba un evento programado antes de dar el cambio por terminado.
Configuración manual
Conserva una copia de wp-config.php y revisa las tareas existentes. Desde Trabajos de cron de cPanel, prepara una tarea con la frecuencia que necesite la aplicación. Cada cinco minutos puede ser un punto de partida, pero no garantiza precisión al segundo ni que una tarea larga haya terminado antes de la siguiente.
Si utilizas una petición HTTPS, prueba primero este comando con el dominio y la ruta reales de WordPress:
curl --fail --silent --show-error --max-time 60 --output /dev/null 'https://tudominio.com/wp-cron.php?doing_wp_cron'
Comprueba que no responda una redirección, página de login, desafío del firewall o copia de caché. El comando no sigue redirecciones: utiliza la URL final correcta. El límite de espera del cliente no demuestra que el trabajo del servidor se haya detenido.
Si WordPress está en un subdirectorio, inclúyelo. En el formulario de cPanel, los campos de fecha y hora van separados del comando; no pegues allí una línea completa de crontab si solo solicita el comando.
Una vez que el sustituto esté probado y programado, añade en wp-config.php, antes de cargar WordPress:
define('DISABLE_WP_CRON', true);
Si la constante existe, cambia su valor sin duplicarla. El procedimiento de WordPress explica este cambio de disparador.
Comprobar tareas y evitar duplicados
Verifica una publicación programada de prueba y los eventos importantes de tus plugins. Revisa tareas atrasadas y errores. Una respuesta HTTP correcta no garantiza que todos los callbacks hayan terminado sin fallos.
Si prefieres ejecutar eventos mediante WP-CLI, comprueba ruta, versión PHP, contexto del sitio y política de concurrencia con el desarrollador. No mantengas al mismo tiempo varias tareas equivalentes de Softaculous, HTTP y WP-CLI.
Si algo falla, restaura el disparador anterior y retira o pausa el sustituto que no funciona. No dejes DISABLE_WP_CRON activo mientras investigas sin otra vía que ejecute los eventos. En multisitio revisa las necesidades de cada sitio de la red.
También te puede ayudar
- Acelerar y optimizar WordPress y WooCommerce paso a paso Optimiza WordPress y WooCommerce paso a paso revisando PHP, cron, LiteSpeed Cache, imágenes, base de...
- Consultas SQL lentas de tipo "SELECT SQL_CALC_FOUND_ROWS" Diagnostica consultas lentas de WordPress con SQL_CALC_FOUND_ROWS, identifica su origen y valida con...
- Consultas SQL para limpiar datos huérfanos y purgar la base de datos de WordPress Limpia datos huérfanos, revisiones y transitorios de WordPress con consultas verificadas, copia recu...
- Cómo cargar el script de reCAPTCHA con Contact Form 7 solo donde sea necesario Evalúa el coste de reCAPTCHA en Contact Form 7 y limita su carga solo tras identificar todos los for...
¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.