Como Desativar o wp-cron no WordPress e Configurar Cron Jobs Corretos

O WordPress inclui um sistema de agendamento integrado conhecido como WP-Cron, responsável por gerenciar tarefas agendadas, como publicar posts em um horário específico, enviar e-mails acionados ou executar backups automatizados.

Embora o WP-Cron seja conveniente e funcione bem para muitos sites, ele tem limitações. Um problema comum é que, às vezes, ele perde tarefas agendadas, especialmente em sites com pouco tráfego.

Uma alternativa mais confiável é configurar jobs cron adequados, gerenciados pelo servidor do seu provedor de hospedagem. Esses jobs cron são independentes das visitas ao site e executados em um cronograma preciso, garantindo que as tarefas sejam executadas de forma consistente e no prazo.

Na WPBeginner, confiamos em jobs cron adequados configurados diretamente em nosso servidor para garantir que todas as nossas tarefas agendadas sejam executadas no prazo, e essa abordagem tem consistentemente entregado excelentes resultados para nós. Isso significa que não precisamos nos preocupar com atrasos ou tarefas perdidas, mesmo durante períodos de baixo tráfego ou alta atividade do servidor.

Neste artigo, mostraremos como desabilitar facilmente o wp-cron no WordPress e abordaremos duas maneiras de configurar jobs cron adequados.

Como Desativar o wp-cron no WordPress e Configurar Cron Jobs Corretos

Por que desabilitar o wp-cron?

Seu site WordPress tem um sistema de agendamento integrado chamado wp-cron. Ele executa tarefas sensíveis ao tempo, como verificar atualizações, publicar posts agendados, criar backups regulares automaticamente, enviar e-mails acionados e muito mais.

Você pode aprender mais em nosso guia sobre como visualizar e controlar jobs cron do WordPress.

Visualizando Tarefas Agendadas no WordPress

O problema é que o WordPress só é acionado para verificar trabalhos agendados quando alguém visita seu site. Isso funciona bem o suficiente para a maioria dos sites, mas às vezes pode causar problemas para os menores.

Por exemplo, se seu site tem pouco tráfego, então seus posts agendados podem não ser publicados a tempo. Se o seu site recebe muito tráfego, o wp-cron será verificado com frequência, o que pode impactar o desempenho do seu site.

Agora, se você deseja apenas corrigir o erro de posts agendados ausentes, pode usar o plugin gratuito Missed Scheduled Publisher. Mas se você quiser resolver todos os problemas de ações agendadas, precisará de um cron job real.

Um cron job real é executado pelo sistema operacional do seu servidor de hospedagem, não pelo WordPress. Você pode configurá-lo para verificar tarefas agendadas de forma mais confiável. Por padrão, o WordPress não tem acesso para configurar isso no nível do servidor, mas você pode fazer isso facilmente seguindo nosso tutorial.

Dito isso, vamos dar uma olhada em como desabilitar facilmente o wp-cron e configurar um cron job adequado. Veja o que cobriremos neste tutorial:

Desabilitando o wp-cron no WordPress

Para desabilitar o wp-cron, você precisa editar o wp-config.php, que é um arquivo de configuração principal do WordPress. Ele está localizado na pasta raiz do seu site WordPress, e você precisará usar um cliente FTP ou o gerenciador de arquivos no painel de controle da sua hospedagem.

Este arquivo contém muitas informações sensíveis e fazer as alterações erradas pode quebrar seu site WordPress. Recomendamos fazer um backup do arquivo primeiro, por precaução. Você pode aprender como seguindo nosso guia sobre como editar o wp-config.php no WordPress.

Você precisará colar o seguinte código no arquivo wp-config.php, logo antes da linha que diz, ‘That’s all, stop editing! Happy blogging’:

define('DISABLE_WP_CRON', true);

É assim que deve ficar.

Colando Código no wp-config

Depois disso, salve o arquivo e faça o upload dele de volta para o seu site.

O WordPress não acionará mais o wp-cron quando alguém visitar seu site.

Método 1: Configurando um Cron Job Adequado na Sua Hospedagem WordPress

Agora, você precisará configurar um cron job adequado para executar suas tarefas agendadas. A maneira como você faz isso varia dependendo das ferramentas fornecidas pelo seu provedor de hospedagem WordPress.

A maneira mais fácil de configurar cron jobs é usando o cPanel, um popular painel de controle de sites incluído em muitos planos de hospedagem, incluindo o Bluehost. Usaremos o cPanel do Bluehost neste tutorial.

Observação: Alguns provedores de hospedagem não usam cPanel, e alguns podem nem permitir que você crie cron jobs. Em caso de dúvida, você deve entrar em contato com seu provedor de hospedagem ou consultar a documentação de suporte deles. Você sempre pode usar um serviço de cron de terceiros (verifique o método 2).

Assim que você fizer login na sua conta de hospedagem e for para a página 'Websites', mude para a aba 'Avançado' no topo.

Aqui, role para baixo até a seção 'Cron Jobs' e clique no botão 'Gerenciar' ao lado dela. Lembre-se de que a posição desta seção pode variar dependendo do seu provedor de hospedagem.

Clique no botão Gerenciar na seção Cron Jobs

Isso o levará a uma nova página onde você pode criar novos cron jobs.

Não se preocupe com o aviso que você verá sobre a necessidade de um bom conhecimento de comandos Linux. Apenas um comando é necessário, e mostraremos exatamente qual é abaixo.

Se precisar, você pode alterar o endereço de e-mail para onde as notificações de cron job serão enviadas. O endereço padrão é aquele que você usou ao se inscrever em sua hospedagem web, e isso funcionará bem na maioria dos sites.

Você pode alterar o e-mail do cron e clicar em Atualizar

Agora, vamos rolar para baixo até a seção 'Adicionar Novo Cron Job' e configurar um cron job.

Primeiro, você precisa decidir com que frequência o cron job será executado. Isso pode ser o que você quiser, mas recomendamos intervalos de 30 minutos.

Você precisará clicar no botão ‘Configurações Comuns’ e selecionar um intervalo de tempo no menu suspenso. ‘Duas Vezes por Hora’ é uma boa opção para a maioria dos sites se você não tiver certeza.

Criando um Novo Cron Job no cPanel

Agora, você pode inserir o comando que pedirá ao WordPress para executar suas tarefas agendadas. Você precisa colar o seguinte código no campo ‘Comando’:

wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Certifique-se de substituir ‘example.com’ pelo URL do seu próprio site.

Depois de fazer isso, clique no botão ‘Adicionar Novo Cron Job’ e você verá o novo cron job adicionado à lista abaixo.

Visualizando a Lista de Cron Jobs no cPanel

O WordPress agora verificará e executará tarefas agendadas a cada 30 minutos em vez de quando alguém visita seu site.

Método 2: Configurando um Cron Job Adequado Usando um Serviço de Terceiros

Se o seu plano de hospedagem não oferecer cron jobs adequados ou se eles forem difíceis de configurar, você pode usar um serviço de cron de terceiros.

Estes são serviços dedicados que permitem configurar cron jobs usando uma interface simples. Aqui estão alguns dos melhores:

  • EasyCron tem um plano gratuito que requer renovação mensal
  • cron-job.org é um serviço gratuito
  • Cronitor é gratuito se você precisar apenas de um cron job
  • SetCronJob oferece planos pagos a partir de US$ 10/ano

Para este tutorial, usaremos EasyCron porque é fácil de usar e o plano gratuito é adequado para a maioria dos casos de uso de iniciantes.

Assim que você criar uma conta gratuita, poderá criar um novo cron job clicando no botão ‘+ Cron Job’ à esquerda.

Criando um Novo Cron Job no EasyCron

Isso abrirá a tela ‘Criar Cron Job’. Primeiro, você precisa colar o seguinte URL no campo ‘URL para chamar’:

https://example.com/wp-cron.php?doing_wp_cron

Certifique-se de substituir ‘example.com’ pelo URL do seu próprio site.

Criando um Novo Cron Job no EasyCron

Depois disso, você deve escolher ‘A cada 30 minutos’ no menu suspenso ‘Quando executar’. Quando terminar, não se esqueça de clicar no botão ‘Criar Cron Job’ para salvar suas configurações.

O novo cron job será adicionado à lista e executará o wp-cron em seu site a cada 30 minutos.

Visualizando a Lista de Cron Jobs no EasyCron

Bônus: Agendamento Automático dos Posts do Seu Blog WordPress

Uma vez que você tenha configurado cron jobs adequados, todas as suas tarefas agendadas no blog WordPress serão realizadas sem problemas. Você pode até mesmo agendar automaticamente suas postagens de blog.

Isso permitirá que você escolha um artigo para publicar aleatoriamente na sua data de publicação pré-selecionada. Para fazer isso, você deve instalar e ativar o plugin PublishPress Planner.

Após a ativação, visite a página Planner » Configurações e mude para a aba ‘Calendário de Conteúdo’ no topo. Aqui, marque a caixa ‘Agendado’ ao lado da opção ‘Status para exibir hora de publicação’.

Selecione o status Agendado

Depois disso, você terá que escolher um formato de hora para a publicação do seu post e clicar no campo ao lado da opção ‘Hora de publicação padrão para itens criados no calendário’.

Isso abrirá um prompt de onde você pode escolher a hora, minuto e segundo específicos para que seus posts agendados sejam publicados diariamente. Para ideias, você pode ver nosso tutorial sobre quando é o melhor momento para publicar um blog.

Em seguida, clique no botão ‘Salvar Alterações’ para armazenar suas configurações.

Escolha um horário para a publicação dos posts agendados

Agora você pode ir para o editor de blocos onde pode selecionar a opção ‘Agendado’ no menu suspenso ‘Status do Post’.

Para mais informações, veja nosso tutorial sobre como agendar automaticamente seus posts de blog do WordPress.

Agende seu post de blog do WordPress

Esperamos que este tutorial tenha ajudado você a aprender como desativar o wp-cron no WordPress e configurar trabalhos de cron adequados. Você também pode querer ver nosso tutorial sobre como adicionar um usuário administrador no WordPress com FTP e nosso guia para iniciantes sobre como visualizar e controlar trabalhos de cron.

Se você gostou deste artigo, por favor, inscreva-se em nosso Canal do YouTube para tutoriais em vídeo do WordPress. Você também pode nos encontrar no Twitter e no Facebook.

Aviso: Nosso conteúdo é apoiado pelos leitores. Isso significa que, se você clicar em alguns de nossos links, poderemos ganhar uma comissão. Veja como o WPBeginner é financiado, por que isso importa e como você pode nos apoiar. Aqui está nosso processo editorial.

O Kit de Ferramentas Definitivo para WordPress

Obtenha acesso GRATUITO ao nosso kit de ferramentas - uma coleção de produtos e recursos relacionados ao WordPress que todo profissional deve ter!

Interações do Leitor

12 CommentsLeave a Reply

  1. Obrigado pelas etapas específicas. Usei o método 1, onde desativei o CRON via wp-config, e como tenho meu próprio servidor, nada me impediu de usar o CRON do servidor para tarefas agendadas. A única coisa que eu não tinha certeza antes era qual URL usar para o CRON. Então, obrigado também pelo comando específico que eu poderia inserir no CRON.

  2. Tenho um site woocommerce que precisa executar outro cron job a cada 5 minutos
    Se eu seguir o método 1 – preciso configurar o wp_cron.php para rodar pelo menos a cada 5 minutos também (ou mais rápido)? ou a cada 30 minutos ainda estará ok?

    • O método em nosso artigo afetaria todos os trabalhos de cron do seu site. Quando você precisa que um trabalho de cron específico aconteça com mais frequência, recomendamos verificar com o suporte do que precisa do trabalho de cron e eles podem ajudar a configurá-lo!

      Admin

  3. Este é um ótimo post! Desativar o wp-cron e usar trabalhos de cron externos é algo que venho considerando há algum tempo para melhorar a velocidade do site. As instruções claras sobre como desativar o wp-cron e configurar trabalhos externos são incríveis. Obrigado por compartilhar!

  4. Hello,
    I’d just like to say thank you so much for this straightforward help.
    I used Method 1.
    I’ve carried out your instructions after reading everything at least 3 times and, for the first time ever, my WP health state has no problems!! :) :) :)
    Thanks again.

  5. Estou confuso(a).

    O Woocommerce recomenda definir o comando como sem a parte “?doing_wp_cron”.

    Qual é a diferença?

    • A menos que ouçamos o contrário, o ?doing_wp_cron permite algum processamento em segundo plano que, sem ele, não seria possível fazer.

      Admin

      • Ok, isso faz algum sentido. Imagino que deva ser a diferença entre os processos do WP e do Woo sendo executados?

        Acabei criando dois trabalhos de cron no cPanel, um com e outro sem. Isso vai causar problemas?

        • Deveria ser um método ligeiramente diferente para alcançar o mesmo resultado.

          Dependeria do tamanho do seu site para saber como múltiplos trabalhos de cron afetariam seu site de hospedagem, pois à medida que seu site cresce, isso pode se tornar um problema.

Deixe um comentário

Obrigado por escolher deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de comentários, e seu endereço de e-mail NÃO será publicado. Por favor, NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.