Guias de Como Fazer

Reduzindo o Consumo de CPU com Limitação da API Heartbeat do WordPress

  • 16 minutos de leitura
  • Equipe Hostragons
Reduzindo o Consumo de CPU com Limitação da API Heartbeat do WordPress

A limitação da API Heartbeat do WordPress é o processo de redução do consumo de CPU, diminuindo a frequência de requisições de admin-ajax.php que ocorrem em segundo plano no painel de administração do WordPress. Isso é especialmente importante em ambientes de hospedagem compartilhada, lojas WooCommerce de alto tráfego e blogs com múltiplos autores, onde a API Heartbeat pode enviar requisições ao servidor a cada 15-60 segundos; isso pode resultar em uso desnecessário da CPU, lentidão no painel de administração e alertas de limite de recursos. A solução é ajustar a API para intervalos de 60-120 segundos, em vez de desativá-la completamente, mantendo-a ativa apenas nas áreas necessárias e medindo os resultados através do painel de hospedagem.

Neste guia, explicaremos passo a passo o que é a API Heartbeat, quando ela pode se tornar um problema, quais configurações são seguras e como você pode reduzir o consumo de CPU no seu site WordPress de forma prática. O objetivo é limitar o tráfego desnecessário em segundo plano sem comprometer funcionalidades úteis, como salvamento automático de rascunhos e controle de sessão. Se o seu site frequentemente enfrenta problemas como 508 Resource Limit, 503 Service Unavailable ou lentidão no painel de administração do WordPress, essas configurações são uma das primeiras otimizações que você deve considerar.

O que é a API Heartbeat do WordPress?

A API Heartbeat do WordPress é um mecanismo que permite a comunicação regular entre o navegador e o servidor. Essa comunicação normalmente ocorre através do arquivo /wp-admin/admin-ajax.php. Com esse sistema, o WordPress pode automaticamente salvar rascunhos na tela do editor, informar quando outro usuário está editando o mesmo post, verificar a duração da sessão e executar notificações em tempo real de alguns plugins.

Vamos dar um exemplo simples: enquanto um editor está trabalhando na tela de edição de um post, o WordPress envia periodicamente uma pequena requisição ao servidor para garantir que o rascunho não seja perdido. Essa requisição sozinha não é pesada, mas se houver 8 editores, 2 administradores e uma equipe com a painel do WooCommerce aberto ao mesmo tempo, o número de requisições pode aumentar rapidamente. 10 sessões de administração abertas, com intervalos de 30 segundos, podem gerar cerca de 1.200 requisições de Heartbeat por hora. Se os plugins adicionarem dados extras a essas requisições, o uso da CPU pode ser muito maior do que o esperado.

Portanto, a API Heartbeat não é uma característica negativa; ela se torna um problema de desempenho quando é acionada em intervalos inadequados, em páginas desnecessárias ou com plugins pesados. Em um site bem configurado, a API pode permanecer ativa, mas sua frequência é controlada.

Por que a API Heartbeat Aumenta o Consumo de CPU?

O consumo de CPU refere-se à capacidade de processamento que o servidor utiliza para executar operações PHP. Como o WordPress é um sistema de gerenciamento de conteúdo dinâmico, a cada requisição PHP, o tema, os plugins, o banco de dados e o núcleo do WordPress são acionados em certa medida. Embora as requisições de Heartbeat pareçam pequenas, elas também disparam processos PHP.

As causas mais comuns para o aumento do consumo de CPU incluem:

  • Intervalo de requisições muito curto: Em algumas telas, a API Heartbeat pode ser reduzida a até 15 segundos. Isso significa 240 requisições por hora, mesmo para um único usuário.
  • Múltiplas abas abertas: Se um usuário deixar 4 abas diferentes abertas no painel do WordPress, cada aba pode gerar seu próprio tráfego de Heartbeat.
  • Plugins pesados: Plugins de segurança, estatísticas, backup, construtores de página e WooCommerce podem sobrecarregar os dados da API Heartbeat.
  • Hospedagem com recursos limitados: Em pacotes com limite de CPU baixo, pequenas requisições em segundo plano podem rapidamente esgotar o limite durante horários de pico.
  • Conflito entre tráfego de bots e usuários reais: Enquanto há tráfego de visitantes na frente, as requisições em segundo plano no painel de administração usam os mesmos recursos.

Se você perceber que os acessos a admin-ajax.php estão se repetindo com frequência no arquivo de log de acesso, o tráfego da API Heartbeat deve ser analisado. Na infraestrutura da Hostragons, você pode acompanhar as flutuações de CPU através dos gráficos de uso de recursos e considerar opções de Hospedagem WordPress mais adequadas às necessidades do seu site.

É Correto Desativar Completamente a API Heartbeat?

A resposta geral é: Não, desativar completamente a API não é recomendado para a maioria dos sites. Desativar a API Heartbeat pode reduzir a CPU a curto prazo, mas pode prejudicar funcionalidades como salvamento automático de postagens, bloqueio de conteúdo, renovação de sessão e notificações de alguns plugins. Especialmente em blogs com múltiplos autores, a edição do mesmo post por duas pessoas pode levar à perda de conteúdo.

Uma abordagem mais segura é manter a API ativa apenas nas áreas necessárias e aumentar seu intervalo. Por exemplo, no editor de postagens, um intervalo de 60 segundos, no painel de administração geral 120 segundos, e completamente desativada na frente do site, geralmente traz resultados equilibrados para a maioria dos sites corporativos. Em lojas WooCommerce, seções como a tela de pedidos e gestão de estoque devem ser testadas com mais atenção.

Tabela de Configurações Recomendadas para a API Heartbeat

Tabela de Configurações Recomendadas para a API Heartbeat
Cenário Configuração Recomendada Efeito Esperado Ponto a Ser Observado
Blog de autor único Admin 120 seg, editor 60 seg, frente desativada Requisições admin-ajax diminuem significativamente Intervalo de salvamento automático deve ser testado
Site de publicação com múltiplos autores Editor 60 seg, admin 90-120 seg CPU diminui, bloqueio de conteúdo é mantido Quantidade de abas abertas por autores deve ser monitorada
Loja WooCommerce Admin 60-90 seg, frente desativada com cautela Carga do painel é reduzida Testar plugins de carrinho, pagamento e estoque
Site corporativo de apresentação Admin 120 seg, frente desativada A mitigação mais segura Formulários e plugins de segurança devem ser verificados
Site com alerta de limite de recursos Testar primeiro 60 seg, depois 120 seg Picos de CPU podem ser reduzidos Medição com logs e gráficos de hospedagem é essencial

Essa tabela é um ponto de partida. A melhor configuração varia de acordo com o número de usuários, a estrutura dos plugins, a carga do tema e os recursos da hospedagem. Mudanças feitas sem medição podem às vezes esconder problemas de CPU, mas não resolvem a causa principal.

Como Limitar a API Heartbeat do WordPress?

Existem três métodos práticos para limitar a API Heartbeat do WordPress: usar um plugin, adicionar código ao arquivo de funções do tema ou aproveitar as configurações integradas de plugins de desempenho. Se você tem pouco conhecimento técnico, o método do plugin é mais seguro. Se você é um desenvolvedor, pode fazer ajustes mais controlados com um pequeno trecho de código.

1. Método: Limitação com o Plugin Heartbeat Control

O método mais fácil é usar um plugin desenvolvido para gerenciar o tráfego da API Heartbeat. Com o Heartbeat Control, oferecido pelo WP Rocket, ou plugins confiáveis semelhantes, você pode definir regras diferentes para áreas distintas.

Passos:

  • Vá para a seção Plugins > Adicionar Novo no painel de administração do WordPress.
  • Procure por Heartbeat Control e instale o plugin confiável e atualizado.
  • Após ativar o plugin, acesse a tela de configurações.
  • Defina a frequência para 60 ou 120 segundos para o painel ou dashboard.
  • Escolha 60 segundos para a área de edição de posts, em vez de desativá-la completamente.
  • Desative a API Heartbeat para o frontend ou ajuste para o maior intervalo.
  • Salve as alterações e monitore o gráfico de CPU por 24 horas.

A vantagem deste método é que ele pode ser revertido rapidamente. Se você encontrar um problema, pode desativar o plugin e retornar ao comportamento padrão do WordPress. A desvantagem é que você adiciona mais um plugin ao seu site. Se você deseja manter a contagem de plugins baixa, o método do código pode ser mais apropriado.

2. Método: Alterando o Intervalo da Heartbeat com functions.php

Se você deseja limitar através de código, faça a alteração no arquivo functions.php dentro do tema filho, ou em um pequeno plugin específico do site, se possível. Dessa forma, suas configurações não se perderão durante as atualizações do tema.

O exemplo abaixo aumenta o intervalo da Heartbeat para 60 segundos:

add_filter('heartbeat_settings', 'hostragons_heartbeat_interval'); function hostragons_heartbeat_interval($settings) { $settings['interval'] = 60; return $settings; }

Esse código aproxima os intervalos padrões mais curtos a 60 segundos, reduzindo o número de requisições. Aumentar de um intervalo de 15 segundos para 60 segundos pode teoricamente reduzir o número de requisições de Heartbeat em até 75%. Por exemplo, em 5 sessões de administração, em vez de gerar 1.200 requisições por hora, geraria cerca de 300. O ganho real depende de quanto processamento os plugins adicionam a essas requisições.

Se você deseja uma configuração mais agressiva, pode desativar a API Heartbeat no frontend, mantendo-a ativa no painel de administração:

add_action('init', 'hostragons_disable_heartbeat_frontend', 1); function hostragons_disable_heartbeat_frontend() { if (!is_admin()) { wp_deregister_script('heartbeat'); } }

Esse código desabilita o script Heartbeat no frontend. No entanto, deve ser testado em sites que usam funcionalidades como membros, notificações ao vivo, atualizações de carrinho ou editores frontend. Se o comportamento for afetado nas páginas de pagamento, carrinho ou conta do WooCommerce, é mais seguro usar o plugin para fazer ajustes com base na página.

3. Método: Gerenciando com WP Rocket ou Plugins de Desempenho

Alguns plugins de cache e desempenho oferecem controle da API Heartbeat em suas configurações. Em ferramentas como o WP Rocket, você pode escolher diferentes níveis para o painel de administração, editor de posts e frontend através da aba Heartbeat. Esse método reduz a necessidade de um plugin adicional em sites que já utilizam um plugin de desempenho.

Ao usar um plugin de desempenho, evite ativar dois módulos diferentes que fazem a mesma função ao mesmo tempo. Por exemplo, ativar tanto as configurações de Heartbeat do WP Rocket quanto um plugin separado de Heartbeat Control pode causar conflitos ou comportamentos inesperados. A regra básica na otimização do WordPress é: Use uma única ferramenta para realizar a mesma tarefa, meça os resultados e depois adicione novas mudanças.

Medindo o Consumo de CPU para Encontrar a Configuração Correta

Medir antes e depois de ajustar as configurações da API Heartbeat é uma parte crucial da otimização profissional. Apenas perceber que o painel de administração está mais rápido não é prova suficiente. O gráfico de uso de CPU, o número de processos PHP, o log de acesso e os logs de erro devem ser avaliados em conjunto.

Um plano de teste recomendado:

  • Realize uma medição inicial: Registre o gráfico de CPU e RAM por 24 horas antes de fazer qualquer alteração.
  • Analise o log de acesso: Verifique a intensidade horária das requisições a admin-ajax.php.
  • Implemente a primeira configuração: Aumente o intervalo da Heartbeat para 60 segundos e desative no frontend.
  • Aguarde 24-48 horas: Monitore as flutuações da CPU sob as mesmas condições de tráfego.
  • Experimente 120 segundos se necessário: Intervalos mais longos podem não causar problemas, especialmente em sites corporativos.
  • Teste funcionalidades críticas: Verifique se o salvamento automático de posts, o carrinho do WooCommerce, o gerenciamento de pedidos e os fluxos de membros estão funcionando corretamente.

Por exemplo, se em um site corporativo WordPress, o painel de administração mantém o consumo de CPU entre 80-90%, aumentar o intervalo da Heartbeat de 15 para 60 segundos pode reduzir os picos de CPU em 20-40%. No entanto, se o mesmo site tem um plugin de backup que realiza uma varredura completa a cada hora, a otimização da Heartbeat sozinha pode não ser suficiente. Nesse caso, deve-se abordar Otimização de velocidade WordPress e Uso de recursos de hosting em conjunto.

O acesso a admin-ajax.php é sempre causado pela Heartbeat?

O acesso a admin-ajax.php é sempre causado pela Heartbeat?

Não. O admin-ajax.php é utilizado por muitos processos diferentes no WordPress. A API Heartbeat é apenas um deles. Plugins de formulários, funcionalidades de filtragem, buscas em tempo real, verificações de segurança, atualizações de carrinho de e-commerce e algumas características de temas também podem enviar requisições para esse mesmo arquivo.

Portanto, apenas observar o tráfego de admin-ajax.php e desativar a Heartbeat pode não ser o diagnóstico correto. Você pode abrir as ferramentas de desenvolvedor do navegador e verificar a seção Network para ver se a requisição contém action=heartbeat. Se o valor da action for diferente, o problema pode estar vindo de outro plugin.

Uma análise do log de acesso do lado do servidor também pode ser realizada. É preciso examinar quais IPs estão gerando requisições intensas, em quais horários e a partir de quais páginas de referência. Se o tráfego for gerado por bots, soluções como firewall, limite de taxa ou proteção contra bots podem ser mais eficazes. Para um desempenho e segurança adequados, é importante manter sua certificado SSL atualizada.

Erros Comuns ao Limitar a API Heartbeat

Ao buscar soluções rápidas para problemas de desempenho no WordPress, alguns erros podem prejudicar o funcionamento do site. Os seguintes pontos são especialmente importantes em sites ao vivo:

  • Desativar a API completamente em todo lugar: O salvamento automático e o bloqueio de conteúdo podem ser desativados.
  • Adicionar código sem testar em um site ao vivo: Um erro de sintaxe pode causar a tela branca.
  • Não verificar o fluxo de pagamento do WooCommerce: Resultados inesperados podem ocorrer nos processos de carrinho e pedidos.
  • Usar múltiplos plugins de desempenho ao mesmo tempo: Conflitos dificultam a medição.
  • Associar o problema de CPU apenas à Heartbeat: Consultas pesadas, tráfego de bots ou tarefas cron podem ser as causas principais.
  • Fazer alterações sem backup: Um erro simples no código pode aumentar o tempo de reversão.

Fazer um backup dos arquivos e do banco de dados antes de alterações é a abordagem mais saudável. Se você deseja monitorar o domínio, hospedagem e gerenciamento do site em um único painel, pode gerenciar sua infraestrutura de maneira mais organizada com serviços de Consulta de domínio e Hospedagem Web.

Outras Medidas para Reduzir o Consumo de CPU Além da API Heartbeat

A limitação da API Heartbeat é um passo eficaz, mas a otimização de CPU do WordPress é um processo mais amplo. Para um desempenho duradouro, é necessário implementar também as seguintes medidas:

Uso de Cache

O cache de página reduz significativamente a carga de PHP e do banco de dados nas requisições dos visitantes. Quando o cache é ativado em páginas estáticas, não é necessário reiniciar o núcleo do WordPress a cada visita. Essa é uma das maneiras mais eficazes de reduzir o consumo de CPU.

Remoção de Plugins Desnecessários

Plugins não utilizados, mesmo que inativos, podem deixar uma carga no banco de dados em algumas situações. Avalie não apenas o número de plugins ativos, mas também seu peso operacional. Revise regularmente plugins de estatísticas, segurança, construtores de página e backup.

Controle do WP-Cron

O sistema cron do WordPress pode ser acionado a cada visita. Em sites com alto tráfego, isso pode aumentar o consumo de CPU. Utilizar o cron do sistema para execuções programadas é uma estrutura mais controlada. Este tópico é diferente da Heartbeat, mas reduz a carga em segundo plano de forma semelhante.

Otimização do Banco de Dados

Revisões, dados temporários, comentários de spam e registros antigos de transientes podem inchar o banco de dados. Limpezas regulares reduzem os tempos de consulta. Em sites WooCommerce, à medida que as tabelas de pedidos, sessões e logs crescem, a otimização se torna mais importante.

Versão do PHP e Recursos de Hospedagem

Versões atuais do PHP geralmente oferecem melhor desempenho. Uma estrutura de tema e plugins compatível com PHP 8.x pode resultar em um uso de CPU mais baixo sob a mesma carga de tráfego. No entanto, a otimização do software deve ser suportada pela infraestrutura de hospedagem adequada. Se o seu tráfego cresceu, pode ser sensato considerar opções de servidor VPS ou hospedagem WordPress escalável.

Roteiro Recomendado para uma Implementação Segura

Ao limitar a API Heartbeat em um site WordPress ao vivo, seguir a ordem abaixo trará resultados seguros e mensuráveis:

  • Primeiro, faça um backup completo.
  • Registre o consumo atual de CPU, RAM e o tráfego de admin-ajax.php.
  • Verifique se a Heartbeat realmente está gerando requisições intensas.
  • Desative a API Heartbeat no frontend ou ajuste para o maior intervalo.
  • Não reduza o intervalo do editor de posts para menos de 60 segundos.
  • Teste intervalos de 90-120 segundos no painel de administração.
  • Teste manualmente as funcionalidades do WooCommerce, membros e formulários.
  • Compare o uso de recursos após 24-48 horas.
  • Se os resultados não forem satisfatórios, analise as cargas provenientes de plugins, temas e cron.

Essa abordagem permite que você faça uma otimização baseada em dados, em vez de confiar em uma única configuração. O objetivo da manutenção profissional do WordPress não é apenas reduzir o valor da CPU, mas também manter a estabilidade do site e a experiência do usuário.

Conclusão: Não Desative a Heartbeat, Limite-a de Forma Inteligente

A limitação da API Heartbeat do WordPress, quando aplicada corretamente, é uma otimização prática que reduz o consumo de CPU, alivia o painel de administração e permite um uso mais eficiente dos recursos de hospedagem. O método mais saudável é limitar a API no frontend, deixar um intervalo seguro no editor de posts e testar o intervalo de 60-120 segundos no painel de administração.

Se o seu problema de CPU persistir, a Heartbeat pode ser apenas o ponto de partida; cache, carga de plugins, WP-Cron, banco de dados e pacote de hospedagem devem ser avaliados em conjunto. Se você está buscando uma infraestrutura mais estável para seu site WordPress na Hostragons, pode explorar as soluções de Hospedagem WordPress e criar um plano de upgrade suave de acordo com as necessidades de recursos do seu site.

Perguntas Frequentes

Deve-se desativar completamente a API Heartbeat do WordPress?

Para a maioria dos sites, não deve ser desativada completamente. Funcionalidades como salvamento automático, bloqueio de conteúdo e controle de sessão podem ser afetadas. A solução mais segura é desativá-la no frontend e aumentar o intervalo para 60-120 segundos no painel de administração e no editor.

Quanto a API Heartbeat reduz o consumo de CPU?

Isso depende da estrutura do site. Aumentar de 15 segundos para 60 segundos pode teoricamente reduzir o número de requisições de Heartbeat em até 75%. O ganho real em CPU varia de acordo com a carga dos plugins, número de usuários e recursos de hospedagem.

O alto uso de admin-ajax.php é sempre causado pela Heartbeat?

Não. Formulários, WooCommerce, buscas em tempo real, plugins de segurança e características de temas também podem utilizar admin-ajax.php. Você pode verificar se a requisição é da Heartbeat conferindo o valor de action=heartbeat na seção Network.

É seguro limitar a Heartbeat em sites WooCommerce?

É seguro, mas requer testes cuidadosos. As páginas de carrinho, pagamento, gerenciamento de pedidos, atualizações de estoque e membros devem ser verificadas. Geralmente, é mais saudável aumentar o intervalo em vez de desativar completamente a API.

Após ajustar a configuração da Heartbeat, por quanto tempo deve-se realizar testes?

Recomenda-se um teste de pelo menos 24-48 horas. Durante esse período, devem ser monitorados gráficos de CPU, número de processos PHP, requisições a admin-ajax.php e funcionalidades críticas do site. Se a intensidade do tráfego variar entre dias da semana e finais de semana, medições mais longas podem ser necessárias.

Compartilhe este artigo:

Equipe Hostragons

Guias atualizados da nossa equipe de especialistas sobre hospedagem, servidores e nomes de domínio. Vamos encontrar juntos a solução ideal para o seu projeto.

Fale Conosco