El nombre viene del griego chronos, el tiempo. En un servidor Linux, el demonio cron lee unas tablas de tareas y lanza cada comando en el momento previsto: una copia de seguridad cada noche, la renovación de un certificado de Let’s Encrypt, la limpieza de archivos temporales. WordPress necesita el mismo servicio, pero no puede contar con acceso al cron del sistema, que algunos hostings no ofrecen. Por eso tiene su propio mecanismo, WP-Cron.
La sintaxis de una crontab
Cada línea empieza por cinco campos: minuto (0 a 59), hora (0 a 23), día del mes (1 a 31), mes (1 a 12) y día de la semana (0 a 7, donde 0 y 7 son el domingo), seguidos del comando. Un asterisco significa «cada», y */15 en el campo de los minutos lanza la tarea en los minutos 0, 15, 30 y 45.
*/15 * * * * comando-cada-15-minutos
0 3 * * * comando-cada-noche-a-las-3
Cómo funciona WP-Cron
Según la documentación de WordPress, WP-Cron revisa en cada carga de página la lista de tareas programadas y ejecuta las que tocan. Los intervalos que trae por defecto son hourly, twicedaily, daily y weekly; los plugins añaden otros. Este funcionamiento tiene dos consecuencias. Si nadie visita el sitio, no se ejecuta nada: una tarea prevista a las 14:00 puede esperar hasta las 17:00, como señala la documentación. No se pierde, eso sí: se lanza en la siguiente visita. Al contrario, en un sitio con mucho tráfico, la comprobación se hace sin parar.

Afecta a la publicación de las entradas programadas, a las comprobaciones y actualizaciones automáticas, a las copias de seguridad de los plugins, al envío de boletines o a los informes de seguridad.
Pasar al cron del sistema
La solución que recomienda la documentación es desactivar el disparo por visitas en wp-config.php:
define( 'DISABLE_WP_CRON', true );
y después encargar el lanzamiento al cron del servidor, con una petición a wp-cron.php o, si el proveedor ofrece WP-CLI, con un comando que ejecuta todas las tareas pendientes evitando ejecuciones solapadas:
*/5 * * * * cd /ruta/del/sitio && wp cron event run --due-now --quiet
En un alojamiento compartido, el panel suele tener un apartado «Tareas cron» para añadir esta línea sin terminal.
Para WordPress
- Mantén un intervalo razonable, de 5 a 15 minutos: una ejecución cada minuto carga sin necesidad un servidor pequeño.
- Comprueba que la tarea del sistema funciona antes de olvidarte: una vez definido DISABLE_WP_CRON, no se ejecuta nada si la línea de crontab es incorrecta.
wp cron event listmuestra los próximos vencimientos y revela las tareas atrasadas. - Cuidado con las copias: en un entorno de staging, las tareas programadas pueden enviar correos a clientes reales o sincronizar datos externos. Desactívalas o neutraliza los envíos.
- Las copias de seguridad programadas por un plugin dependen de WP-Cron: comprueba que se hacen de verdad, para cumplir tu estrategia de copias de seguridad.
Errores frecuentes
Una tarea desconocida en la lista de eventos programados merece un examen: algunos códigos maliciosos se reinstalan mediante una tarea programada después de cada limpieza.