Comment enregistrer les user-agents des robots dans les journaux d’accès Apache ?

L'équipe Citead, mis à jour le

En bref. Utilisez le format de journal combiné d’Apache avec %{User-agent}i et sélectionnez-le avec CustomLog pour enregistrer les user-agents déclarés par les robots.

Définition : Apache enregistre l’en-tête de requête User-Agent déclaré par un robot lorsque le format du journal d’accès contient %{User-agent}i. Le format de journal combiné (Combined Log Format) inclut cet en-tête avec la requête et le code d’état de la réponse.

Points clés

  • Au 17 octobre 2026, la documentation sur les journaux d’Apache HTTP Server 2.4 présente un format combiné contenant les en-têtes de requête Referer et User-Agent.
  • La documentation de référence de mod_log_config d’Apache distingue la définition d’un nom de format avec LogFormat de sa sélection pour un fichier avec CustomLog.
  • La RFC 9110, section 10.1.5 définit User-Agent comme des informations sur le logiciel à l’origine d’une requête ; sa valeur peut contenir des identifiants de produits et des commentaires.

Quelle configuration enregistre cet en-tête ?

L’exemple de format de journal combiné d’Apache fournit ces directives :

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog "log/access_log" combined

LogFormat associe la chaîne de format au nom combined. CustomLog sélectionne ce nom et le fichier de destination. Le chemin relatif log/access_log est résolu par rapport à ServerRoot, le répertoire racine du serveur Apache.

La documentation de référence de mod_log_config autorise ces directives dans la configuration du serveur principal ou dans un hôte virtuel (virtual host), une section de configuration propre à un site. La seule définition du nom ne sélectionne aucune destination et n’applique le format à aucun journal.

Comment lire les champs enregistrés ?

Dans l’exemple de format combiné d’Apache, le dernier champ entre guillemets correspond au user-agent déclaré. Le champ entre guillemets qui le précède est Referer, la page dont le client déclare provenir. Le format conserve la ligne de requête, l’heure de réception et le code d’état de la réponse.

La documentation de référence des formats d’Apache prévoit %>s pour le code d’état final de la réponse après une redirection interne. Elle précise aussi que d’autres modules peuvent modifier la valeur de l’en-tête de requête enregistrée par %{VARNAME}i. Pour conserver une valeur antérieure, la méthode documentée consiste à copier l’en-tête dans une variable d’environnement interne avec mod_setenvif, puis à enregistrer cette variable avec %{VARNAME}e.

Comment appliquer et vérifier la configuration ?

La documentation d’apachectl d’Apache fournit une commande de test de syntaxe et une commande de redémarrage en douceur (graceful restart) :

apachectl configtest
apachectl graceful

Le test de syntaxe renvoie Syntax Ok ou les détails d’une erreur. Après un test réussi, le redémarrage en douceur applique la configuration en laissant les connexions déjà ouvertes se poursuivre. Il vérifie également la configuration avant de redémarrer.

Pour un site disposant de ses propres directives de journalisation, la documentation d’Apache sur la journalisation des hôtes virtuels indique que ses requêtes sont enregistrées dans le fichier spécifié. Les requêtes d’un hôte virtuel sans directives de journalisation sont enregistrées dans les journaux du serveur principal.

Termes associés

Questions fréquentes

Le nom d’un robot prouve-t-il qui a envoyé la requête ?

L’en-tête seul ne permet pas de vérifier l’expéditeur. Au 17 octobre 2026, la documentation de Google sur la vérification des requêtes décrit une vérification par résolutions DNS inverse et directe ou par comparaison avec les plages d’adresses IP publiées. Si vous devez vérifier une requête qui se présente comme provenant de Googlebot, ces méthodes utilisent son adresse IP.

Puis-je conserver un journal distinct pour les user-agents ?

Oui. L’exemple d’Apache sur les journaux d’accès multiples utilise CustomLog "logs/agent_log" "%{User-agent}i" en parallèle d’un autre journal d’accès. Vous pouvez spécifier plusieurs directives CustomLog pour écrire dans des fichiers distincts.

Sources

  1. Apache Software Foundation, « Log Files », sans date
  2. Apache Software Foundation, « Apache Module mod_log_config », sans date
  3. IETF, « RFC 9110: HTTP Semantics », juin 2022
  4. Apache Software Foundation, « apachectl - Apache HTTP Server Control Interface », sans date
  5. Google, « Verify Requests from Google Crawlers and Fetchers », mis à jour le 20 mars 2026

Vérifiez comment une page se lit pour les moteurs de réponse. Ouvrir l’analyseur de score GEO

Testez une page et voyez quoi corriger en premier

L'analyse prend en général moins de 10 secondes et ne demande pas de compte.

400 000+ pages notées dans le benchmark public