Plateformes
WordPress
Mesurez l’audience d’un site WordPress avec Runlight, et voyez quand les agents IA le lisent.
L’extension Runlight fait tourner Runlight dans un site WordPress, avec le tableau de bord sur /runlight et les chiffres dans sa propre base de données. Elle peut aussi envoyer vers un Runlight que vous faites tourner ailleurs, que ce soit le serveur autonome ou une application dans laquelle Runlight est monté, pour qu’un seul tableau de bord couvre de nombreux sites.
Ce qu’elle fait
- Elle ajoute le script de Runlight à chaque page. Sur une page à laquelle WordPress répond par une 404, le script enregistre aussi un événement nommé 404 avec le chemin de la page manquante, donc les propriétés de 404 dans le bloc Événements listent les adresses cassées que les gens ont atteintes, et combien de fois.
- Elle laisse de côté les visites des administrateurs, sauf si vous désactivez cette option.
- Elle enregistre les agents IA comme ChatGPT et Claude quand ils récupèrent vos pages. Les agents n’exécutent pas de JavaScript, donc le script ne peut pas les voir, et l’extension les enregistre côté serveur une fois la page envoyée.
- Elle ajoute au menu d’administration un élément Runlight qui affiche le tableau de bord de ce site dans wp-admin.
L’installer
Installez l’extension et activez-la, avec wp plugin install runlight --activate, ou dans Extensions, Ajouter une extension. Elle ouvre son écran de configuration, et rien n’est compté tant que vous n’avez pas choisi où tourne Runlight. Cliquez sur Run Runlight in this WordPress et elle commence à compter le site.
L’élément Runlight du menu d’administration affiche les chiffres, et son bouton Open in Runlight ouvre le tableau de bord complet sur /runlight sur votre site. Vous pouvez y ajouter des objectifs, des entonnoirs, des liens courts et des rapports par e-mail, et importer l’historique depuis Umami. Toute personne qui peut gérer les options, les administrateurs par défaut, est propriétaire de ce Runlight, et on demande à tous les autres de se connecter à WordPress.
Faire tourner Runlight dans WordPress demande PHP 8.2 ou plus récent avec les extensions mbstring et openssl. La page de réglages, dans Réglages, Runlight, indique quand il manque quelque chose.
Où sont gardés les chiffres
Quand la base de données de WordPress est MySQL 8.0.20 ou plus récent, ou MariaDB 11.4 ou plus récent, Runlight y garde ses chiffres en passant par la connexion de WordPress, donc vos sauvegardes de base de données les incluent. Ses tables portent le préfixe de tables de WordPress, comme wp_rl_events, donc une autre application ou un autre WordPress qui partage la base garde les siennes. Si des tables portant ces noms existent déjà et n’appartiennent pas à Runlight, il utilise un fichier SQLite. Sinon, les chiffres vont dans un fichier SQLite dans wp-content/uploads/runlight, sous un nom que personne ne peut deviner, ce qui demande l’extension sqlite3 de PHP. Chaque site d’un réseau a toujours son propre fichier. Le choix se fait la première fois que Runlight tourne et ne change jamais, donc les chiffres ne se retrouvent jamais répartis à deux endroits.
Désactiver l’extension garde tout. La supprimer retire les tables de Runlight ou son dossier, ainsi que les réglages de l’extension, sur chaque site d’un réseau. Elle ne supprime que les tables propres à Runlight, chacune par son nom.
Lieux
Le pays des visiteurs vient d’un en-tête quand un CDN comme Cloudflare en envoie un. Sinon, activez Show which countries visitors come from dans Réglages, Runlight, et l’extension télécharge une fois par mois la base de pays gratuite de DB-IP et la garde dans le dossier des téléversements. Les adresses sont recherchées sur votre serveur et ne sont jamais envoyées ailleurs.
Entretien horaire
Le cron de WordPress lance la vérification planifiée de Runlight toutes les heures. Elle crée le sel de chaque jour, envoie les rapports par e-mail, supprime les visites au-delà de la durée de conservation choisie et fait les totaux des jours terminés. Le cron de WordPress tourne quand quelqu’un visite le site, donc sur un site calme il peut être en retard, ce qui ne fait que retarder les rapports. Les sites qui désactivent le cron de WordPress et appellent wp-cron.php depuis un vrai cron reçoivent la vérification à ce rythme. Quand la vérification n’a pas tourné depuis plus d’un jour, la page de réglages le signale.
Rapports par e-mail
Quand une extension SMTP ou d’e-mail est active dans WordPress, comme WP Mail SMTP, FluentSMTP, Post SMTP ou Easy WP SMTP, Runlight envoie ses rapports par e-mail et ses e-mails de test par WordPress, depuis l’adresse e-mail d’administration, au nom du site. Réglages, Service d’e-mail dans le tableau de bord indique alors quelle extension les envoie. WordPress seul envoie avec la fonction mail() de PHP, qui finit souvent dans les spams ou nulle part, donc sans une telle extension, le tableau de bord vous demande plutôt d’y configurer un service d’e-mail. Vous pouvez aussi choisir un autre service pendant qu’une extension est active, et revenir plus tard à l’envoi par WordPress au même endroit. Le tableau de bord ne propose pas de serveur SMTP dans WordPress, puisqu’une extension SMTP s’en charge et que Runlight envoie par cette extension.
Adresses des visiteurs
Runlight compte les visiteurs avec un hachage quotidien de leur adresse, et limite la fréquence d’envoi d’une même adresse. L’extension détermine l’adresse elle-même, donc aucun visiteur ne peut en choisir une. Elle prend l’adresse d’où vient la requête, sauf si c’est le serveur lui-même ou un réseau privé, auquel cas un proxy sur le même hôte a transmis la requête. Elle prend alors l’adresse publique la plus proche dans X-Forwarded-For, à laquelle chaque proxy ajoute la sienne. Quand cette adresse appartient à Cloudflare, elle prend l’adresse du visiteur dans l’en-tête CF-Connecting-IP de Cloudflare. Un hébergeur mieux informé peut le préciser avec le filtre runlight_client_ip.
php
add_filter( 'runlight_client_ip', function ( $ip, $server ) {
return $server['HTTP_X_REAL_IP'] ?? $ip;
}, 10, 2 );Permaliens simples
Avec les permaliens simples, un serveur comme Apache n’envoie que index.php à WordPress, donc Runlight répond sur /index.php/runlight, ce qui fonctionne sur tous les serveurs, et la page de réglages affiche cette adresse. Choisir n’importe quelle autre structure dans Réglages, Permaliens le déplace sur /runlight.
Envoyer vers un Runlight que vous faites tourner ailleurs
- Sur l’écran de configuration de l’extension, sous Connect to a Runlight you run elsewhere, saisissez l’adresse à laquelle répond ce Runlight, par exemple
https://stats.example.compour le serveur autonome ouhttps://example.com/runlightpour une application dans laquelle Runlight est monté. Runlight l’affiche dans Réglages, Installation, sous Adresse de Runlight. - Cliquez sur Connect. Votre Runlight vous demande de vous connecter si ce n’est pas déjà fait, puis d’autoriser la connexion pour le site qui compte ce domaine. Si aucun site ne le compte encore, il propose d’en ajouter un quand ses sites sont gérés dans son tableau de bord, comme sur le serveur autonome.
- Cliquez sur Allow. Runlight vous renvoie vers WordPress avec tous les réglages remplis, et l’élément Runlight du menu d’administration affiche les chiffres de ce site.
La connexion donne deux clés à l’extension. La clé des agents signale les agents IA qui lisent vos pages, et elle ne peut signaler que les requêtes de ce seul site, donc elle ne peut ni lire vos statistiques ni écrire dans un autre site. La clé du tableau de bord affiche le tableau de bord de ce site dans wp-admin, en lecture seule, donc traitez-la comme un mot de passe. La clé du tableau de bord apparaît dans Runlight dans Réglages, API et IA, où la supprimer arrête le tableau de bord dans wp-admin.
La connexion demande que wp-admin soit en HTTPS, ou sur localhost pendant vos essais, puisque Runlight ne renvoie les gens que vers de telles adresses. Dans une application dans laquelle Runlight est monté, le site doit déjà figurer dans hostnames (voir Configuration), parce que les sites y sont définis dans le code.
Saisir les réglages à la main
Chaque réglage de l’extension a son équivalent dans Runlight, dans Réglages, Installation, section WordPress, Drupal et Craft, avec un bouton pour le copier. Copiez Adresse de Runlight, Clé des agents et Clé du tableau de bord dans les champs Runlight address, Agents key et Dashboard key de l’extension, puis enregistrez. Runlight n’affiche la clé du tableau de bord qu’une seule fois, donc créez-en une nouvelle si vous la perdez. Site id n’est nécessaire que si ce Runlight ne peut pas reconnaître ce site à son domaine. À l’enregistrement, l’extension vérifie que l’adresse répond et vous donne le résultat.
Comptage
Sous Counting, Count clicks on links to other sites enregistre chaque clic sur un lien vers un autre site comme un événement nommé Outbound link, et Count file downloads enregistre chaque clic sur un lien vers un fichier, comme un PDF ou un zip, comme un événement nommé File download. Les deux sont activés tant que vous ne les désactivez pas.
Le tableau de bord dans wp-admin
Avec Runlight dans WordPress, l’élément Runlight du menu d’administration affiche le tableau de bord complet dans wp-admin, le même que sur /runlight, avec ses réglages, ses objectifs et ses liens courts. Seules les pages de votre propre site peuvent l’afficher dans un cadre, donc quand wp-admin est servi depuis une autre adresse que le site, par exemple avec www. sur l’une des deux, la page ouvre le tableau de bord dans un nouvel onglet.
Avec un Runlight ailleurs, l’élément Runlight affiche le tableau de bord de ce site dans la même vue en lecture seule qu’un lien de partage, avec ses rapports et ses périodes, sans aucun des réglages, liens courts, personnes ou autres sites de Runlight. Le bouton Open in Runlight ouvre le tableau de bord complet dans votre propre Runlight.
Avec un Runlight ailleurs, l’adresse depuis laquelle wp-admin est servi doit figurer parmi les domaines du site dans Runlight, puisque seule une page d’administration sur l’un d’eux peut afficher le tableau de bord. La connexion s’en charge, et un www. en tête ne change rien. La clé n’atteint jamais le navigateur. Chaque fois qu’un administrateur ouvre la page, le serveur de l’extension envoie la clé et l’origine de l’administration à Runlight, et reçoit en retour un ticket qui ouvre le tableau de bord une seule fois, dans les cinq minutes. La page charge le tableau de bord depuis votre Runlight dans un cadre que seule cette administration peut afficher. Le cadre garde sa session dans la page pendant une heure, sans cookies, donc les navigateurs qui bloquent les cookies dans les cadres l’affichent quand même. Une fois l’heure passée, le cadre le signale et recharge la page quand on le lui demande. Supprimer la clé dans Réglages, API et IA de Runlight l’arrête aussitôt, avec toutes les sessions ouvertes. Votre Runlight doit être servi en HTTPS quand wp-admin l’est, sinon le navigateur refuse le cadre.
Caches de pages
Certaines extensions de cache servent les pages directement depuis le serveur web sans exécuter PHP, comme WP Super Cache en mode expert. Ces pages contiennent quand même le script, donc les visites sont comptées. WordPress ne tourne jamais pour ces requêtes, donc les requêtes d’agents IA sur les pages en cache ne sont pas signalées. Les caches qui passent par PHP, comme WP Rocket et la plupart des caches des hébergeurs, signalent les requêtes d’agents comme d’habitude.