Desactivar wp-cron.php para ahorrar recursos

Desactivar wp-cron.php para ahorrar recursos. WordPress usa el archivo wp-cron.php para realizar tareas programadas,  por tanto revisa y ejecuta publicaciones programadas, verifica actualizaciones de plugins, temas, etc…, el envío de mails, contadores, etc… .

Por defecto, WordPress está pre-configurado para disparar wp-cron.php cada vez que alguien visita tu sitio web.

En paginas web de poco tráfico, esta bien, pero si recibes miles de visitas diarias puede llegar a ser un autentico quebradero de cabeza. Los recursos se disparan, la velocidad de la web disminuye, posibles bloqueos o errores 500, en fin… un desastre.

Por todo esto, si tu sitio sobrepasa las 350 o 400 visitas diarias te recomendaría desactivar wp-cron.php y ejecutarlo en un tiempo definido, ya sea con una tarea cron directamente y si tienes varios sitios Worpress en un VPS o Servidor, mejor con un script sh.

Vemos como hacer lo propuesto.

 

Desactivar wp-cron.php

Para desactivar el cron, debemos editar el archivo «wp-cron.php» y añadir:

/** Desactivar wp-cron.php */
define('DISABLE_WP_CRON', true);

ejemplo…
/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8mb4');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

/** Desactivar wp-cron.php */
define('DISABLE_WP_CRON', true);

/** Desactivar actualizaciones automaticas. */
define( 'AUTOMATIC_UPDATER_DISABLED', true );

Guardamos el archivo en su localización original, continuamos.

 

Ejecutar wp-cron con tiempo definido

Si usas un panel de control web (Plesk, Cpanel, VestaCP, etc…), tan solo tienes que activarlo en la sección «tareas cron», pones el tiempo en 10 o 15 minutos, y el ejecutable es:

cd /home/usuario/public_html; php -q wp-cron.php

Si te da algún error, prueba de esta otra forma.
php -q /home/usuario/public_html/wp-cron.php

También puedes agregar la tarea cron directamente desde consola / terminal.
crontab -e

15 * * * * /path/to/php /path/to/ruta-o-sitio/wp-cron.php

 

Todos los casos anteriores son para ejecutar wp-cron en un sitio o instalación de WordPress, ahora creamos un script para que ejecute los wp-cron de todas las instalaciones o sitios web de tu VPS o Servidor.

Creamos un archivo «sh» llamado «wpcron.sh«, y agregamos lo siguiente:

for i in `find . -iname "wp-cron.php"`
do
    echo "$i"
    php -q $i
done

lo guardamos en la ruta de los sitios web, por ejemplo, en Centos es:
/home/user

y creamos una tarea cron.
*/15 * * * * /home/user/webs/wpcron.sh

 

Ya lo tenemos listo, nuestro wp-cron se ejecutara cada 15 minutos y nuestro sistema queda liberado de recursos.

Agregar comentario