Como gerenciar a API de pulsação do WordPress

Publicados: 2023-01-31

A API do WordPress Heartbeat existe há quase uma década. Ele fornecia comunicação contínua em tempo real entre o painel do WordPress e o servidor host. Construída no núcleo do WordPress, a API Heartbeat oferece funcionalidades poderosas que podem melhorar significativamente a experiência de administração do site.

Esse poder, no entanto, tem um preço. É o número de recursos do servidor necessários para manter a comunicação funcionando sem problemas. Executar sites com uso intensivo de recursos ou fazer com que seu provedor de hospedagem imponha limites rígidos de memória e tempo de CPU pode levar a uma degradação perceptível do desempenho, onde a API Heartbeat pode desempenhar um papel.

Neste guia, vamos descobrir o potencial da API WordPress Heartbeat e sua função no ecossistema WordPress. Você aprenderá como funciona a API Heartbeat. Você também aprenderá por que pode precisar considerar limitar sua atividade em seu site WordPress. Isso ajudará você a obter um melhor desempenho sem precisar atualizar seu plano de hospedagem.

O que é a API de pulsação do WordPress?

A API do WordPress Heartbeat é uma interface integrada ao núcleo do WordPress que permite a comunicação em tempo real entre o servidor e o painel do WordPress. A API Heartbeat foi introduzida pela primeira vez em 2013 com o lançamento do WordPress 3.6. Ele forneceu grandes melhorias para o gerenciamento de conteúdo e outras áreas-chave da administração do site.

API de pulsação do WordPress

Por que a API Heartbeat é tão importante?

O painel do WordPress é em grande parte um aplicativo do lado do cliente. Isso significa que a maior parte da ação ocorre no navegador do usuário. Como um aplicativo front-end, a área de administração do WordPress não tem acesso direto ao banco de dados do WordPress, onde o conteúdo do site e outras informações importantes são armazenadas.

Para funcionar corretamente, o painel do WordPress precisa ser capaz de se comunicar com o servidor para enviar e receber dados. Interfaces de programação de aplicativos (APIs), como a API do WordPress Heartbeat, permitem receber atualizações em tempo real sem precisar recarregar a página inteira para exibir novas informações.

Para fornecer uma experiência de usuário perfeita, o painel do WordPress envia solicitações para o servidor nos bastidores com frequência suficiente para eliminar qualquer atraso de atualização para os usuários do WordPress que estão conectados e trabalhando no site. A API Heartbeat enviará solicitações ao servidor e chamadas de API a cada 15 a 120 segundos.

Três recursos principais WordPress Heartbeat API Powers

A API do WordPress Heartbeat possui três recursos principais que tornam a administração do site mais fácil e conveniente. Esses recursos são salvamentos automáticos, bloqueio de conteúdo e notificações de painel em tempo real. Eles são especialmente importantes para sites comunitários ou editados de forma colaborativa que tenham vários usuários conectados e ativos ao mesmo tempo.

1. Salvamentos automáticos e revisões

Salvamentos automáticos e revisões são um dos principais recursos fornecidos pela API do WordPress Heartbeat. Sempre que um usuário está trabalhando no editor de blocos, o WordPress realiza salvamentos automáticos de conteúdo a cada 60 segundos. Isso garante que nenhuma alteração seja deixada sem salvar. Ao enviar solicitações para o servidor a cada minuto, a API do WordPress Heartbeat salva uma cópia de trabalho de uma postagem ou página em seu banco de dados que será armazenado lá até que um novo salvamento automático seja executado.

Os salvamentos automáticos do WordPress com tecnologia Heartbeat API são extremamente úteis. Eles podem evitar a perda de dados em caso de falha do navegador ou problemas de conexão. Os salvamentos automáticos não substituem nenhuma revisão criada pelo usuário e não se acumulam no banco de dados.

2. Bloqueio de conteúdo

O bloqueio de conteúdo é outro recurso que a API do WordPress Heartbeat habilita para fornecer uma melhor experiência de edição para os proprietários de sites do WordPress. Se uma postagem ou página estiver sendo editada, o WordPress irá bloqueá-la para impedir que outros usuários façam alterações nela. A API do WordPress Heartbeat enviará solicitações ao servidor a cada 15 segundos. Ele mostrará uma notificação se outro usuário abrir o conteúdo bloqueado para edição.

3. Notificações do painel em tempo real

A API do WordPress Heartbeat ativa as notificações do painel em tempo real, incluindo aquelas enviadas por plug-ins. A confiabilidade da comunicação cliente-servidor fornecida pela Heartbeat API levou milhares de desenvolvedores de plug-ins do WordPress a integrá-la em seus aplicativos.

O intervalo padrão para chamadas de API do WordPress Heartbeat na área de administração do site é de 15 segundos. Os desenvolvedores de plug-ins que desejam usar a funcionalidade da API podem configurar intervalos personalizados para troca de dados entre o aplicativo cliente e o servidor.

Como funciona a API de pulsação do WordPress?

A API do WordPress Heartbeat usa AJAX — JavaScript e XML assíncronos — para se comunicar com o servidor a partir do painel de administração. A interface de programação do aplicativo coleta dados e os envia por meio do que é conhecido como evento jQuery. Um manipulador admin-ajax recebe os dados e os processa no lado do servidor, preparando posteriormente e retornando uma resposta no formato JSON.

Quando o painel do WordPress é carregado, o código do lado do cliente configura um intervalo, também conhecido como tick, para ser executado a cada 15 a 120 segundos, dependendo da tarefa. O código da API Heartbeat é encarregado de coletar dados no lado do cliente e comunicá-los ao servidor para receber atualizações.

O número total de chamadas da API Heartbeat depende do número de usuários ativos trabalhando no site ao mesmo tempo. Isso é o mesmo que o número de instâncias do painel do WordPress carregadas. Ter a área de administração do WordPress aberta em várias janelas do navegador cria o mesmo número de chamadas da API Heartbeat, como se vários usuários estivessem conectados ao back-end do site e executando tarefas ao mesmo tempo.

Por que limitar as chamadas da API de pulsação do WordPress?

Limitar as chamadas da API do WordPress Heartbeat pode ajudar a acelerar os sites do WordPress que possuem um pool muito limitado de recursos de servidor alocados, especialmente quando se trata de tempo de CPU. Embora a API Heartbeat provavelmente não seja o principal problema por trás do baixo desempenho do site, é definitivamente algo a ser levado em consideração.

Cada vez que a API Heartbeat se comunica com o servidor, uma solicitação POST HTTP é feita para o arquivo admin-ajax.php em wp-admin. Como as chamadas da API Heartbeat são enviadas ao servidor a cada 15-120 segundos, e o número aumenta se houver mais de um usuário administrador ativo, a API pode sobrecarregar o servidor, resultando em alto uso da CPU e da memória do sistema.

Alguns proprietários de sites WordPress podem até confundir a atividade da API Heartbeat com um ataque DDOS em andamento. As solicitações da API do WordPress Heartbeat não podem ser armazenadas em cache, de modo que cada chamada use uma certa quantidade de recursos do servidor. Se o servidor estiver usando ativamente seus recursos para lidar com chamadas de API, seus clientes poderão sofrer atrasos na renderização de conteúdo ao navegar em seu site.

Três coisas a considerar antes de desativar a API Heartbeat

Desativar totalmente a API Heartbeat raramente é uma boa ideia. O painel do WordPress perderá sua capacidade de se comunicar com o servidor em tempo real em sua maior parte. Com a API Heartbeat desativada, você não poderá mais receber notificações. Além disso, você não poderá aproveitar o bloqueio de conteúdo, salvamento automático e revisões.

As três principais coisas a considerar antes de desativar a API Heartbeat ou limitar sua atividade são:

  • Hospedagem. Revise quanto tempo de CPU e memória do sistema está alocado para o seu site. Existe um limite para o número de processos que seu site pode criar?
  • Tempo gasto na administração do site. Quanto tempo você gasta em administração e publicação de conteúdo? Quantos usuários ativos costumam trabalhar no painel do WordPress e nas interfaces de back-end ao mesmo tempo?
  • Tráfego diário recebido. Quantos visitantes diários seu site WordPress recebe? Você tem alguma solução de cache para aliviar a carga no servidor?

Dependendo do tipo de site e sua configuração de hospedagem atual, limitar o número de chamadas da API do WordPress Heartbeat terá um impacto diferente no desempenho geral. Se você estiver executando um site WordPress com uso intensivo de recursos, com vários usuários realizando manutenção regular e postando conteúdo, reduzir o número de chamadas da API Heartbeat pode ser altamente benéfico. Também pode ajudá-lo a evitar o aumento de seus custos de hospedagem na tentativa de acomodar quantidades crescentes de tráfego.

Como Gerenciar a API Heartbeat do WordPress com um Plugin

A maneira mais fácil de gerenciar as solicitações da API do WordPress Heartbeat é usando um plug-in do WordPress projetado para isso. Existem várias soluções diferentes que você pode aproveitar. O Heartbeat Control, desenvolvido pela WP Rocket, é um dos melhores e mais populares.

Controle de pulsação

Instale e ative o plug-in Heartbeat Control no painel do WordPress. Navegue até Configurações > Controle de pulsação para abrir a configuração do plug-in. O Heartbeat Control permite gerenciar a atividade da API Heartbeat no front-end do site, no painel do WordPress e no editor de blocos usando as seguintes opções:

  • Permitir pulsação. Se esta opção estiver habilitada, o plug-in não limitará as chamadas da API Heartbeat de forma alguma.
  • Desativar pulsação. Desativar o Heartbeat bloqueará todas as chamadas de API nas áreas escolhidas do seu site WordPress.
  • Modifique os batimentos cardíacos. Você pode definir um intervalo personalizado para chamadas de API do WordPress Heartbeat, variando de 15 a 300 segundos.
Controle de pulsação

Na maioria das vezes, configurar um intervalo maior para as chamadas da API do WordPress Heartbeat é o melhor curso de ação. Por exemplo, limitar o número de chamadas de API para uma a cada cinco minutos em todas as três áreas do seu site terá o mesmo efeito no desempenho geral que desabilitar completamente a API Heartbeat.

Observe que limitar a atividade da API Heartbeat no editor de bloco pode exigir que você salve as revisões com mais frequência para evitar a perda de alterações no conteúdo que está editando. Se você não depende de salvamento automático e não precisa de bloqueio de conteúdo, pode desativar completamente a API do WordPress Heartbeat no Gutenberg.

Como restringir as chamadas da API Heartbeat do WordPress sem um plug-in

Você pode restringir as chamadas da API do WordPress Heartbeat sem um plug-in usando ganchos do WordPress. Adicionar algumas linhas de código ao arquivo functions.php do tema ativo do seu site pode ajudá-lo a desativar a API Heartbeat ou especificar um intervalo personalizado para chamadas de API.

O WordPress vem com o editor de tema integrado que permite modificar o functions.php no painel de administração. No entanto, a maioria dos plug-ins de segurança do WordPress, como o iThemes Security Pro, desativa essa funcionalidade para proteger seu site caso ele seja comprometido.

Você pode editar o arquivo usando a interface do gerenciador de arquivos fornecida pelo painel de controle da sua hospedagem ou conectando-se aos arquivos do seu site via FTP ou SSH. Se Kadence WP for o seu tema de bloco WordPress preferido, você pode encontrar o arquivo functions.php na pasta Kadence dentro do diretório de conteúdo do WordPress.

Observe que qualquer código adicionado ao arquivo functions.php provavelmente será substituído pela próxima atualização do tema. Portanto, pode ser melhor gerenciar a API do WordPress Heartbeat usando um plug-in. Se você usar um tema filho, poderá alterar seu arquivo functions.php sem o risco de substituí-lo quando o tema pai for atualizado.

Não se esqueça de salvar um backup do seu site WordPress primeiro

Salvar backups é uma parte importante da administração do site. Isso permitirá que você se recupere de quaisquer erros e restaure rapidamente seu site em caso de emergência. Certifique-se de fazer backup do seu site antes de editar qualquer núcleo do WordPress ou arquivos de tema.

Usar um plug-in de backup do WordPress ajuda a criar uma forte estratégia de backup. Você terá uma cópia de trabalho do seu site sempre que precisar. Tenha os backups de seu site armazenados em um local remoto e aproveite agendamentos de backup personalizados e restaurações com um clique com o BackupBuddy.

Desativar a API Heartbeat

Adicionar a ação abaixo permite interromper a API Heartbeat, desativando efetivamente todas as chamadas de API. Para conseguir isso, adicione o trecho de código abaixo na parte inferior de functions.php.

function wb_stop_heartbeat() {
 wp_deregister_script('heartbeat');
}
add_action('init', 'wb_stop_heartbeat', 1);

Você pode desativar um recurso específico na API do WordPress Heartbeat da mesma maneira.

function disable_autosave() {
 wp_deregister_script('autosave');
}
add_action('admin_init', 'disable_autosave');

Configurar um intervalo personalizado para as chamadas de API Heartbeat

Para limitar as chamadas da API do WordPress Heartbeat, você pode especificar um filtro que configurará um intervalo personalizado para as solicitações da API. O trecho de código a seguir limita as chamadas da API Heartbeat a uma solicitação por minuto.

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

Configurar um intervalo personalizado para salvamentos automáticos do WordPress

O WordPress permite que você configure um intervalo personalizado para salvamento automático redefinindo a constante AUTOSAVE_INTERVAL. Semelhante a outras constantes, você pode atribuir um novo valor adicionando a seguinte linha ao seu arquivo de configuração principal do WordPress:

define('AUTOSAVE_INTERVAL', 300);

Você pode atribuir um valor maior ao intervalo, como 3600, que é uma hora, para desabilitar completamente o salvamento automático do WordPress. As constantes do WordPress configuradas em wp-config.php não são modificadas durante nenhuma atualização do WordPress. Você não terá que redefini-los mais tarde.

Empacotando

A API Heartbeat do WordPress é um dos principais recursos incorporados ao núcleo do WordPress que permite a comunicação cliente-servidor em tempo real usando chamadas AJAX. A interface de programação do aplicativo permite que o WordPress troque dados entre o servidor e o painel do WordPress para fornecer uma melhor experiência de administração.

A API Heartbeat envia solicitações ao servidor várias vezes por minuto. Isso pode resultar em um aumento de carga no servidor e degradação do desempenho. Você pode limitar as chamadas da API Heartbeat usando um plug-in, adicionando ganchos do WordPress ou definindo constantes do WordPress.

O desempenho sólido do site é vital, mas a segurança também. O iThemes ajudará a proteger todas as áreas do seu site WordPress, para que sua empresa permaneça online, aconteça o que acontecer. Descubra como você pode proteger sua presença online, incluindo autenticação multifator, monitoramento de alteração de arquivo e verificação de vulnerabilidade, com o iThemes Security Pro.