Muito acesso e nenhuma venda: como analisar logs do servidor para separar cliente de robô antes de comprar capacidade
Leia logs de acesso do servidor por user-agent, IP e ritmo para identificar clientes reais, buscadores, raspadores e bots antes de comprar capacidade.
2026-09-17 · Equipe · 14 min de leitura
Antes de perguntar se a VPS aguenta o tráfego, pergunte se esse tráfego merece ser atendido: o log de acesso mostra, por user-agent, caminho pedido e ritmo por IP, se quem está pesando é cliente, buscador, raspador de preço ou enxurrada de requisições sem intenção de compra.
Analisar logs do servidor para separar cliente de robô é ler o arquivo de acesso da máquina e contar quem pediu o quê, quando e em que ritmo. É o passo que vem antes de qualquer decisão de capacidade: sem essa separação, dá para pagar por máquina maior só para atender melhor quem nunca ia comprar.
Todo termo técnico abaixo vem explicado na primeira aparição.
Por que o site fica pesado se o Analytics mostra quase ninguém
A resposta direta: o Google Analytics e o log do servidor contam coisas diferentes, e quem manda na conta de recurso é o log. Não há erro de medição aí — há diferença de escopo.
O Analytics só registra quem carrega a página e executa o JavaScript de medição no navegador. Robô, raspador e script não executam esse JavaScript: pedem o HTML, pegam o que queriam e vão embora. Para o relatório, a visita nunca aconteceu. Para o servidor, ela consumiu processador, memória e banco como qualquer outra.
Visitante humano também some do relatório por outros motivos — bloqueador de anúncios, recusa do banner de consentimento, aba fechada antes do carregamento. Por isso a diferença entre as duas contagens nunca é só robô, e o que interessa aqui é descobrir qual parte dela é.
O log de acesso é o arquivo em que o servidor web anota cada requisição recebida, venha de quem vier. Ele conta tudo, inclusive o que o Analytics não vê.
E requisição não é visitante: é cada pedido individual feito ao servidor. Uma única página de produto costuma gerar várias — o HTML, o CSS, cada imagem, cada arquivo JavaScript, cada chamada de API que o tema dispara.
Por isso “pouca gente no Analytics e servidor no talo” é um cenário comum, não um mistério.
Onde fica o log de acesso e o que cada campo de uma linha significa
Nos caminhos usuais: /var/log/nginx/access.log no nginx e /var/log/apache2/access.log no Apache em sistemas Debian e Ubuntu — em distribuições da família Red Hat, o Apache costuma escrever em /var/log/httpd/access_log. Em hospedagem gerenciada você raramente tem terminal, mas o painel quase sempre oferece o download do arquivo.
No formato combinado, o padrão da maioria das instalações, cada linha traz, entre outros campos: IP de origem (o primeiro da linha), data e hora, método e caminho pedido, código de resposta, bytes enviados, referenciador (a página de onde veio o clique) e user-agent.
O user-agent é o texto que o programa cliente envia se identificando — um navegador, um robô de busca ou uma biblioteca de script. Guarde isto, porque muda tudo mais adiante: é uma declaração, não uma prova. Qualquer um pode escrever ali o que quiser.
O código de resposta, em uma linha cada: 200 entregue, 301 e 302 redirecionado, 404 o caminho não existe, 429 recusado por excesso de pedidos, 5xx erro do servidor.
Se a loja está atrás de CDN ou proxy, o IP da linha pode ser o do intermediário, não o do visitante — e aí toda contagem por IP vira uma só linha gigante. O IP real chega no cabeçalho X-Forwarded-For, e o log precisa estar configurado para registrá-lo. Esse cabeçalho também é forjável: só confie nele quando a requisição vier do seu próprio CDN ou proxy. Confira isso antes de tirar conclusão de qualquer ranking.
Se o log já foi rotacionado e comprimido (arquivos terminados em .gz), o histórico do dia ruim continua ali e pode ser lido sem descompactar, com zcat e zgrep. É justamente esse dia que interessa.
Os quatro perfis de carga e a assinatura de cada um no log
Quatro perfis explicam quase todo volume de uma loja. Cada um deixa um rastro diferente:
| Perfil | Caminhos pedidos | User-agent | Ritmo por IP | Arquivos estáticos | Rastro de conversão |
|---|---|---|---|---|---|
| Cliente real | Sequência lógica: categoria → produto → carrinho | De navegador | Irregular, com pausas de leitura | Puxa CSS, imagem e JavaScript junto com a página | Aparece no Analytics; alguns chegam ao checkout |
| Rastreador de buscador | Varredura em largura do catálogo | Identificado (Googlebot, Bingbot) | Espaçado e distribuído por várias faixas de IP do buscador | Puxa CSS e JavaScript para renderizar, mas com cache próprio: proporção diferente da de um navegador | Nenhum: ignora carrinho e checkout |
| Raspador de catálogo ou preço | Só produto e categoria, muitas vezes paginação em ordem | De biblioteca (python-requests, curl, Scrapy) ou de navegador copiado | Constante, sem pausa humana | Costuma ignorar CSS e imagem | Nenhum |
| Enxurrada de requisições | Repete o mesmo caminho ou bate em caminhos que não existem | Qualquer coisa, às vezes vazio | Altíssimo em janela curta | Nenhum | Nenhum, e com pico de 404 e 5xx |
O detalhe mais útil da tabela é a coluna dos arquivos estáticos. Navegador de gente puxa a página e tudo que ela referencia; script quase sempre quer só o HTML. Uma proporção estranha entre páginas pedidas e imagens pedidas é um dos indícios mais baratos que existem.
E a regra de leitura honesta: assinatura é indício, não veredito. Combine três sinais — caminho, ritmo e estáticos — antes de concluir qualquer coisa. Buscador se confirma pelo IP, nunca pelo user-agent, porque o texto “Googlebot” é trivial de forjar; o como está na próxima seção.
Como analisar logs do servidor para separar cliente de robô na prática
A ideia é mais simples do que parece: contar e ordenar. Três contagens respondem quase tudo.
- Quem mais pediu. Conte as linhas por IP e ordene do maior para o menor:
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -20. O topo dessa lista é por onde começar. - Quem diz ser o quê. A mesma receita aplicada ao user-agent mostra se o volume vem de navegador, de robô identificado ou de biblioteca de script.
- O que foi pedido. Contando por caminho, você vê quanto do volume é página de produto, quanto é busca interna, quanto é checkout e quanto é caminho que nem existe na loja.
Depois, o ritmo. Pegue um IP do topo da lista e conte as requisições dele por minuto. O que distingue cliente de script é a cadência: gente lê, hesita e pausa; script tende a manter o mesmo número minuto após minuto.
Para confirmar um buscador legítimo, use DNS reverso: peça o nome associado ao IP e, em seguida, resolva esse nome de volta para IP. Um Googlebot verdadeiro fecha o ciclo em domínio do próprio Google; um forjado cai nessa checagem. Google e Bing também publicam as faixas de IP dos seus robôs, o que serve para a mesma conferência.
Quem não quer linha de comando pode usar o GoAccess, que lê o mesmo arquivo e gera um relatório navegável por IP, user-agent e caminho. A ferramenta muda, a leitura não.
O passo que fecha o diagnóstico é o cruzamento: ponha lado a lado o horário do pico no log, o gráfico do monitoramento da VPS e o que o Analytics registrou no mesmo intervalo. Se o servidor subiu e o Analytics não, você já sabe de que lado procurar.
A medida certa para cada perfil — e o que cada uma não resolve
Cada assinatura tem um tratamento diferente, e cada tratamento tem um limite que vale dizer em voz alta.
Rastreador de buscador pesando demais. Use o robots.txt — o arquivo que diz aos robôs o que não rastrear — para tirar do caminho filtro de catálogo, busca interna e parâmetros de ordenação, que multiplicam URLs. Ele só vale para robô que resolve obedecer: buscador grande respeita, raspador ignora.
Não conte com a diretiva crawl-delay: alguns robôs respeitam, o Google a ignora. O Google também não oferece mais ajuste manual de taxa de rastreamento no Search Console — o que sobra por lá é o relatório de estatísticas de rastreamento, para acompanhar o efeito. Googlebot reduz o próprio ritmo quando o servidor demora a responder ou devolve 429, 500 e 503. O Bing Webmaster Tools ainda tem controle de rastreamento.
Cliente real em volume. Cache de página e CDN na frente: a requisição é respondida sem acordar PHP e banco de dados — é a mesma dupla que sustenta o roteiro de preparar a loja para a Black Friday sem trocar de servidor. É a única medida desta lista que aumenta o que você consegue atender, em vez de reduzir o que entra — com a ressalva de que carrinho, checkout e área logada não são cacheáveis, e é justamente aí que o trabalho pesado continua.
Raspador de catálogo. Limite de taxa por IP no servidor web, respondendo 429 acima do ritmo definido. Bloquear por user-agent conhecido ajuda pouco, porque trocar esse texto é questão de uma linha de código. E assuma o resto: raspador determinado troca de IP. Você não o elimina, só o encarece.
Enxurrada de requisições. Bloqueio na borda, antes de chegar na VPS — filtro do CDN ou do provedor. Filtrar dentro da máquina adianta pouco quando o gasto de receber e processar o pacote já aconteceu.
Limite de taxa mal calibrado barra cliente real, principalmente quando muita gente sai do mesmo IP: rede corporativa, operadora móvel, qualquer NAT. Calibre contra a sua linha de base e comece em modo de registro, sem bloquear, para ver quem cairia antes de deixar alguém cair.
O limite comum a quase todas elas: filtrar reduz o que entra, não aumenta o que a máquina dá conta de produzir. Só o cache empurra o teto para cima, e apenas nas páginas que ele consegue guardar.
Depois de filtrar, refaça a conta: o que sobra é cliente pagante?
Medida aplicada, volte ao log no próximo período comparável e conte de novo. O número que interessa é quanto do volume anterior era tráfego que você não queria atender.
Aí compare o que sobrou com o teto medido da máquina. Se você ainda não mediu, esse número não sai da descrição do plano de hospedagem — sai de um teste de carga.
Do cruzamento saem três desfechos, e só um deles é sobre comprar máquina:
- Sobrou pouco e a VPS folga. Não compre nada. O problema era o que você acabou de tirar do caminho.
- Sobrou cliente real dentro do teto, mas a loja engasga. O gargalo é a aplicação, não a máquina — e trocar de servidor leva o gargalo junto. O roteiro está em como achar o gargalo na sua VPS.
- Sobrou cliente real acima do teto. Aí é capacidade mesmo, e a decisão vira servidor maior ou reforço só no pico.
A ordem não é detalhe: filtrar, medir de novo, depois decidir capacidade.
Por que o SwarmBurst não distingue cliente de robô — e o que isso muda
O agente decide por pressão de recurso: ele observa uso de processador e memória do cluster e dispara o burst quando passa do limiar que você configurou. Burst, em uma frase, é subir nó extra na nuvem pública durante o pico e removê-lo quando a demanda cai, encerrando a cobrança dele ali — o conceito inteiro está em o que é cloud bursting.
O limite, sem rodeio: pressão de recurso é pressão de recurso. O agente não lê user-agent e não sabe se a requisição veio de cliente ou de raspador.
A consequência é direta. Se o que satura a VPS é tráfego lixo, o burst multiplica a conta para servir quem não compra — e a loja continua pesada, porque a fonte não parou. Máquina extra não filtra nada, do mesmo jeito que subir réplica dentro da mesma VPS não cria capacidade que não existe.
Onde o burst é a resposta certa: quando, já filtrado, o que sobra é cliente real acima do teto medido da VPS e concentrado em janelas curtas — campanha, lançamento, uma das datas sazonais do e-commerce brasileiro. Quando não é: se o pico dura o mês inteiro, a conversa passa a ser comparar com aumentar o plano — ou com manter tudo na nuvem em tempo integral.
Se você já filtrou, já mediu e o que sobra continua acima do teto, a conversa começa pelos seus números:
Quero o piloto do primeiro pico
É uma conversa no WhatsApp, sem compromisso. A gente diz na hora se o seu caso encaixa.
Perguntas frequentes
Por que o Google Analytics mostra pouca gente e o servidor está no limite?
O Analytics só registra quem carrega a página e executa o JavaScript de medição no navegador. Robôs, raspadores e scripts não executam esse JavaScript: pedem o HTML e saem. Para o relatório, essas requisições nunca aconteceram. Para o servidor, elas consumiram processador, memória e banco como qualquer outra. O log de acesso registra tudo que chega ao servidor, independentemente de origem, por isso mostra muito mais volume que o Analytics.
Como saber se o tráfego que derrubou minha loja era cliente de verdade ou robô?
Compare três sinais no log de acesso: quem mais pediu (conte requisições por IP), quem diz ser o quê (user-agent), e o que foi pedido (caminhos acessados). Cliente real segue sequência lógica de categoria para produto para carrinho, puxa arquivos estáticos junto e tem ritmo irregular com pausas. Raspador e script repetem caminhos, ignoram CSS e imagem, e mantêm ritmo constante sem pausa humana.
Para confirmar buscador legítimo, use DNS reverso: peça o nome associado ao IP e resolva de volta para IP. Um Googlebot verdadeiro fecha o ciclo em domínio do Google. Também compare com as faixas de IP publicadas pelo Google e Bing. Finalmente, cruze o horário do pico no log com o gráfico de monitoramento da VPS e o que o Analytics registrou: se o servidor subiu e o Analytics não, você já sabe de onde vem o tráfego.
O Googlebot pode derrubar meu site — e dá para pedir que ele acesse menos?
O Googlebot só derruba seu site se passar por caminhos que multiplicam URLs exponencialmente, como filtros de catálogo, busca interna e parâmetros de ordenação. Use o robots.txt para tirar esses caminhos. Não conte com a diretiva crawl-delay: Google a ignora. O Google também não oferece mais ajuste manual de taxa de rastreamento no Search Console, mas reduz o próprio ritmo quando o servidor demora a responder ou devolve 429, 500 e 503. O Bing ainda oferece controle de rastreamento no Bing Webmaster Tools.
Bloquear raspador de preço por user-agent funciona?
Ajuda pouco. Trocar o user-agent é questão de uma linha de código no script do raspador. Um limite de taxa por IP no servidor web, respondendo 429 acima do ritmo definido, é mais efetivo. Mas assume o resto: raspador determinado troca de IP. Você não o elimina, só o encarece.
Vale a pena filtrar o tráfego antes de contratar um servidor maior?
Sim. Depois de aplicar uma medida de filtragem, refaça a contagem no log e compare o que sobrou com o teto da sua máquina. Se sobrou pouco e a VPS folga, não compre nada — o problema era o tráfego que você tirou. Se sobrou cliente real dentro do teto mas a loja engasga, o gargalo é a aplicação. Se sobrou cliente real acima do teto, aí é capacidade. A ordem importa: filtrar, medir de novo, depois decidir capacidade.