Como funciona
Pixel server-side, classificador determinístico, 9 categorias, e um modo híbrido com JS opcional. Sem cookies, sem fingerprinting.
Arquitetura
Cada hit no seu site dispara o <img> do Radar. O collector PHP recebe o request, captura tudo o que o servidor vê (IP, User-Agent, Referer, headers, URI, timestamp), passa pelo classifier, insere na tabela events particionada por mês, e responde com um GIF transparente de 43 bytes.
Modo pixel-only (default)
O modo padrão. Funciona em qualquer site, qualquer hosting, qualquer browser. Captura:
- IP (com fallbacks pra Cloudflare e proxies).
- User-Agent completo.
- Referer.
- Headers (Accept-Language, Accept).
- Method, URI, host.
- Timestamp com precisão de microssegundos.
- País via Cloudflare ou GeoLite2.
Não captura: nada que dependa de JavaScript. Mas captura todos os hits — humanos sem JS, bots, crawlers, atacantes. É o que diferencia do Plausible/GA.
Modo enriched (Pro+)
Em planos Pro+, você pode adicionar um JS tracker opcional (4kb gzipped) que enriquece os eventos de humanos com dados que só o browser conhece:
- Resolução de tela, profundidade de cor.
- Fuso horário e idioma do browser.
- Performance API: LCP, FCP, TTFB, FID, CLS.
- Profundidade de scroll, tempo na página.
- Cliques em links externos.
O JS manda esses dados pra POST /e/<site_id> e o backend faz merge com o evento server-side via request_id. Bots e visitantes sem JS continuam sendo capturados — eles só não terão os dados enriched.
O classificador (classifier)
Cada request é classificado em exatamente uma de 9 categorias. Não há overlap. A lógica é determinística (regex + reverse DNS + bot_score), não LLM — a gente não queima margem em IA pra classificar coisa que regex resolve.
1. Humano
Visitante real com browser que executa JavaScript ou ao menos parece estar usando um browser comum (Chrome, Firefox, Safari, Edge). Bot_score baixo, UA reconhecível.
2. Verified bot
Crawler legítimo validado por reverse DNS. Pra Googlebot, validamos que o PTR record contém googlebot.com ou google.com. Pra Bingbot, validamos contra search.msn.com. Resultado cacheado por IP por 24h pra performance.
3. AI crawler
Bots de IA modernos. Lista mantida atualizada:
ClaudeBot · GPTBot · OAI-SearchBot · PerplexityBot
YouBot · Anthropic-AI · cohere-ai · Bytespider · Applebot
Esta categoria explodiu em 2025-2026 com a adoção massiva de IA. Saber quem te crawleia é importante pra SEO em 2026.
4. SEO crawler
Bots de ferramentas de SEO: Ahrefs, SEMrush, Moz, MJ12bot, DotBot, Screaming Frog, Sogou. Geralmente úteis, mas alguns consomem muita banda — vale monitorar.
5. Feed reader
Leitores de RSS/Atom: Feedly, Inoreader, FreshRSS, NewsBlur, FeedFetcher, SimplePie, Tiny Tiny RSS. Indicador de audiência fiel.
6. Health check
Monitores de uptime: UptimeRobot, Pingdom, StatusCake, HetrixTools, UptimeMonster. Geralmente os seus próprios — bom pra confirmar.
7. WP interno
Tráfego do próprio WordPress (cron internos, REST API self-calls, etc.) — UA prefixo WordPress/. Útil pra distinguir tráfego "real" de overhead da plataforma.
8. Atacante
Tudo que tem bot_score ≥ 70. Sinais: empty UA, padrões de vuln scanner conhecidos, headless markers, alta frequência, varredura de paths sensíveis (/wp-admin/, /xmlrpc.php, /.env).
9. Desconhecido
UA presente mas não classificável (bot_score entre 30 e 70). Bots raros, custom UAs, ferramentas internas. Catch-all que não inflaciona "Atacante" com false positives.
Bot score
Cada request recebe um bot_score de 0–100 calculado por sinais combinados:
- UA vazio ou suspeito (+30).
- Padrões headless conhecidos (HeadlessChrome, PhantomJS) (+25).
- Inconsistência entre UA e headers Accept-Language/Accept (+15).
- Frequência alta da mesma IP em pouco tempo (+10 a +30).
- Acessos a paths sensíveis (
/wp-admin/,/xmlrpc.php,/.git/) (+20). - JA3/JA4 fingerprint match com botnet conhecido (+40).
A lógica é a mesma do SysWP Shield — reaproveitamos o classificador.
Privacidade by design
- IPs são anonimizados por padrão (apagamos o último octeto antes de armazenar).
- Sem cookies de tracking, sem fingerprinting.
- Geo só de país (não cidade, não coordenadas).
- Sem cruzamento com data brokers.
- Visitantes individuais não são perfilados — relatórios são sempre agregados.
Detalhes em Dados que coletamos e na Política de Privacidade.