Skip to content

Maîtriser le repassage des moteurs de recherche sur son catalogue (et éviter les faux-plis) (2/2)

29/03/2012

Suite du précédent billet.

Le fichier robots.txt

D’abord, il existe quelques petites options pour la configuration de ce fichier. Deux sources utiles :

Certes, on peut purement et simplement interdire tout à tous, sous la forme :

User-agent: *
Disallow: /

(User-agent : tous les moteurs
Disallow : interdiction d’accès à l’ensemble des répertoires)

On peut par exemple préciser que tel moteur a le droit d’entrer, et pas les autres — ou que tel moteur n’a pas le droit d’entrer, mais que tous les autres peuvent.

Ainsi, puisque Biblibre mentionne comme particulièrement actifs : Google, Baidu, et Bing. Si vous estimez que les Chinois auront de toute façon peu d’intérêt à avoir connaissance de vos fonds, vous pouvez décider de ne bloquer que Baidu. Pour cela, il vous faut savoir comment le désigner dans le fichier robots.txt, donc connaître son nickname en tant de User Agent. Google is my friend (Baidu, curieusement, moins), et l’on apprend ainsi qu’il faut allors mettre :

User-agent: baiduspider
Disallow: /

N’ayant pas accès aux logs des clients Koha de Biblibre, j’ignore si c’est suffisant. C’est toutefois une première possibilité.

Mais ce qu’il faudrait plutôt, c’est pouvoir dire aux moteurs : Vous êtes les bienvenus, mais pas trop souvent. Un peu comme quand on dit à quelqu’un : « Passez quand vous voulez ». Généralement, le risque de le voir réapparaître tous les soirs est minime…

Cette notion de fréquence, malheureusement, n’est pas gérable dans robots.txt. Il faut utiliser autre chose.

Quelques fausses pistes

L’attribut rel=nofollow

Dans la multiplicité des liens que contient une page web, il est possible de préciser au moteur de recherche de ne pas suivre tel ou tel lien. C’est utile notamment pour tout ce qui est nuage de tags ou autre type de navigation alternatif : on indique au moteur de recherche qu’il n’apprendra rien de bon par là.
Wikipedia l’utilise pour tous les liens vers des sites extérieurs, ajoutés par les rédacteurs : ceci afin d’éviter que des webmasters essaient de faire monter le PageRank de leur site en ajoutant des références sur les articles WP.

Cette balise ne peut être mise dans un formulaire de recherche (du type : <form action="http://catalogue.monsite.fr/search" rel="nofollow">) : dans cette balise-là elle est inopérante.

Ensuite, selon leur humeur ou ce qu’ils connaissent déjà du site, de sa structure, etc., les moteurs vont décider ou non de suivre la consigne de cette balise, qui n’est qu’indicative et non injonctive.

L’attribut method=post

La balise <form> qui obtient l’affichage du formulaire de recherche génère, à la validation, une URL spécifique à la liste de résultats, et reprend dans l’URL les paramètres de la recherche (notamment les mots recherchés).

Il est possible de préciser un comportement différent : l’action de recherche est bien envoyée à la base de données, mais cela n’apparaît pas dans l’URL.

Par exemple si dans ma page j’insère le code :

<form action="http://www.google.fr/search" method="post">
<input type="text" name="q" value=""/>
<input type="submit" value="Rechercher"/>
</form>

Je pourrai lancer une recherche dans Google, et je constaterai que la page de résultats a pour URL : http://www.google.fr/search. Mais cette URL-là ne génère en elle-même aucune page de résultats. Donc elle est moins exploitable pour un bot.
(C’était du moins le cas en 2009. Depuis 2011, GoogleBot s’est mis à exploiter aussi les formulaires en POST. Peut-être est-ce moins « incitatif » tout de même.)

La conséquence problématique d’un tel paramétrage, c’est qu’un internaute ne peut obtenir l’URL d’une page de résultats  — à moins que vous la lui fournissiez quelque part dans la page, ce qui sera tout de même perçu comme contraignant.

C’est ce qui a été fait sur HAL, en bas des pages de résultats dont les URL sont toujours : http://hal.archives-ouvertes.fr/index.php.

Le (la ?) sitemap

Bon, d’après Wikipedia, c’est bien masculin : un sitemap.

Sitemap : description succincte

Un sitemap, c’est un fichier XML qui rend compte de l’arborescence du site. Voyez le site officiel, profitez-en pour admirer au passage la ressemblance graphique avec schema.org et la cathédrale gothique sur votre droite.

Vous avez donc la possibilité d’exposer en ligne, parallèlement au catalogue, un fichier XML contenant l’ensemble des URL des notices détaillées (sur la base du n° de notice, généralement).

Dans un premier temps, le fichier va ressembler à ça :

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://catalogue.monsite.fr/deeplink?numero=000000001</loc>
   </url>
   <url>
      <loc>http://catalogue.monsite.fr/deeplink?numero=000000002</loc>
   </url>
   <url>
      <loc>http://catalogue.monsite.fr/deeplink?numero=000000003</loc>
   </url>
   <url>
      <loc>http://catalogue.monsite.fr/deeplink?numero=000000004</loc>
   </url>
   <url>
      <loc>http://catalogue.monsite.fr/deeplink?numero=000000005</loc>
   </url>
   ....
</urlset>

C’est pratique à générer : vous avez 250.000 notices ? Généralement (sauf celles qui ont été supprimées depuis la création de la base, elles vont se suivre, de 1 à 250.000. Dans le tas, certaines pointeront vers la page d’erreur — mais ce n’est pas grave : seuls les robots la verront.

Bien sûr, c’est mieux si vous pouvez extraire l’ensemble des vraies URL des vraies notices réellement présentes dans la base. Mais là, on débute. Pour savoir comment pointer vers une notice détaillée à partir du n° de notice, cette page d’OCLC existe toujours, mais j’ignore si elle est actualisée : Primo n’y est pas.

Déclarer son sitemap

Vous constituez un fichier : comment le faire connaître aux moteurs de recherche ?

Le plus simple : indiquer son URL dans le fichier robots.txt, que les moteurs savent retrouver sans problème, en ajoutant une ligne ressemblant à :

Sitemap: http://catalogue.monsite.fr/repertoire/sous_repertoire/sitemap.xml

D’autres possibilités existent : Par exemple, après avoir déposé son sitemap dans le répertoire http://catalogue.monsite.fr/repertoire/sous_repertoire/, on peut le déclarer à Google en indiquant dans son navigateur (comme si on voulait aller visiter cette page web) : http://www.google.com/ping?sitemap=http://catalogue.monsite.fr/repertoire/sous_repertoire/sitemap.xml

Les options du sitemap

Contrairement au robots.txt, qui permet peu d’options (autoriser/interdire), le sitemap est plus fin. Parmi les différentes infos qu’on peut y mettre, celle qui nous intéressera ici : la fréquence de passage souhaitable/souhaitée.

Il suffit pour chaque URL de rajouter une balise <changefreq>. Les valeurs possibles sont :

  • always
  • hourly
  • daily
  • weekly
  • monthly
  • yearly
  • never

Pour un catalogue de bibliothèque, on peut supposer que la valeur va osciller entre weekly et yearly.

Ce qui va donner :

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://catalogue.monsite.fr/deeplink?numero=000000001</loc>
      <changefreq>monthly</changefreq>
   </url>
   <url>
      <loc>http://catalogue.monsite.fr/deeplink?numero=000000002</loc>
      <changefreq>monthly</changefreq>
    </url>
   <url>
      <loc>http://catalogue.monsite.fr/deeplink?numero=000000003</loc>
      <changefreq>monthly</changefreq>
    </url>
   <url>
      <loc>http://catalogue.monsite.fr/deeplink?numero=000000004</loc>
   </url>
   <url>
      <loc>http://catalogue.monsite.fr/deeplink?numero=000000005</loc>
      <changefreq>monthly</changefreq>
    </url>
   ....
</urlset>

Limites

Un sitemap contient au maximum 50.000 URL, et le fichier obtenu pèse au maximum 10Mo. Pour ces deux raisons, il est probable qu’il faudra constituer plusieurs fichiers, tous listés dans le fichier robots.txt

Conclusion

Il faut donc

  • d’un côté afficher un sitemap complet, avec précision de la fréquence utile de passage pour les moteurs
  • de l’autre, désactiver la possibilité pour les moteurs d’utiliser le formulaire de recherche de l’opac (sachant qu’ils peuvent toujours techniquement passer outre)
    En ajoutant sur la page de recherche du catalogue la mention (dans l’en-tête de la page : entre les balises <head> et </head>) :
    <meta name="robots" content="nofollow">
    Encore faut-il avoir la main sur cette partie de la page, que le logiciel prévoie qu’on puisse ajouter des métadonnées de ce genre — ce qui est loin d’être évident !

J’ignore ce qui se passe si on donne des infos contradictoires à un bot, par exemple en interdisant dans robots.txt l’indexation du catalogue par les moteurs de recherche, tout en fournissant un sitemap qui contient des URL vers les notices de ce même catalogue. Je suis tenté de penser que le bot n’indexerait rien du tout, mais je n’en sais rien.

Les commentaires sont fermés.

%d blogueurs aiment cette page :