Como usar o Ajax no WordPress para acelerar o carregamento do servidor

Como usar o Ajax no WordPress para acelerar o carregamento do servidor

O desempenho é um dos elementos essenciais que você precisa ter em mente ao cuidar do seu site. Problemas de velocidade podem afetar a experiência do usuário, o SEO e o ranqueamento nos mecanismos de busca, já que o Google usa o tempo de carregamento de uma página como critério de classificação. Por isso, é essencial gerenciar esses problemas usando o Ajax WordPress.

Mais precisamente, quando pensamos no desempenho de um site, é normal pensar no tempo de carregamento dele. E no WordPress, problemas com tempo de carregamento podem ser causados por picos no arquivo admin-ajax.php.

Neste artigo, você saber mais sobre este importante arquivo e aprender como gerenciar conflitos em plugins causados quando ele sofre uma sobrecarga. Falaremos também de alguns métodos para identificar problemas com o arquivo admin-ajax.php, para que você possa reduzir o tempo de solicitação e otimizar o carregamento do seu site. Vamos lá?

O arquivo admin-ajax.php permite que partes do seu site WordPress conversem com o servidor sem ter que recarregar a página inteira. Por exemplo, quando você está escrevendo um post e o WordPress salva automaticamente seu trabalho, é o admin-ajax.php que faz isso acontecer silenciosamente nos bastidores.

Para Que Serve o Arquivo Admin-ajax.php no WordPress?

Em 2013, a versão 3.6 do WordPress chegou e, junto com ela, a API Heartbeat, presente no próprio núcleo da plataforma. A API WordPress Heartbeat é construída como um protocolo de comunicação entre o navegador e o servidor. Ele usa o admin-ajax.php para enviar uma solicitação ao servidor e eventos (chamadas) quando recebe dados. Os recursos principais da API Heartbeat são:

  • Salvamento automático: quando você escreve um conteúdo no WordPress, salva como rascunho e continua trabalhando nele depois, o WordPress salva este conteúdo automaticamente mesmo sem você saber nada.
  • Bloqueio de post e notificação de login: em um site WordPress colaborativo, você vai receber uma mensagem toda vez que você tentar escrever/editar um post que outra pessoa estiver editando. Você também receberá uma notificação quando sua sessão tiver expirado e quando for necessário fazer um login para continuar trabalhando no seu post.
  • Atualizações em tempo real: em temas ou plugins que exibem informações em tempo real, como estatísticas de visitas ou notificações, o admin-ajax.php pode ser utilizado para obter essas informações do servidor sem a necessidade de recarregar a página.
  • Pesquisas dinâmicas: alguns tipos de caixas de pesquisa usam esse arquivo para mostrar resultados de pesquisa enquanto o usuário está digitando, em vez de esperar que eles pressionem enter.
  • Carregamento lazy load de comentários: para sites com muitos comentários em um post, o admin-ajax.php pode ser usado para carregar mais comentários dinamicamente quando o usuário chega ao final da lista, ao invés de carregar todos de uma vez.
  • Votação ou curtidas: Em temas ou plugins que permitem votar em postagens, comentários ou qualquer outro tipo de conteúdo, o admin-ajax.php é usado para registrar o voto sem ter que recarregar a página.

Problemas Que o admin-ajax.php Pode Causar

Sobrecarregar o arquivo admin-ajax.php pode causar um problema no tempo de carregamento de página, o que é grave. A regra de ouro da internet é que o seu site deve carregar completamente em 3 segundos ou menos; mais que isso, e você pode frustrar os seus visitantes com uma experiência ruim e perdê-los.

Páginas lentas podem também afetar negativamente o seu ranqueamento SEO. Você deve saber que o Google usa a velocidade de uma página como um dos indicadores do algoritmo para ranquear sites.

Além disso, uma página lenta significa que os mecanismos de pesquisas podem rastrear menos páginas do seu site, por conta do chamado orçamento de rastreio alocado.

Para a maioria dos desenvolvedores, o único momento em que lidamos com a API Heartbeat é quando usamos ferramentas de teste de velocidade, como o CTmetrix, para descobrir por que o admin-ajax.php (Ajax PHP) está deixando nosso site lento.

As causas da sobrecarga podem ser de duas origens diferentes: causados por plugins de terceiros ou pela solicitação da API Heartbeat na seção admin. Vamos discutir os detalhes de ambas as hipóteses abaixo.

Como Plugins Podem Sobrecarregar o Arquivo Admin-ajax.php

Se aplicado corretamente, o Ajax é excelente, já que os desenvolvedores podem usá-lo para adicionar funcionalidades aos seus plugins. Por exemplo, os desenvolvedores podem usar requisições do Ajax e criar um wp_query customizado para exibir um conteúdo dinâmico ou página em cache.

Ainda assim, plugins de terceiros são a causa mais comum de sobrecarga no admin-ajax.php.

Isso porque quando muitos plugins fazem essa consulta simultaneamente, eles podem causar um pico de tráfego e, consequentemente, criar uma sobrecarga que deixará todo o site mais lento. Se você é um desenvolvedor, o link a seguir apresenta os recursos apropriados para implementar Ajax em plugins.

Por outro lado, se você for responsável por um site, é necessário diagnosticar os plugins problemáticos antes de desativá-los. Isto é importante para descobrir se um plugin em particular está causando a lentidão do site.

Diagnosticando Plugins

Como vimos acima, plugins problemáticos podem causar transtornos no tempo de carregamento do site. A velha guarda diria que você sempre pode desativar todos os plugins para corrigir o problema, e reativar um por um usando o processo de tentativa e erro. Mas essa definitivamente não é uma boa solução: nós usaremos um método mais apropriado para descobrir a causa raiz do problema.

Ao ativar vários plugins, você vai notar que o seu site precisará de mais tempo para carregar completamente. Você pode diagnosticar isso usando o site GTmetrix. Ele é uma ferramenta de teste de velocidade poderosa que nos permite ver os dados de resposta de posts individuais.

Método 1: GTmetrix

Acesse a página do GTmetrix, preencha com a URL do seu site e clique em Analyze. Pode levar um pouco de tempo até que a análise seja finalizada.

página principal do GTmetrix

Quando finalizar, você receberá um relatório completo com as condições do seu site incluindo performance e detalhes da página. Acesse a aba Waterfall e inspecione os elementos do site com mais detalhes.

janela de diagnóstico GTmetrix

A aba Waterfall vai mostrar todos os elementos presentes no seu site. Enquanto parece estar tudo certo com os demais arquivos, você vai notar que o POST admin-ajax.php leva mais tempo para carregar.

relatório detalhado do gtmetrix

Clique em POST admin-ajax.php, e você vai ver outras quatro abas diferentes disponíveis: Headers, Parameters, Post e Response. Para diagnosticar seus plugins, as abas de Post e Response são as que você precisa conferir.

Para este exemplo, encontramos uma pista na aba Post: uma solicitação relacionada ao script “count_hit”.

detalhes do post

Esta pista nos faz suspeitar de um plugin, chamado “Count Hit”, que instalamos anteriormente. Então, para provar a teoria, nós desabilitamos o plugin e fizemos mais um teste com o GTMetrix no nosso site.

exemplo de plugin com problemas afetando tempo de carregamento do site

Assim, comprovamos a nossa dúvida: ao desativar este plugin, nós reduzimos o tempo de carregamento da página para pouco mais de 2 segundos.

Método 2: Google Chrome

Você também pode usar o console do desenvolvedor do Google Chrome para encontrar plugins problemáticos.

Abra o seu site e clique com o botão direito em qualquer lugar da página e selecione a opção Inspecionar. Clique na aba Rede (ou Network, se estiver usando em inglês) e atualize a página.

relatório do chrome sobre admin ajax php

No campo Filtro (logo embaixo do ponto vermelho), digite admin-ajax.php. Você vai ver o culpado pelo problema. Depois disso, você pode desabilitar o plugin em questão e testar se o problema continua existindo.

Se o site é seu e você realmente precisa usar este plugin, tenha certeza que está usando a versão mais recente dele. Caso você já tenha feito isso e o problema persiste, entre em contato com o desenvolvedor do plugin sobre o caso.

Se nem mesmo o desenvolvedor resolver o problema, o melhor a se fazer é substituir o plugin. Essa é uma das maravilhas do WordPress — a variedade de plugins disponíveis.

Basta acessar o diretório de plugins WordPress e escolher os plugins mais usados e recentes que oferecem a mesma funcionalidade.

Analisando a API Heartbeat no Seu Site WordPress

Algumas vezes, a API WordPress Heartbeat acionada no back-end do seu site também podem causar problemas de desempenho.

Como já falamos anteriormente, esta API tem várias funções, como salvar o seu trabalho automaticamente para evitar a perda de projetos inesperadamente ou gerenciar situações de edição simultânea.

Por exemplo, a função será acionada cada vez que você escrever um post e seguir com a aba de edição aberta. Isto pode causar o uso excessivo da CPU do seu site, como você vê nas inúmeras solicitações no painel do desenvolvedor abaixo.

 admin ajax acionado

O uso da CPU é um fator importante para quem usa hospedagem compartilhada. Alguns provedores de hospedagem não toleram excessos nos limites de uso de CPU e podem até levar à suspensão, mas este não é o caso da Hostinger especialmente nos nossos planos de hospedagem WordPress.

Para resolver o problema, você pode fazer duas coisas: desativar a API ou aumentar o intervalo entre as atividades que ela aciona. Na maioria dos casos, a primeira sugestão não é uma opção, então o mais recomendado é optar por um aumento no intervalo das atividades acionadas pelo recurso.

Dica

Para saber mais sobre como administrar os intervalos de atividade, confira nosso tutorial sobre a API Heartbeat.

Conclusão

Neste artigo, você aprendeu sobre a API Heartbeat e sobre o admin-ajax.php, dois elementos muito importantes para qualquer site WordPress.

Você também aprendeu que sobrecargas causadas por plugins problemáticos podem causar lentidão no seu site. Além disso, mostramos que a própria API Heartbeat pode criar problemas com seu servidor de hospedagem se você não gerenciá-la corretamente.

Lembre-se de sempre checar o GTmetrix caso sinta que o seu site está lento. Abra a aba Waterfall, navegue até POST admin-ajax.php e veja como estão as coisas por ali.

Não desative todos os seus plugins de uma vez, pois nem sempre eles são os culpados. Mas se algum plugin for identificado como o problema, substitua-o. Outra alternativa é limitar o uso da API Heartbeat.

Você já passou por algo parecido com o admin-ajax.php? Deixe um comentário aqui abaixo!

Author
O autor

Ariane G.

A Ariane é SEO Team Leader com experiência em conteúdo, localização e SEO. Seu desafio é levar a Hostinger ao topo dos resultados no Brasil, França e Reino Unido. Eventualmente ela compartilha seu conhecimento no blog e nos tutoriais da Hostinger e no tempo livre ela gosta de explorar lugares novos e viver intencionalmente.