WordPress utiliza un archivo llamado wp-cron.php como una tarea programada “virtual” para automatizar procesos como: publicación programada de posts, chequear actualizaciones de plugins o temas, enviar notificaciones de correo, etc.

De manera predeterminada, WordPress llama al archivo wp-cron.php cada vez que alguien visita tu sitio.

En sitios con poco tráfico, esto funciona perfectamente. Sin embargo, a medida que el sitio comienza a tener más visitas, este comportamiento se vuelve totalmente ineficiente, ocasionando sobrecarga en el servidor, y, además, que tu sitio cargue más lento.

Desactivando el comportamiento predeterminado

Podemos hacer que WordPress nos deje manejar manualmente la ejecución de wp-cron.php, desde el archivo wp-config.php:

Paso 1. Abra el archivo wp-config.php desde el Administrador de archivos de cPanel.

Paso 2. Ahora agregaremos la siguiente línea luego de la configuración de base de datos

(Agregar el siguiente código en verde)

/** Codificación de caracteres para la base de datos. Guanha guanha */
define('DB_COLLATE', '');

define('DISABLE_WP_CRON', 'true');

Paso 3. Guardar

A partir de este momento, WordPress no ejecutará automáticamente el archivo wp-cron.php cada vez que alguien visite tu sitio.

Configurar una tarea programada (o cron job)

Para la mayoría de los usuarios de WordPress, ejecutar el script wp-cron.php cada 6 horas, es perfectamente razonable. Esto serían sólo 4 ejecuciones diarias, comparadas con cientos, o incluso miles de veces, si tu sitio tiene mucho tráfico.

Paso 1. Ingresar a cPanel.

Paso 2. Dentro de la sección Avanzado, hacer click en Cron jobs:

Paso 3. Seleccionar Una vez por hora en Configuraciones comunes:

Paso 4. Ahora, seleccionar Cada 6 horas en Hora:

Paso 5. Luego, en Comando, agregar:

cd $HOME/public_html/directorio/donde/esta/nuestro/wordpress; php -q wp-cron.php

Paso 6. La tarea programada debería haberse agregado exitosamente:

Por qué $HOME en vez de /home/elusuario? Simplemente porque si usamos /home/usuario, éste podría cambiar, y nuestro cron quedaría inutilizable. La idea es que funcione eternamente.

A partir de ahora, tu sitio en WordPress debería ejecutar tareas programadas mediante el script wp-cron.php, pero en intervalos definidos, reduciendo ejecuciones innecesarias.