Todas as docs

Início

  1. 01Primeiros passos
  2. 02Instalação
  3. 03Rastreamento

Recursos

  1. 04O painel
  2. 05Metas
  3. 06Links curtos
  4. 07Origens e agentes de IA
  5. 08Relatórios por email
  6. 09Verificação agendada
  7. 10Pergunte à sua IA

Referência

  1. 11Configuração
  2. 12API HTTP

Plataformas

  1. 13Servidor independente
  2. 14PHP
  3. 15WordPress
  4. 16Drupal
  5. 17Craft CMS
  6. 18Python
  7. 19Rails
  8. 20Ruby
  9. 21Go
  10. 22Java
  11. 23.NET
  12. 24Elixir
  13. 25Rust

Confiança

  1. 26Privacidade

Plataformas

WordPress

Meça um site WordPress com o Runlight e veja quando agentes de IA o leem.

O plugin do Runlight roda o Runlight dentro de um site WordPress, com o painel em /runlight no próprio site e os números no banco de dados dele. Ele também pode enviar para um Runlight que você roda em outro lugar, seja o servidor independente ou um app com o Runlight montado, para que um só painel cubra vários sites.

O que ele faz

  • Adiciona o script do Runlight a todas as páginas. Numa página a que o WordPress responde com 404, o script também registra um evento chamado 404 com o caminho da página que não existe, então as propriedades de 404 no quadro Eventos listam os endereços quebrados que as pessoas acessaram e com que frequência.
  • Deixa de fora as visitas dos próprios administradores, a menos que você desative isso.
  • Registra agentes de IA como ChatGPT e Claude quando eles leem suas páginas. Agentes não rodam JavaScript, então o script não consegue vê-los, e o plugin os registra no servidor depois que a página é enviada.
  • Adiciona ao menu de administração um item Runlight que mostra o painel deste site no wp-admin.

Configure

Instale o plugin e ative-o, com wp plugin install runlight --activate ou em Plugins, Adicionar novo. Ele abre a tela de configuração, e nada é contado até você escolher onde o Runlight roda. Clique em Run Runlight in this WordPress e ele começa a contar o site.

O item Runlight no menu de administração mostra os números, e o botão Open in Runlight abre o painel completo em /runlight no seu site. Ali você pode adicionar metas, funis, links curtos e relatórios por email, e importar o histórico do Umami. Quem pode gerenciar opções, os administradores por padrão, é proprietário deste Runlight, e todos os outros precisam entrar no WordPress.

Rodar o Runlight dentro do WordPress exige PHP 8.2 ou mais recente com as extensões mbstring e openssl. A página de configurações, em Configurações, Runlight, avisa quando falta alguma coisa.

Onde os números ficam guardados

Quando o banco de dados do WordPress é MySQL 8.0.20 ou mais recente, ou MariaDB 11.4 ou mais recente, o Runlight guarda os números ali pela própria conexão do WordPress, então seus backups do banco de dados os incluem. As tabelas levam o prefixo de tabelas do WordPress, como wp_rl_events, para que outro app ou outro WordPress que compartilhe o banco de dados mantenha as suas. Se já existirem tabelas com esses nomes que não sejam do Runlight, ele usa um arquivo SQLite. Fora isso, os números vão para um arquivo SQLite em wp-content/uploads/runlight, com um nome que ninguém consegue adivinhar, o que exige a extensão sqlite3 do PHP. Cada site de uma rede sempre ganha um arquivo próprio. A escolha é feita na primeira vez que o Runlight roda e nunca muda, então os números nunca se dividem entre dois lugares.

Desativar o plugin mantém tudo. Excluí-lo remove as tabelas ou a pasta do Runlight, junto com as configurações do plugin, em todos os sites de uma rede. Ele apaga só as tabelas do próprio Runlight, cada uma pelo nome.

Localizações

Os países dos visitantes vêm de um cabeçalho quando uma CDN como a Cloudflare envia um. Caso contrário, ative Show which countries visitors come from em Configurações, Runlight, e o plugin baixa uma vez por mês o banco de dados gratuito de países do DB-IP e o guarda na pasta de uploads. Os endereços são consultados no seu servidor e nunca são enviados a lugar nenhum.

Manutenção de hora em hora

O cron do WordPress roda a verificação agendada do Runlight a cada hora, que cria o salt de cada dia, envia os relatórios por email, apaga as visitas além do período de retenção que você definiu e soma os dias encerrados. O cron do WordPress roda quando alguém visita o site, então num site com pouco movimento ele pode atrasar, o que só atrasa os relatórios. Sites que desativam o cron do WordPress e chamam wp-cron.php a partir de um cron de verdade recebem a verificação nesse horário. Quando a verificação não roda há mais de um dia, a página de configurações avisa.

Relatórios por email

Quando um plugin de SMTP ou de e-mail está ativo no WordPress, como WP Mail SMTP, FluentSMTP, Post SMTP ou Easy WP SMTP, o Runlight envia seus relatórios por email e e-mails de teste pelo WordPress, a partir do endereço de e-mail do administrador e com o nome do site. Configurações, Serviço de e-mail no painel passa então a dizer qual plugin os envia. O WordPress sozinho envia com o mail() do PHP, que muitas vezes cai no spam ou não chega a lugar nenhum, então sem um plugin assim o painel pede que você configure um serviço de e-mail ali. Você também pode escolher outro serviço enquanto um plugin está ativo, e voltar depois ao envio do WordPress pelo mesmo lugar. O painel não oferece servidor SMTP no WordPress, já que um plugin de SMTP cuida disso e o Runlight envia por esse plugin.

Endereços dos visitantes

O Runlight conta os visitantes com um hash diário do endereço deles e limita a frequência com que um endereço pode enviar. O próprio plugin descobre o endereço, então nenhum visitante consegue escolher um. Ele pega o endereço de onde veio a requisição, a menos que seja o próprio servidor ou uma rede privada, onde um proxy no mesmo host repassou a requisição. Nesse caso, pega o endereço público mais próximo em X-Forwarded-For, ao qual cada proxy acrescenta o seu. Quando esse endereço é da Cloudflare, ele pega o endereço do visitante no cabeçalho CF-Connecting-IP da Cloudflare. Uma hospedagem que sabe mais pode informar isso com o filtro runlight_client_ip.

php

add_filter( 'runlight_client_ip', function ( $ip, $server ) {
    return $server['HTTP_X_REAL_IP'] ?? $ip;
}, 10, 2 );

Com links permanentes simples, um servidor como o Apache só envia index.php ao WordPress, então o Runlight responde em /index.php/runlight, que funciona em qualquer servidor, e a página de configurações mostra esse endereço. Escolher qualquer outra estrutura em Configurações, Links permanentes passa o endereço para /runlight.

Envie para um Runlight que você roda em outro lugar

  1. Na tela de configuração do plugin, em Connect to a Runlight you run elsewhere, informe o endereço em que esse Runlight responde, como https://stats.example.com para o servidor independente ou https://example.com/runlight para um app com o Runlight montado. O Runlight mostra esse endereço em Configurações, Instalação, como Endereço do Runlight.
  2. Clique em Connect. Seu Runlight pede que você entre, se ainda não entrou, e depois pede que você permita a conexão para o site que conta este domínio. Se nenhum site o conta ainda, ele oferece adicionar um quando os sites são gerenciados no painel, como no servidor independente.
  3. Clique em Allow. O Runlight manda você de volta ao WordPress com todas as configurações preenchidas, e o item Runlight no menu de administração mostra os números deste site.

A conexão dá duas chaves ao plugin. A chave de agentes informa os agentes de IA que leem suas páginas, e ela só pode informar leituras deste site, então não consegue ler suas estatísticas nem escrever em outro site. A chave do painel mostra o painel deste site no wp-admin, somente leitura, então trate-a como uma senha. A chave do painel aparece no Runlight em Configurações, API e IA, onde excluí-la desativa o painel no wp-admin.

A conexão exige o wp-admin em HTTPS, ou em localhost enquanto você faz testes, já que o Runlight só manda as pessoas de volta para endereços assim. Num app com o Runlight montado, o site já precisa estar em hostnames (veja Configuração), porque ali os sites são definidos no código.

Informe as configurações à mão

Cada configuração do plugin corresponde a um valor no Runlight, em Configurações, Instalação, na seção WordPress, Drupal e Craft, com um botão para copiá-lo. Copie Endereço do Runlight, Chave de agentes e Chave do painel para os campos correspondentes do plugin (Runlight address, Agents key e Dashboard key) e salve. O Runlight mostra a chave do painel uma única vez, então crie uma nova se perdê-la. O Id do site (Site id no plugin) só é necessário quando esse Runlight não consegue reconhecer este site pelo domínio. Quando você salva, o plugin confere se o endereço responde e informa o resultado.

Contagem

Em Counting, Count clicks on links to other sites registra cada clique num link para outro site como um evento chamado Outbound link, e Count file downloads registra cada clique num link para um arquivo, como um PDF ou um zip, como um evento chamado File download. Os dois ficam ativos até você desativá-los.

O painel no wp-admin

Com o Runlight dentro do WordPress, o item Runlight no menu de administração mostra o painel inteiro no wp-admin, o mesmo de /runlight, com as configurações, as metas e os links curtos. Só páginas do seu próprio site podem exibi-lo num frame, então quando o wp-admin é servido de um endereço diferente do site, como com www. em um deles, a página abre o painel numa nova aba.

Com um Runlight em outro lugar, o item Runlight mostra o painel deste site na mesma visualização somente leitura que um link de compartilhamento mostra, com os relatórios e os intervalos de datas e sem as configurações, os links curtos, as pessoas ou os outros sites do Runlight. O botão Open in Runlight abre o painel completo no seu próprio Runlight.

Com um Runlight em outro lugar, o endereço de onde o wp-admin é servido precisa estar entre os domínios do site no Runlight, já que só uma página de administração num deles pode exibir o painel. A conexão cuida disso, e um www. no início não faz diferença. A chave nunca chega ao navegador. Cada vez que um administrador abre a página, o servidor do plugin envia a chave e a origem do administrador ao Runlight e recebe de volta um ticket que abre o painel uma vez, dentro de cinco minutos. A página carrega o painel do seu Runlight num frame que só esse administrador pode exibir. O frame mantém a sessão na página por uma hora, sem cookies, então navegadores que bloqueiam cookies em frames também o mostram. Quando a hora acaba, o frame avisa e recarrega a página quando você pede. Excluir a chave em Configurações, API e IA do Runlight desativa a chave e todas as sessões abertas na hora. Seu Runlight precisa ser servido por HTTPS quando o wp-admin é, ou o navegador recusa o frame.

Caches de página

Alguns plugins de cache servem as páginas direto do servidor web sem rodar PHP, como o WP Super Cache no modo avançado. Essas páginas continuam incluindo o script, então as visitas são contadas. O WordPress nunca roda nessas requisições, então as leituras de agentes de IA em páginas em cache não são informadas. Caches que passam pelo PHP, como o WP Rocket e a maioria dos caches das hospedagens, informam as leituras de agentes normalmente.