Bezoeken loggen, "nep" bezoekers filteren
Komende uit 'Mountain View' is het de Google Bot etc.
Die "nep" bezoekers bezoeken 1 pagina en zijn dan weer weg.
Graag wil ik voor mezelf de "nep" bezoekers eruit kunnen filteren. Maar het komt natuurlijk ook voor dat iemand via Google op de website komt, de pagina bekijkt en denkt "he! dit is niet wat ik zoek". Dus filteren op slechts één bekeken pagina gaat niet.
Hoe zou ik dit dus het beste kunnen doen?
Is het een idee om elke x aantal seconden met ajax een bestandje aan te roepen wat de tijd update 'tot wanneer' de bezoeker op de website is? Of werkt zoiets niet?
Verder is het het beste voor de performance om met een timeout te werken van 3 tot 5 minuten, en bij te houden of iemand binnen deze tijd nog een view doet.
Ramon van Dongen op 20/08/2015 17:10:29:
... 'tot wanneer' de bezoeker op de website is?
Interessant, maar hoe kom je daar achter?
Je kunt er dan hooguit 4 seconden naast zitten. Toch?
Dat iemand namelijk maar één pagina bezoekt hoeft namelijk geen probleem te zijn. Maar of hij dat voor 3 seconden doet of voor 8 minuten, is nogal een verschil.
Gewijzigd op 20/08/2015 17:23:23 door Ramon van Dongen
maar hoe doe je dat voor een bot, die voeren geen javaScript uit, en wat als iemand JavaScript blokkeert?
Gewijzigd op 20/08/2015 17:29:57 door - SanThe -
http://www.robotstxt.org/db/all.txt
Edit: Voorbeeld:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$ua = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']) : NULL;
if($ua && in_array($ua, $botList)) {
// this is probably a bot
}
?>
$ua = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']) : NULL;
if($ua && in_array($ua, $botList)) {
// this is probably a bot
}
?>
$botList moet je zelf aanmaken.
Gewijzigd op 20/08/2015 17:36:51 door DavY -
PiWik doet precies wat je wilt en meer en dat met 1 include in PHP (eigen hosting).
Maar het blijft natuurlijk mooi om zelf ook te proberen.
@DavY; Bedankt. Daar kan ik wel wat mee. Een groot gedeelte is er zo al uitgefilterd. Dus het gedeelte van de Bots is dan al weg.
Voor het 'hoe lang een bezoeker aanwezig is' ben ik nu wat aan het pielen.
Dit werkt op zich al. Nu alleen nog een bezoek_ID meegeven.
Ik zou het niet aanraden, en zeker niet als je geen eigen server hebt. De kans dat je de server omlaag trekt is vrij groot.
De optie om het met een timeout via PHP op te slaan is behoorlijk minder zwaar.
Gewijzigd op 22/08/2015 10:37:35 door - Ariën -
1,5 seconden moet makkelijk naar 5 seconden kunnen of misschien zelfs 10. Nu om te proberen met klein scriptje even op 1,5 seconden gezet.
Het is geen hele drukke site. Zou iedere 5 seconden dan nog voor echt problemen kunnen zorgen?
Ook als je meer bezoekers hebt krijg je meer schrijfacties.
Ik zal het inderdaad goed moeten monitoren dat het niet te zwaar wordt en dan het script eruit moeten halen.
Waarom wil je het aantal bezoekers 'precies' weten? En waarom niet bijhouden per bezoeker of hij de laatste 3 minuten nog actief is, via een schrijfactie bij elke view?
Dus de pagina bezoeken zonder dat er iets gedaan wordt.
Uiteraard wordt dan aangenomen dat als iemand op de pagina is dat ze dan ook aan het kijken zijn. Maar de pagina kan ook open staan terwijl ze ondertussen ergens anders koffie zitten drinken. Dat terzijde.
Ik raad het niet aan om het hef in eigen hand te nemen, tenzij je een goed geoptimaliseerde server hebt. Op shared hosting zou ik het zeker niet aanraden!!
Mooie inzichten over de bezoekers zijn mooi, maar als door de totstandkoming daarvan de server eruit ligt en bezoekers helemaal niks meer kunnen zien gaat het ook niet helemaal goed.
- Aar - op 20/08/2015 17:26:43:
maar hoe doe je dat voor een bot, die voeren geen javaScript uit
Volgens mij heb je een paar nieuwsberichten gemist... ;-)
http://googlewebmastercentral.blogspot.nl/2014/05/understanding-web-pages-better.html
In ieder geval de GoogleBot voert tegenwoordig wel degelijk Javascript (en CSS) uit. Hij vangt zelfs dynamische content die via AJAX in je pagina wordt geïnjecteerd.
Praktijkvoorbeeld: door een beperking van de templater die ik moet gebruiken, heeft elke pagina dezelfde title-tag. Dat is vervelend voor SEO; daarom wijzig ik op elke pagina de title met javascript. Geen probleem, wordt gewoon verwerkt.