Le trafic de votre site à diviser par 3 selon Marie Claire

Nouveau WRInaute
Bonjour à tous,

Ce mois-ci, dans la magazine Marie Claire (une pointure en matière de webmarketing :lol: ), on peut lire cette phrase :

38%, c'est la part de trafic online représentée par les internautes humains. Les 62% restants qui font marcher le Web sont des "Bots", c'est à dire des robots d'indexation ou des programmes pour spammer.

Bon ça, c'est fait... Sauf qu'un de mes clients m'amènent cet article (oui, perso je lis pas Marie Claire sans y être forcé :mrgreen: ) et me sort que mes objectifs ne sont pas atteints. J'ai répondu 2-3 trucs techniques et là j'ai eu des "Euh... BAh ... Euh... ah bon ? ... Ah d'accord....".

Mais, de nature à vérifier quand je ne suis pas certains voici mes questions :

- Selon vous, est-ce qu'il y a une part de vrai et est-ce que ça concerne tous les sites ?
Personnellement j'avais plutôt repéré +/- 10% sur les sites qui génèrent le plus de trafic

- Est-ce que Google Analytics enregistre le trafic généré par Google Bot ?

- Est-ce que vous connaissez des marqueurs pour repérer le trafic exact des robots ? (Pour vérifier).

Merci d'avance,

A bientôt,
 
WRInaute accro
Marie-Claire a parfaitement raison si on raisonne par rapport au trafic enregistré par les logs serveurs. C'est pour cela que le trafic analytics est largement inférieur. Je te laisse deviner ce qui différencie fondamentalement un visiteur enregistré par analytics d'un bot, y compris celui de Google :D
 
WRInaute passionné
blueviseo a dit:
un de mes clients m'amènent cet article (oui, perso je lis pas Marie Claire sans y être forcé :mrgreen: ) et me sort que mes objectifs ne sont pas atteints.
Ah ouais... quand même... :lol:

+1 Marie-Aude, ça dépends de quelles stats on parle...

Il y a des bots, oui, ça existe... mais de là à dire que ça représente 62% du trafic d'un site web... C'est uniquement si les stats sont brutes.

Un script PHP qui enregistre les IP's et le nombre de pages vues peut capter tout le trafic d'un site, robots compris. Ça permettrait de comparer avec les données de GA qui sont moins conséquentes car le tag JS fait déjà un premier tri.
 
WRInaute accro
Bonjour

En m'aidant de commentaires sur le PHP Manual, çà fait déjà un bout de temps, que j'ai programmé cet ensemble de fonctions, dont la fonction is_bot() , qui indique si l'adresse ip ( v6 ou v4 ), est celle d'un bot.

Le problème ( je crois ) est que les adresses ipv6, n'ont pas de reverse.

Merci de me signaler les erreurs dans le code ci-dessous.

Très amicalement et respectueusement.

Jean François Ortolo



Code:
<?php

if(!function_exists("validate_ip"))
{
        function validate_ip($ip)
        {
                if((filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE === false))&&(filter_var($ip,   FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 | FILTER_FLAG_NO_PRIV_RANGE| FILTER_FLAG_NO_RES_RANGE) === false))
                {
                        return false;
                }

                return(true);
        }
}

/**
  * Retrieves the best guess of the client's actual IP address.
  * Takes into account numerous HTTP proxy headers due to variations
  * in how different ISPs handle IP addresses in headers between hops.
  */
if(!function_exists("get_ip_address"))
{
        function get_ip_address()
        {
                // check for shared internet/ISP IP
                if(!empty($_SERVER['HTTP_CLIENT_IP'])&&(validate_ip($_SERVER['HTTP_CLIENT_IP'])))
                {
                        return $_SERVER['HTTP_CLIENT_IP'];
                }

                // check for IPs passing through proxies
                if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
                {
                        // check if multiple ips exist in var
                        $iplist = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

                        foreach ($iplist as $ip)
                        {
                                if (validate_ip($ip))
                                {
                                        return $ip;
                                }
                        }
                }

                if (!empty($_SERVER['HTTP_X_FORWARDED'])&&(validate_ip($_SERVER['HTTP_X_FORWARDED'])))
                {
                        return $_SERVER['HTTP_X_FORWARDED'];
                }

                if (!empty($_SERVER['HTTP_X_CLUSTER_CLIENT_IP'])&&(validate_ip($_SERVER['HTTP_X_CLUSTER_CLIENT_IP'])))
                {
                        return $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
                }

                if (!empty($_SERVER['HTTP_FORWARDED_FOR'])&&(validate_ip($_SERVER['HTTP_FORWARDED_FOR'])))
                {
                        return $_SERVER['HTTP_FORWARDED_FOR'];
                }

                if (!empty($_SERVER['HTTP_FORWARDED'])&&(validate_ip($_SERVER['HTTP_FORWARDED'])))
                {
                        return $_SERVER['HTTP_FORWARDED'];
                }

                // return unreliable ip since all else failed
                return $_SERVER['REMOTE_ADDR'];
        }
}

if(!function_exists("ndd_reverse_ip6"))
{
        function ndd_reverse_ip6($remote_addr)
        {
                $array_error    = array();
                $array_ip6      = array();
                $array_ip6_arpa = array();

                $ip_reverse = $remote_addr;

                if(!empty($remote_addr))
                {
                        $array_ip6 = preg_split("{:}", $remote_addr);

                        $tmp_count = 8;

                        for($i = 0; $i < count($array_ip6); $i++)
                        {
                                if(!empty($array_ip6[$i]))
                                {
                                        $tmp_count--;
                                }
                        }

                        $j = -1;
                        $k_count = 0;

                        for($i = count($array_ip6) - 1; $i >= 0; $i--)
                        {
                                if(!empty($array_ip6[$i]))
                                {
                                        unset($tmp);
                                        $tmp = substr("000". $array_ip6[$i], -4);

                                        $j++;
                                        $array_ip6_arpa[$j] = $tmp;
                                }
                                else
                                {
                                        unset($tmp);
                                        $tmp = "0000";

                                        while($k_count < $tmp_count)
                                        {
                                                $j++;
                                                $array_ip6_arpa[$j] = $tmp;

                                                $k_count++;
                                        }
                                }
                        }

                        $tmp_ip6_arpa = '';

                        for($i = 0; $i < count($array_ip6_arpa); $i++)
                        {
                                unset($tmp);
                                $tmp = "" . $array_ip6_arpa[$i];

                                for($j = 3; $j >= 0; $j--)
                                {
                                        $tmp_ip6_arpa .= substr($tmp, $j, 1) . ".";
                                }
                        }

                        $tmp_ip6_arpa .= "ip6.arpa.";

                        $ptr = $tmp_ip6_arpa;

                        $array_host = dns_get_record($ptr, DNS_PTR);

                        if($array_host != null)
                        {
                                for($i = 0; $i < count($array_host); $i++)
                                        if(!empty($array_host[$i]['target']))
                                        {
                                                $ip_reverse = addslashes($array_host[$i]['target']);
                                                break;
                                        }
                        }
                }
                else
                {
                        return(false);
                }

                if($ip_reverse == $remote_addr)
                        return (false);
                else
                        return($ip_reverse);
        }
}

if(!function_exists("ndd_reverse"))
{
        function ndd_reverse($remote_addr)
        {
                $array_error = array();

                $ip_reverse = $remote_addr;

                if(!empty($remote_addr))
                {
                        $ptr = implode(".", array_reverse(explode(".", $remote_addr))) . ".in-addr.arpa.";

                        $array_host = dns_get_record($ptr, DNS_PTR);

                        if($array_host != null)
                        {
                                for($i = 0; $i < count($array_host); $i++)
                                        if(!empty($array_host[$i]['target']))
                                        {
                                                $ip_reverse = addslashes($array_host[$i]['target']);
                                                break;
                                        }
                        }
                }
                else
                {
                        return(false);
                }

                if($ip_reverse == $remote_addr)
                        return (false);
                else
                        return($ip_reverse);
        }
}

function is_bot()
{
        $ip   = get_ip_address();

        if(empty($ip))
        {
                return(false);
        }

        if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false)
        {
                $url_reverse = ndd_reverse($ip);
        }
        elseif(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false)
        {
                $url_reverse = ndd_reverse_ip6($ip);
        }
        else
        {
                $url_reverse = false;
        }

        $list_bots = array("#bing#", "#babylon#", "#search#", "#aol#", "#voila#", "#incredimail#", "#ia[_-]?archiver#", "#ask#", "#teoma#", "#spider#", "#exabot#", "#thumbnails#", "#gamespy#", "#gigabot#", "#google#", "#grub#", "#inktomi#", "#slurp#", "#msnbot#", "#scooter#", "#altavista#", "#w3c[_-]?validator#", "#yahoo#", "#yandex#");

        $n = count($list_bots);

        if($url_reverse !== false)
        {
                if($url_reverse != $ip)
                {
                        $url = strtolower($url_reverse);

                        for($i = 0; $i < $n; $i++)
                        {
                                if(preg_match($list_bots[$i], $url))
                                        break;
                        }

                        if($i < $n)
                        {
                                return(true);
                        }
                        else
                        {
                                return(false);
                        }
                }
                else
                {
                        return(false);
                }
        }
        else
        {
                return(false);
        }
}
             
?>
 
Membre Honoré
Bonjour,
blueviseo a dit:
Mais, de nature à vérifier quand je ne suis pas certains voici mes questions :
- Selon vous, est-ce qu'il y a une part de vrai et est-ce que ça concerne tous les sites ?
Personnellement j'avais plutôt repéré +/- 10% sur les sites qui génèrent le plus de trafic
- Est-ce que Google Analytics enregistre le trafic généré par Google Bot ?
- Est-ce que vous connaissez des marqueurs pour repérer le trafic exact des robots ? (Pour vérifier).
Marie-Aude a fait un bon résumé.

Sinon, comme dirait Spout :
spout a dit:
- Où sont les chaises ?
:mrgreen:

Cordialement.
 
Nouveau WRInaute
Merci à vous trois pour les retours.

@M&B Multimédia : "Oui.... Quand Même !"

@Jean François : Avec ce que tu as déjà installé, est-ce que tu as pu estimer la portion de robot dans Gg Analytics ?
 
WRInaute accro
blueviseo a dit:
Merci à vous trois pour les retours.

@M&B Multimédia : "Oui.... Quand Même !"

@Jean François : Avec ce que tu as déjà installé, est-ce que tu as pu estimer la portion de robot dans Gg Analytics ?


Bonjour Monsieur

Je n'ai jamais essayé d'évaluer la part de visites des bots, sur le plan statistique.

J'ai fait ces fonctions, d'abord pour mon "firewall maison", genre anti-aspirateur qui protège mon site contre les copiages sauvages de ma bdd.

J'étais tenu de laisser passer les bots aussi rapidement que possible, contrairement aux autres visiteurs.

Et puis... ;) Quand j'ai mis mes statistiques et pronostics de courses en Javascript ( petit Ajax ), j'ai pensé que je devais laisser les bots accéder au code html, alors que les visiteurs ne voient que le code Javacript, qui ne contient aucune donnée.

Je pourrais ( je crois ), minifier le code Javascript, pour le rendre incompréhensible, avec la librairie JsMin, mais je n'ai pas encore sauté le pas. ;)

J'ai reçu sur ce forum, l'indication que cette protection par Javascript était peu sécurisée, et qu'il suffisait de pas grand chose pour avoir les données quand même, de manière automatique.

Je serais très reconnaissant que l'on me dise quelle est la meilleure manière de sécuriser les données d'un site web, contre le copiage automatique.

Si je permettais des accès par login/password ( gratuits évidemment ), j'aurais beaucoup moins de visiteurs, alors...

Actuellement, ( pendant les vacances d'été ), à cause du creux, j'ai dans les 700 vu/jour, alors que pendant l'année, j'avais dans les 850 v/jour environ.

Et puis, le design de ma page d'accueil est à revoir. Je remet de jour en jour, je suis en train de mettre la dernière main à une modification du programme de calcul des stats de perfomance des pronostiqueurs de mon site partenaire. ;) ( ajout de fonctionnalités ), après quoi je devrai changer le script d'affichage de ces stats.

Et puis... Je suis censé préparer le module de paiement Paypal pour mon site partenaire, ( en friche depuis quelques mois ), ce qui nécessitera de tester avec un compte Paypal fictif ( je ne me souviens plus du terme ;( ), ce qui nécessite une manip de la part du Directeur de mon site partenaire, possesseur de son compte Paypal, pour adapter son compte réel actuel aux nouvelles normes de Paypal, et obtenir un compte fictif.

Par ailleurs, il me semble que Paypal change de normes comme de chemises, alors... ;(

Tout çà gratuit évidement, je ne tiens pas à avoir des problèmes avec le fisc, l'urssaff, tout çà...

Je rend service à ce Monsieur, et en échange de mes pronostics sur son site, j'ai accès privilégié à ses données et un droit de cession ( non transmissible ), à ses données des partants, rapports et résultats des courses.

Je ne touche rien pour mes pronos sur son site. les deux accords sont indépendant c'est un échange de bon procédé. ;)


Pour mon site, je viens d'adapter les en-têtes http correct ( pour la norme html 5 ), de manière à ce qu'il n'y ait pas de cache.

Correct, c'est fait.

Pour le reste sur mon site, çà peut attendre... ;)

Bien amicalement.

Jean François Ortolo
 
WRInaute accro
Madrileño a dit:
Bonjour,

Ortolojf l'utilise surement avec un de ses sites (non testé ici).
Pour l'IPv6, il y a une actualité intéressante pour 2015 en ce moment.

Sinon pour Google Analytics, il y a pas mal de sujets utiles ici :
https://www.webrankinfo.com/dossiers/google-analytics .

Cordialement.


Bonjour Madrileno ;)

L'actualité pour 2015, est-elle l'obligation de compatibilité des objets connectés avec ipv6 ?

Mais : Est-ce que les adresses ipv6, peuvent avoir des reverse ?

Mon script anti-aspirateur détecte parfois des adresses ipv6, mais ne détecte jamais de reverse dans ce cas. ;(

Merci beaucoup de ta réponse.

Jean François Ortolo
 
WRInaute impliqué
Avec des events dans Analytics, on est sur que les visiteurs sont bien des internautes réels, puisque les bots n'exécutent pas javascript, non?
 
WRInaute impliqué
c'est pas que les events qui ne comprennent pas les robots, c'est tout analytics, vu que les robots n'execute pas le javascript.
 
Membre Honoré
Bonjour Ortolojf. ;)
ortolojf a dit:
L'actualité pour 2015, est-elle l'obligation de compatibilité des objets connectés avec ipv6 ?
Oui, mais pour le moment, c'est vague (attente de la validation).
Pour la question de l'IPv6, la question pourrait être : Pourquoi pas ?

Cordialement.
 
Olivier Duffez (admin)
Membre du personnel
J'ai beau relire la citation de Marie-Claire, je ne suis toujours pas certain de comprendre de quoi ils parlent. Et c'est sans doute la raison du pb avec ton client. D'ailleurs, que te reproche-t-il exactement ?

Qu'appelle-t-on trafic ici ? car quand je lis "qui font marcher le Web" j'ai des doutes.
Moi j'avais lu qu'il y a environ 50% des visites sur un site web qui sont faites par des robots (pour la plupart sans aucun intérêt pour le webmaster). C'est pourquoi il est utile de protéger son site afin de bloquer un certain nombre de ces robots.

Google Analytics ne fonctionne que si Javascript est interprété (à la différence d'autres outils peut-être, qui utilisent la balise noscript). Donc la plupart des robots sont ignorés par GA.
 
Nouveau WRInaute
Aujourd'hui, après un petit rendez vous pédagogique, le client ne me reproche rien.

Mais il sous-entendait le fait que les chiffres liés au trafic présentés dans nos rapports avec les sources d'Analytics étaient à diviser par 3. Et que par conséquent, les actions SEO n'était pas aussi intéressantes en terme d'acquisition de trafic...

A côté de ça, nous avons repris toutes les statistiques de conversation, les chiffres de ventes et l'augmentation du trafic est quasiment proportionnelle donc ça l'a rassuré (corrélation à 93%). L'important c'est le nombre de vente, après qu'il y ait un peu de robot dans le trafic, c'est pas grave.

En tout cas, merci pour ces retours. Quand je pense que j'ai la bonne réponse, je préfère toujours vérifier si je ne raconte pas n'importe quoi. Surtout quand un magazine aussi reconnu dans le monde du SEO publie une info ! :lol:

A bientôt,
 
Discussions similaires
Haut