Rendimiento y monitorización

Sustituir WP-Cron por una tarea programada del hosting

Revisado el 4 min de lectura wordpress rendimiento cron

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

¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.