HKC Trafic
Qui vient sur votre site, qui est un robot, et ce qu'ils lisent. Cinq écrans dans l'administration WordPress, aucun JavaScript, aucun traqueur, et une conservation taillée au trafic que vous recevez vraiment.
La seule exception à notre premier principe. Toutes les autres extensions HKC ne chargent rien du tout sur votre site public. Celle-ci ne le peut pas : un journal des accès doit voir les accès. Ce qu'elle fait sur une requête publique, c'est ajouter une ligne de texte à un fichier, après que la réponse est partie — aucune requête SQL, aucun appel réseau, rien d'ajouté à la page. Une tâche planifiée verse ensuite ces lignes en base par lots de deux cents, où chaque ligne coûte dix fois moins qu'un INSERT isolé.
Vue d'ensemble
Pages vues, visites et pages par visite, sur aujourd'hui, 7, 30, 90 jours ou 12 mois. Les filtres se cumulent — appareil, système, navigateur, langue, et pays et ville si vous activez la localisation — et chaque liste déroulante montre les valeurs réellement présentes avec leur effectif et leur part, calculés avec les autres filtres appliqués : choisir « mobile » met à jour la liste des navigateurs, mais pas celle des appareils, qui resterait sinon figée sur un seul choix.
Le graphique empile les visites et les pages vues en plus : la hauteur totale vaut les pages, la partie foncée les visites. Un visiteur est compté une fois par jour, par une empreinte salée de son adresse et de son navigateur — sans cookie.
Statistiques
Dix classements sur la même période : pages les plus lues, sites référents, pages précédentes d'une navigation interne, appareils, navigateurs, systèmes, langue consultée, pays, villes, et adresses que vos visiteurs n'ont pas trouvées.
La période choisie vous suit d'un écran à l'autre : regarder quatre-vingt-dix jours de robots puis passer au journal garde ces quatre-vingt-dix jours. Un écran qui ne sait pas montrer douze mois — les robots et les sondes ne sont pas conservés si longtemps — ramène à la plus longue période qu'il accepte, plutôt qu'à sa propre valeur par défaut.
Robots
Les quinze robots les plus actifs de la période, avec les adresses qu'ils demandent, les erreurs qu'on leur renvoie, et leur dernier passage. Les robots sont nommés d'après leur user-agent, sans aucune liste préétablie — une liste serait périmée dans six mois. La seule liste tenue à la main répond à une question précise :
- Quels robots d'IA génératives passent vraiment. GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot et les autres, regroupés par la maison qui les envoie, avec ce qu'ils lisent et ce qu'on leur répond. Une extension SEO vous dit s'ils sont autorisés ; ceci vous dit s'ils sont venus.
- Les robots déguisés. Une page demandée depuis un centre de données avec un agent de navigateur ordinaire est un robot, pas un visiteur. Ceux-là sont comptés à part et écartés des visites — il faut pour cela que la localisation soit active.
Journal des accès
Une ligne par requête : date, type, code de réponse, temps de traitement, adresse demandée, langue, origine, visiteur, client, robot, motif — et, dès que la localisation est active, pays, ville, opérateur et numéro d'AS. Chacune de ces seize à vingt colonnes filtrables porte un entonnoir qui montre ses cinquante valeurs les plus fréquentes avec leur effectif, les autres filtres déjà appliqués. C'est ce qui remplace la recherche : on n'a pas à savoir ce qu'on cherche, il suffit de regarder ce qu'il y a.
Un filtre qu'on refait chaque semaine mérite un nom : enregistrez-le, et il s'installe au-dessus du tableau comme vue enregistrée — « sondes qui ont reçu une réponse », « robots d'IA sur les articles », « 404 vues par des humains ».
URLs suspectes
Un site WordPress reçoit chaque jour des dizaines de sondes, à la recherche d'un wp-config oublié, d'un phpMyAdmin, d'un fichier de sauvegarde. Les rassembler ici sert deux choses : elles ne faussent plus les statistiques de visite, et on ne les découvre pas le jour où l'une a réussi.
L'écran montre ce qu'elles cherchent, les adresses essayées avec les codes de réponse reçus, et d'où elles viennent. Un 404 ou un 403 est une bonne nouvelle : il n'y avait rien à trouver. Une sonde à laquelle le site a répondu 200 est signalée en tête : c'est la seule ligne de cet écran qui demande une vérification le jour même.
Ce que cela coûte à votre base
C'est le sujet, et il est traité par trois leviers plutôt que par un réglage unique :
- Les adresses ne sont stockées qu'une fois, dans leur propre table ; chaque requête ne porte que leur numéro. Une ligne tombe d'environ 400 octets à environ 110, index compris.
- Le user-agent n'est jamais stocké : appareil, navigateur, système et nom du robot en sont tirés à l'écriture, et la chaîne elle-même est jetée.
- Les durées de conservation sont séparées — robots, autres requêtes, pages vues par des humains — parce que ces lignes ne vieillissent pas à la même vitesse.
L'écran des réglages mesure ensuite ce que le journal coûte vraiment sur votre site : la taille réelle d'une ligne (taille des tables divisée par le nombre de lignes), le débit réel des sept derniers jours, et l'espace libre du disque quand l'hébergeur le dit. Il annonce combien de jours le budget que vous fixez peut tenir, et propose les durées correspondantes en un clic. Au-delà du budget, les lignes les plus anciennes partent — et si le budget est trop petit pour que le journal apprenne quoi que ce soit, l'écriture s'arrête en le disant, plutôt que de vous donner des chiffres faux.
Pour donner un ordre de grandeur : mille pages vues et trois mille requêtes de robots par jour occupent environ 440 ko par jour, soit 13 Mo par mois de détail complet.
Alertes
Des garde-fous qui agissent en silence n'en sont pas. Six situations déclenchent un bandeau dans toute l'administration — pas seulement sur l'écran de l'extension — et un e-mail, puis deux jours de silence tant que la situation dure :
- Moins de 512 Mo libres sur le disque, ou moins de 5 % de sa taille. Celle-là concerne l'hébergement entier, pas le journal : un disque plein arrête le site.
- Le journal a consommé les quatre cinquièmes de son budget, ou le remplira dans la semaine au débit constaté.
- Les requêtes des deux derniers jours valent trois fois le débit ordinaire — un robot déchaîné, ou une campagne de sondes.
- Les lignes s'accumulent sans être versées : la tâche planifiée ne tourne plus, souvent parce que WP-Cron est désactivé.
- L'écriture s'est arrêtée d'elle-même.
Ce qui sort de votre site
Rien, sauf si vous en décidez autrement. Pas de cookie, pas de script dans vos pages, pas de service tiers, et aucune donnée envoyée où que ce soit — à une exception près, que vous activez vous-même :
Le pays et la ville ne figurent pas dans la requête : il faut les chercher à partir de l'adresse du visiteur, donc envoyer cette adresse à un tiers. Tant qu'aucun jeton ipinfo n'est enregistré dans les réglages, rien n'est envoyé et les filtres Pays et Ville n'apparaissent pas. Avec un jeton, seules les adresses des visiteurs humains sont résolues, une fois chacune, et la réponse est gardée dans une table de votre site : la même adresse n'est jamais envoyée deux fois. L'extension compte ses propres requêtes, s'arrête au plafond mensuel que vous réglez, et se tait jusqu'au lendemain si le service refuse.
Vie privée
Aucun cookie n'est posé. Un visiteur est compté par une empreinte salée valable la journée, calculée à partir de son adresse et de son navigateur : elle ne permet ni de retrouver l'adresse, ni de suivre quelqu'un d'un jour à l'autre, ni de le reconnaître sur un autre site. L'adresse IP vit moins longtemps que la ligne : passé le délai que vous réglez (trente jours par défaut), elle perd sa dernière partie et il n'en reste que le réseau ; réglée à zéro, elle est tronquée avant d'être écrite et l'adresse complète n'existe nulle part. Les pages vues par des humains sont conservées treize mois au plus.
C'est le cadre que la CNIL dispense de consentement : une mesure limitée à votre seul site, sans recoupement, sans suivi d'un site à l'autre, et plafonnée à treize mois. Activer la localisation envoie des adresses à un tiers : c'est pourquoi elle reste éteinte tant que vous n'en avez pas décidé.
Ce qu'elle ne sait pas faire
Si votre site est servi par un cache de page — LiteSpeed, WP Rocket, un CDN —, PHP ne démarre pas pour une page déjà en cache, et ces visites-là n'apparaissent pas dans le journal. Le relevé exhaustif est alors celui de votre serveur web. Mesurer les visites derrière un cache, le temps passé sur une page et les événements de sortie demande une balise dans la page : c'est l'étape suivante, et elle n'est pas dans cette version.
Pré-requis et installation
- WordPress 6.2 ou plus, PHP 7.4 ou plus.
- Les écrans demandent le droit
manage_options. - Interface d'administration en anglais.
- Téléverser
hkc-trafic.zipdepuis Extensions › Ajouter › Téléverser une extension. - Activer : les tables, le dossier d'attente et les deux tâches planifiées sont créés à l'activation.
- Ouvrir le menu Trafic — le journal se remplit dès la première visite. Revenir le lendemain : l'avis de conservation s'appuie alors sur vos propres chiffres.
La désinstallation supprime les tables, les réglages et le dossier d'attente — qui contient des adresses IP et n'a aucune raison de survivre à l'extension qui l'a créé.