Alojar más webs con WordPress en un servidor sin aumentar recursos

¿Cómo podemos tener más alojamientos con WordPress en un servidor sin aumentar los recursos? esa es una pregunta muy buena y que tiene muchas respuestas, una de ellas es modificar el cron de los alojamientos.

WordPress tiene cosas muy buenas como por ejemplo actualizarse solo, comprobar si hay actualizaciones de plugins, comprobar si hay posts programados, etc.

Todas estas cosas se hacen gracias al cron de WordPress, un cron que se controla mediante el fichero wp-cron.php que está en la raíz de los hospedajes con WordPress.

El wp-cron.php se está ejecutando constantemente para hacer todas las comprobaciones y automatizar las tareas descritas.

Si tenéis unos pocos alojamientos con WordPress en vuestro servidor este dato os va a dar básicamente lo mismo y no va a afectar a vuestro rendimiento, ahora, si tenéis un servidor no muy grande y dentro tenéis 60, 70, 80 o más alojamientos con WordPress el wp-cron.php puede ser una espina que os afecte al rendimiento. Imaginad 70 WordPress comprobando constantemente si tienen que actualizarse, si hay tareas programadas, etc a la vez.

Esta funcionalidad es muy útil para aquellas webs en las que se programan entradas o en las que hay que hacer alguna cosa especial, pero lo cierto es que la inmensa mayoría realmente no necesitan esta funcionalidad, obviamente como administradores ahí está nuestra experiencia para saber si la necesitan o no.

¿Cómo se desactiva el wp-cron.php en un wordpress?, pues es bastante sencillo, simplemente tenemos que editar wp-config.php y añadir esto:

define(‘DISABLE_WP_CRON’, true);

Con esta línea lo que conseguimos es que no se ejecute el wp-cron.php, pero claro, de esta manera lo que vamos a conseguir es que nunca se actualice el WordPress, cosa que no queremos, así que vamos a sustituir la ejecución de WordPress por defecto por una entrada en el cron del sistema para que se ejecute una única vez al día, en este caso por ejemplo a las 7:14 de la mañana.

Para ejecutar a las 7:14 de la mañana introduciremos en el crontab la siguiente línea:

14 7 * * * /opt/php-7.3/bin/php /srv/www/miweb.com/www/wp-cron.php > /dev/null 2>&1

Esto lo tendremos que hacer en todos y cada uno de los alojamientos con WordPress de nuestro servidor en los que podamos permitirnos que el cron se ejecute sólo una vez al día. Recordad que podemos hacer que el cron se ejecute cada x horas o minutos, etc… las posibilidades del crontab son enormes.

Ahora, en Neodigit esto se introducirá directamente en el panel, para ello iremos al alojamiento en concreto que queramos y pincharemos en Opciones -> Tareas de Cron

Y si dividimos el tiempo del día entre los alojamientos el impacto en nuestro servidor será cero y podremos tener muchísimos WordPress corriendo a la vez y aprovechar al 100% los recursos de nuestro servidor y de paso ahorrarnos unos euros.