Desabilitar wp-cron do wordpress

É muito comum quem utiliza sites em wordpress reclamar de lentidão em alguns momentos. Um dos principais vilões nesse quesito é o wp-cron, em alguns casos a função chega utilizar 100% da CPU e com isso o site fica muito lento, quase inacessível.

1 – Para que server o wp-cron?

Para que o wordpress funcione é necessário que ele tenha um mecanismo de realização de tarefas como posts programados, newsletters ou backups além de outras tarefas.
Sendo assim ele utiliza um script próprio chamado “wp-cron.php”.

2 – Para que desabilitar o wp-cron?

O wordpress usa um truque para rodar este script, ele é executado cada vez que alguém acessa o site ou que algo no painel seja modificado, o que acarreta em um uso desordenado e muitas vezes desnecessário causando mais processamento e uso de recursos no servidor e trazendo também lentidão ao site.

  • Aumenta o uso de recursos do servidor principalmente se tiver muitos visitantes no blog/site
  • É desnecessário muitas vezes, principalmente se utiliza um plugin de cache ou se o blog/site tem poucos visitantes.
  • Tem alguns bugs, as vezes roda diversos processos simultâneos causando inclusive execução de funções duplicadas.

3 – Como desabilitar o wp-cron e rodar apenas como cronjob.

Devemos editar o arquivo “wp-config.php” na home do blog/site e inserir o seguinte código:

define(‘DISABLE_WP_CRON’, true);

Agora em seu cPanel crie uma tarefa cron para rodar o wp-cron.

Dica:
Rodar o script wp-cron.php cerca de 3 vezes por dia é o suficiente, porém se você utiliza muitos agendamentos de posts que precisam ser feitos com mais precisão de horário pode colocar para que rode o cron 1 vez por hora.

Segue o cron:

/usr/bin/php -f /home/USERNAME/public_html/wp-cron.php >/dev/null

Altere USERNAME pelo seu usuário do cpanel e o caminho se for necessário, por exemplo se o blog/site estiver instalado em outro diretório como /site ou /blog.

4 – Como configurar o cron no caso de usar o Multiple-Sites do WordPress:

Neste caso em especifico o cron não pode ser feito da mesma maneira pois não vai rodar todos os agendamentos dos diferentes sites no mesmo wordpress.

Sendo assim é necessário fazer o agendamento POR SITE no cron do cpanel da seguinte maneira:

Site 1:

/usr/bin/curl http://SEUSITE-1.COM/wp-cron.php

Site 2:

/usr/bin/curl http://SEUSITE-2.COM/wp-cron.php

Qualquer dúvida consulte nosso suporte.

5 – Conclusão.

O WordPress é uma boa ferramenta, porém devida a gama de templates, plugins e por sua vez opções agregadas a ele se torna uma ferramenta pesada e pouco otimizada, sendo necessário ajustes por parte dos usuários.
Com estas alterações e mais algumas outras opções de cache é possivel ter um blog mais leve e rápido sem causar problemas ao servidor.
É claro que em alguns casos de sites muito grandes e acessados será necessário um ambiente mais especifico com Hardware Dedicado e grande escalabilidade de recursos.

Este artigo foi útil?

(154 de 155 pessoas acharam este artigo útil.)