Meu site está contando visualizações de visitantes em determinadas páginas. Percebi que o Google e outros Bots estão "clicando" no meu site como loucos e algumas páginas têm contagens de visualizações irrealistas (em comparação com as produzidas por humanos).
Estou pedindo as melhores práticas para excluir esses bots da minha contagem de visualizações. Obviamente, um simples "agente do usuário" contém "bot" não fará isso.
Não acho que exista uma solução à prova de balas nem preciso de uma.
Nota: Estou usando PHP + MySQL.
php
mysql
web-crawlers
best-practices
eisberg
fonte
fonte
Respostas:
Fico feliz que você saiba que não haverá uma maneira à prova de balas para fazer isso. Isso significa que sua perspectiva é pelo menos realista.
Como o JavaScript não é uma opção, eu diria que você fica com:
Verifique o user agent para a palavra "bot" nele. Isso vai pegar a maioria deles.
Compile uma lista de bots conhecidos e filtre-os com base em algum tipo de identificador exclusivo, provavelmente o agente do usuário.
Coloque um link oculto no rodapé do site que direcione para uma página que coleta agentes do usuário e / ou endereços IP. Os usuários não verão isso, mas os robôs verão. Portanto, quem visitar essa página será um bot. Registre-os e bloqueie-os de suas estatísticas.
fonte
Existem três maneiras bastante simples:
UPDATE: Googlebot e alguns dos principais bots não executar JavaScript nestes dias. Portanto, o uso da opção nº 2 não é mais viável. No entanto, isso significa que usá-lo em conjunto com o nº 3 deve ser bastante confiável, pois você pode excluir facilmente a maioria dos bots usando JS e, no lado do servidor, excluir os principais bots, como o Googlebot, que executam JS.
Também conforme mencionado nos comentários, você pode tentar usar a API do Google Analytics para exibir visualizações para cada página.
fonte
Se você usar o Javascript para contar visualizações, a maioria dos bots não executará e, portanto, não será incluído nas contagens de visualizações. Esta resposta pode estar próxima do que você deseja /programming/1973448/how-can-i-count-a-page-views
fonte
Minha abordagem envolve duas passagens:
Mozilla|Opera|PSP|Bunjalloo|wii
. Graças ao agente do usuário que falsifica, essa verificação detecta quase todos os navegadoresbot|crawl|slurp|spider
Portanto, se o primeiro passo for passado, assumimos que é um navegador e que existe um visitante real por trás dele. Como eu descobri, alguns bots fingem ser
Mozilla
compatíveis e iniciam sua string de agente de usuário com ele. É por isso que o segundo passe pode ser útil e eliminá-los.fonte
Eu uso apenas a exclusão de análise de agente de usuário simples. Ele elimina 99% dos bots que entram nas minhas páginas.
fonte
Você pode usar uma imagem como um contador. Nesse caso, ela não conta bots e o nome da página é passado como uma consulta com o nome da imagem.
Estou usando isso no img.php, que atualiza a exibição da página no banco de dados:
fonte