Qué es el cron de WordPress (WP-Cron) y cómo optimizarlo

Tabla de contenidos

¡Muy buenas querido lector! Ya estoy de nuevo por aquí y, en esta ocasión, te hablo de una pieza de WordPress que casi nadie revisa y que puede estar frenando tu página web: el cron de WordPress, también conocido como WP-Cron.

¿Te ha pasado alguna vez que programas un post y no se publica a su hora? ¿O que una copia de seguridad programada no se ha hecho? Muy probablemente el culpable sea el WP-Cron.

En este artículo te explico qué es, por qué puede ralentizar tu página web, cómo comprobar si funciona, cómo desactivarlo y cómo sustituirlo por un cron real desde tu hosting. ¡Al lío!

Resumen rápido

  • El WP-Cron es el sistema de WordPress que ejecuta las tareas programadas: publicar posts, buscar actualizaciones, hacer copias de seguridad o enviar emails.
  • No funciona por tiempo, sino por visitas: se comprueba cada vez que alguien carga una página.
  • En páginas web con mucho tráfico consume recursos, y en páginas web con poco tráfico o mucha caché las tareas se retrasan o no se ejecutan.
  • La solución recomendada es desactivarlo con DISABLE_WP_CRON y crear un cron real en el hosting que se ejecute cada 5 o 15 minutos.

¿Qué es el cron de WordPress (WP-Cron)?

El WP-Cron es el sistema interno de WordPress que ejecuta tareas programadas de forma automática, gestionado a través del archivo wp-cron.php que se encuentra en la raíz de tu instalación.

Gracias a él, tu página web realiza por sí sola tareas como:

  • Publicar los posts programados a la hora indicada.
  • Buscar actualizaciones de WordPress, plugins y themes.
  • Lanzar las copias de seguridad programadas.
  • Enviar emails automáticos, newsletters o renovaciones de suscripciones.
  • Limpiar datos temporales, como transients caducados o la papelera.

Además, muchos plugins añaden sus propias tareas al cron. Cuantos más plugins tengas, más trabajo tendrá el WP-Cron.

Diferencia entre WP-Cron y un cron real del servidor

Un cron real del servidor se ejecuta por tiempo (por ejemplo, cada 5 minutos), pase lo que pase en la página web. El WP-Cron, en cambio, depende de que alguien visite tu página web para ponerse en marcha.

Característica WP-Cron nativo Cron real del servidor
Cuándo se ejecuta Cuando hay visitas A intervalos fijos
Precisión Baja: depende del tráfico Alta: a la hora configurada
Consumo con mucho tráfico Más comprobaciones de las necesarias Solo las ejecuciones configuradas
Con caché de página Puede no dispararse No le afecta
Configuración Ninguna, viene activo Requiere acceso al hosting
Servicio de Diseño web WordPress

Diseño tu página web en WordPress rápida y optimizada para SEO. Tu web pensada para convertir visitas en clientes

¿Por qué el WP-Cron puede ralentizar tu página web?

El WP-Cron comprueba si hay tareas pendientes en cada carga de página y, si las hay, lanza una petición adicional al servidor para ejecutarlas. Esto provoca dos problemas opuestos según tu tráfico.

En páginas web con mucho tráfico: consumo innecesario

Imagina una tienda online con miles de visitas a la hora. Cada visita obliga a WordPress a comprobar la lista de tareas, y si coinciden varias ejecuciones o hay tareas pesadas, el servidor se satura.

Ese consumo extra de CPU se nota en los tiempos de respuesta y, por tanto, en tu TTFB.

En páginas web con poco tráfico o mucha caché: tareas que no se ejecutan

Si pasan horas sin visitas, el WP-Cron no se activa y las tareas se quedan pendientes. Por eso a veces un post programado no se publica a su hora.

Y ojo con esto: si utilizas caché de página o una CDN que cachea el HTML, muchas visitas ni siquiera llegan a ejecutar PHP. Resultado: el WP-Cron se dispara muy de vez en cuando aunque tengas tráfico.

PD. Si tu WordPress muestra el aviso «Se ha perdido una programación» en posts programados, o la Salud del sitio te avisa de que los eventos programados se están retrasando, tienes un problema de cron.

¿Cómo saber si el WP-Cron de WordPress funciona?

Puedes comprobar si el WP-Cron funciona de tres formas: revisando la Salud del sitio de WordPress, con un plugin o mediante WP-CLI.

1. Con la Salud del sitio de WordPress

Ve a Herramientas > Salud del sitio. Si hay eventos programados que no se ejecutan a tiempo, WordPress te lo indicará como un problema recomendado o crítico.

2. Con un plugin

Plugins como WP-Cron Status Checker te indican cuándo fue la última ejecución correcta del cron y te avisan si deja de funcionar.

Comprobar cron de WordPress con WP CRON Status Checker

3. Con WP-CLI

Si tu hosting te da acceso SSH, WP-CLI es la forma más rápida y fiable de revisar el cron:

wp cron test  wp cron event list  wp cron event run --due-now

El primer comando comprueba que el sistema funciona, el segundo lista las tareas programadas y el tercero ejecuta en ese momento todas las tareas pendientes.

Servicio de Diseño web WordPress

Diseño tu página web en WordPress rápida y optimizada para SEO. Tu web pensada para convertir visitas en clientes

¿Cómo ver y gestionar las tareas del cron con un plugin?

Para ver, editar o eliminar las tareas del cron sin tocar código puedes utilizar un gestor de cron como Advanced Cron Manager o WP Crontrol.

Con este tipo de plugins podrás:

  • Ver todos los eventos programados y cuándo se ejecutará el siguiente.
  • Ejecutar una tarea manualmente para comprobar si falla.
  • Crear, modificar, pausar o eliminar tareas.
  • Detectar tareas huérfanas que dejaron plugins ya desinstalados y que siguen consumiendo recursos.

Manejar tareas de WordPress con Cron Manager

Como siempre digo, no borres tareas a lo loco. Antes de eliminar una, asegúrate de a qué plugin pertenece y de que ya no lo utilizas.

¿Qué hacer si el WP-Cron no funciona?

Si las tareas programadas no se ejecutan, lo más habitual es que no haya visitas suficientes, que la caché impida que se dispare o que el servidor bloquee el archivo wp-cron.php. Estos son los casos más comunes:

  • Posts programados que no se publican. Normalmente por falta de visitas o por la caché. La solución definitiva es el cron real del servidor.
  • Error «client denied by server configuration» en wp-cron.php. Algún plugin de seguridad, regla del .htaccess o firewall está bloqueando el archivo. Revisa esas reglas.
  • Error «End of script output before headers» en wp-cron.php. Suele indicar que alguna tarea agota el tiempo de ejecución o la memoria de PHP. Activa el modo WP_DEBUG para localizar el plugin culpable.
  • El servidor no puede hacer peticiones a sí mismo. Algunos hostings lo bloquean. En ese caso puedes añadir define( 'ALTERNATE_WP_CRON', true ); en el wp-config.php como solución temporal, aunque lo recomendable es pasar a un cron real.
Servicio de Diseño web WordPress

Diseño tu página web en WordPress rápida y optimizada para SEO. Tu web pensada para convertir visitas en clientes

¿Conviene desactivar el WP-Cron de WordPress?

Sí, conviene desactivar el WP-Cron nativo siempre que lo sustituyas por un cron real del servidor. Ganas precisión en las tareas y evitas comprobaciones innecesarias en cada visita.

Es especialmente recomendable en:

  • Tiendas online y sitios de membresía con mucho tráfico.
  • Páginas web con caché de página o CDN que cachea el HTML.
  • Páginas web con poco tráfico donde las tareas se retrasan.

Sin embargo, nunca desactives el WP-Cron sin crear después el cron del servidor. Si lo haces, dejarán de publicarse posts programados, de hacerse las copias de seguridad en WordPress y de buscarse actualizaciones.

Cómo desactivar el WP-Cron en wp-config.php

Accede a los archivos de tu página web desde el administrador de archivos del hosting o por FTP, abre el archivo wp-config.php de la carpeta raíz y añade esta línea justo antes del comentario «¡Eso es todo, deja de editar!» (That’s all, stop editing!):

define( 'DISABLE_WP_CRON', true );

Guarda el archivo. A partir de ese momento las visitas ya no dispararán el cron, así que toca configurarlo en el servidor.

PD. Si copias el código desde otra página web, comprueba que las comillas sean rectas (‘). Las comillas tipográficas (‘ ’) provocan un error fatal y tu página web dejará de cargar.

Cómo crear un cron real desde tu hosting

Un cron real del servidor ejecuta wp-cron.php a intervalos fijos, sin depender de las visitas. Para la mayoría de páginas web, un intervalo de 5 a 15 minutos es suficiente. En tiendas online con muchas tareas, mejor cada 5 minutos.

Crear el cron en cPanel

  1. Accede a tu cPanel y ve a Avanzado > Trabajos de cron.
  2. En Configuración común, elige cada cuánto quieres que se ejecute (por ejemplo, «Una vez cada cinco minutos»).
  3. En el campo Comando, pega esta línea sustituyendo tudominio.com por el dominio de tu página web:
wget -q -O - https://tudominio.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
  1. Pulsa en Añadir nuevo trabajo de cron.
  2. ¡Listo! La tarea aparecerá en el listado de trabajos de cron.

Pasos para configuración de cron en cPanel

Alternativa: ejecutar el cron con PHP o WP-CLI

Si tu hosting lo permite, ejecutar el cron directamente con PHP o WP-CLI es aún más eficiente, porque no genera una petición HTTP ni pasa por la caché o el firewall:

php /home/usuario/public_html/wp-cron.php >/dev/null 2>&1
cd /home/usuario/public_html && wp cron event run --due-now >/dev/null 2>&1

Sustituye la ruta por la de tu instalación. En SiteGround encontrarás esta opción en Site Tools > Devs > Cron Jobs, y en otros paneles como Plesk en la sección de tareas programadas.

Conclusiones sobre el cron de WordPress

El WP-Cron es una pieza pequeña, pero clave para optimizar tu WordPress: si está mal configurado, consume recursos de más o deja tareas importantes sin ejecutar.

Mi recomendación es clara: desactiva el WP-Cron nativo, crea un cron real en tu hosting cada 5 o 15 minutos y revisa de vez en cuando las tareas programadas para eliminar las que ya no sirven. Si además quieres reducir otras peticiones en segundo plano, échale un ojo a cómo controlar la API Heartbeat de WordPress.

Y si no quieres tocar archivos del servidor, en mi servicio de mantenimiento web WordPress me encargo de configurar el cron, las copias de seguridad y el rendimiento de tu página web.

Ahora quiero saber tu opinión. ¿Conocías el cron de WordPress? ¿Lo tenías optimizado?

¡Te leo en los comentarios!

Preguntas frecuentes sobre el cron de WordPress

¿Qué es el WP-Cron de WordPress?

El WP-Cron es el sistema interno de WordPress que ejecuta tareas programadas, como publicar posts, buscar actualizaciones o lanzar copias de seguridad. Se gestiona a través del archivo wp-cron.php y se activa cuando alguien visita la página web.

¿Por qué no se publican mis posts programados en WordPress?

Normalmente porque el WP-Cron no se ha disparado a tiempo, ya sea por falta de visitas, porque la caché de página impide que se ejecute PHP o porque el servidor bloquea wp-cron.php. La solución definitiva es crear un cron real en el hosting.

¿Cómo desactivo el WP-Cron?

Añade la línea define( ‘DISABLE_WP_CRON’, true ); en el archivo wp-config.php, justo antes del comentario que indica que dejes de editar. Después crea un cron en tu hosting para que las tareas sigan ejecutándose.

¿Es seguro desactivar el cron de WordPress?

Sí, siempre que lo sustituyas por un cron real del servidor. Si lo desactivas sin configurar ese cron, WordPress dejará de publicar posts programados, de hacer copias de seguridad y de buscar actualizaciones.

¿Cada cuánto debe ejecutarse el cron de WordPress?

Para la mayoría de páginas web, cada 5 a 15 minutos es suficiente. En tiendas online o páginas web con muchas tareas programadas es recomendable ejecutarlo cada 5 minutos.

¿Cómo veo las tareas programadas de WordPress?

Puedes verlas con un plugin gestor de cron como Advanced Cron Manager o WP Crontrol, o con el comando wp cron event list de WP-CLI si tienes acceso SSH.

¿El WP-Cron afecta a la velocidad de mi página web?

Puede afectar en páginas web con mucho tráfico o con tareas pesadas, porque el servidor comprueba y ejecuta tareas mientras atiende visitas. Pasar a un cron real del servidor reduce ese consumo y hace las tareas más predecibles.

Resumir post con IA
Servicio de Diseño web WordPress

Diseño tu página web en WordPress rápida y optimizada para SEO. Tu web pensada para convertir visitas en clientes

Pide presupuesto

Y recibe respuesta en menos de 24h

Sin problema. En el último paso cuéntame tu caso y te diré por dónde empezar.

Borja Aranda Vaquero - Consultor SEO, Consultor de Google Ads y Diseñador Web WordPress
Resumen de privacidad

Esta web utiliza cookies para que pueda ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a esta página web y saber qué secciones de la página web te gustan más.